📜  毫升 |使用 Sklearn 实现 KNN 分类器(1)

📅  最后修改于: 2023-12-03 14:55:57.316000             🧑  作者: Mango

毫升 | 使用 Sklearn 实现 KNN 分类器

KNN(K-Nearest Neighbors)是一种常见的机器学习算法,可用于分类和回归问题。它基于样本之间的距离来进行预测,即将测试数据与最近的 K 个训练样本匹配,并根据这些样本的标签来预测新数据点的类别或连续值。

在本教程中,我们将使用 Python Sklearn 库实现 KNN 分类器,以将样本数据集分类为“毫升”或“非毫升”。

数据集

我们将使用一个名为“mL”(毫升)的数据集,该数据集包含两个特征列和一个目标列。特征列描述了物品的尺寸和颜色,目标列指示物品是否为“毫升”。

import pandas as pd

# 导入数据集
data = pd.read_csv('mL.csv')

# 一些数据预处理
X = data.iloc[:, :-1].values
y = data.iloc[:, -1].values
KNN 分类器

我们将使用 Sklearn 库中的 KNeighborsClassifier 类实现 KNN 分类器。这个类提供了一些参数,例如 K 值(即要匹配的最近邻居数)和距离度量函数。

from sklearn.neighbors import KNeighborsClassifier

# 创建 KNN 分类器
knn = KNeighborsClassifier(n_neighbors=5, metric='minkowski', p=2)

# 在训练集上拟合分类器
knn.fit(X, y)
预测

使用我们训练的 KNN 分类器可以轻松计算新数据点的标签。假设我们要根据物品的尺寸和颜色预测物品是否为“毫升”,我们可以使用以下代码:

# 预测结果(“毫升”为 1,“非毫升”为 0)
y_pred = knn.predict([[3, 2], [4, 3], [7, 4], [6, 5]])
print(y_pred)

输出为:

[0 0 1 1]

这表示第一和第二个数据点被预测为“非毫升”,而第三和第四个数据点被预测为“毫升”。

总结

在本教程中,我们讨论了如何使用 Python Sklearn 库实现 KNN 分类器。我们使用一个名为“mL”的数据集演示了该算法,并预测了新的数据点。KNN 分类器是一个简单但功能强大的算法,可用于分类和回归问题,特别是在小型数据集上。