Skip to content

1.sklearn 框架初识

学习内容:

  • 学会安装机器学习库:pip install scikit-learn
  • 学会导入库:import sklearn
  • 明白 sklearn 是 Python 里常用的机器学习框架,很多常见算法和数据预处理工具都可以直接调用

2. KNN 实现分类任务

  • 学会使用 KNeighborsClassifier 做分类
  • 知道分类任务的目标是预测“类别”
  • 理解 KNN 的核心思想:看离目标最近的 K 个邻居,大多数属于哪一类,就预测成哪一类

代码流程:

  1. 导入模型
  2. 准备训练数据 x_train
  3. 准备标签 y_train
  4. 创建 KNN 分类器
  5. 调用 fit() 训练
  6. 调用 predict() 预测

核心代码

python
from sklearn.neighbors import KNeighborsClassifier

x_train = [[0], [1], [2], [3]]
x_test = [[4]]
y_train = [0, 0, 0, 1]

knn_model = KNeighborsClassifier(n_neighbors=2)
knn_model.fit(x_train, y_train)
y_pred = knn_model.predict(x_test)
print(y_pred)
from sklearn.neighbors import KNeighborsClassifier

x_train = [[0], [1], [2], [3]]
x_test = [[4]]
y_train = [0, 0, 0, 1]

knn_model = KNeighborsClassifier(n_neighbors=2)
knn_model.fit(x_train, y_train)
y_pred = knn_model.predict(x_test)
print(y_pred)

重点理解:

  • x_train 是特征数据
  • y_train 是标签数据
  • n_neighbors=2 表示找最近的 2 个邻居
  • 这个例子本质是在做“二分类”

补充理解:

  • 如果邻居中类别票数相同,结果可能和底层规则有关,所以实际使用中常设置奇数个邻居,比如 3、5

  1. KNN 实现回归任务 文件:02_knn实现回归任务.py

学习内容:

  • 学会使用 KNeighborsRegressor 做回归
  • 知道回归任务的目标是预测“具体数值”
  • 理解 KNN 回归思想:找到最近的 K 个样本,对它们的目标值做平均或加权平均
python
from sklearn.neighbors import KNeighborsRegressor

x_train = [[0], [1], [2], [3]]
x_test = [[4]]
y_train = [70, 80, 100, 110]

knn_model = KNeighborsRegressor(n_neighbors=3)
knn_model.fit(x_train, y_train)
y_pred = knn_model.predict(x_test)
print(y_pred)

重点理解:

  • 分类预测的是类别,比如“是不是垃圾邮件”
  • 回归预测的是连续值,比如“房价是多少”
  • n_neighbors=3 表示参考最近的 3 个邻居
  • 预测结果 96.666... 说明 KNN 回归会根据邻居的目标值综合得到一个数值结果

4. 特征数据归一化

学习内容:

  • **学会使用 **MinMaxScaler
  • **理解归一化的作用:把不同范围的数据缩放到统一范围,通常是 **[0, 1]
  • 明白归一化常用于特征数值差异比较大的情况
python
from sklearn.preprocessing import MinMaxScaler

x_train = [
    [90, 2, 10, 40],
    [60, 4, 15, 45],
    [75, 3, 13, 46]
]

model = MinMaxScaler()
new_x_train = model.fit_transform(x_train)
print(new_x_train)

重点理解:

  • fit_transform() = 先学习数据规律,再完成转换
  • 归一化公式:

X' = (X - Xmin) / (Xmax - Xmin)

  • 归一化后,不同特征的量纲差异会减小,更适合距离类算法,比如 KNN

5. 特征数据标准化

学习内容:

  • 学会使用 StandardScaler
  • 理解标准化的作用:把数据处理成均值为 0、标准差为 1
  • 知道标准化在很多机器学习任务中更常用,所以文件里也标了“推荐”
python
from sklearn.preprocessing import StandardScaler

x_train = [
    [90, 2, 10, 40],
    [60, 4, 15, 45],
    [75, 3, 13, 46]
]

model = StandardScaler()
new_x_train = model.fit_transform(x_train)
print(new_x_train)

重点理解:

  • 标准化公式:

X' = (X - mean) / std

  • 标准化后的数据不一定在 [0, 1]
  • 适合数据分布较复杂的场景,对很多模型效果更稳定