下面我将为你详细讲解sklearn实现KNN分类算法的使用。
首先,需要导入所需的库和数据集:
from sklearn.datasets import load_iris # 导入数据集
from sklearn.model_selection import train_test_split # 导入数据集分割函数
from sklearn.neighbors import KNeighborsClassifier # 导入KNN分类器
from sklearn.metrics import accuracy_score # 导入准确率度量
iris = load_iris() # 加载数据集
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42) # 分割数据集为训练集和测试集
其中,数据集采用经典的鸢尾花数据集。
接着,需要实例化并训练KNN分类器:
knn = KNeighborsClassifier(n_neighbors=3) # 实例化KNN分类器,指定邻居数为3
knn.fit(X_train, y_train) # 使用训练集训练分类器
在训练完成后,可以使用测试集进行验证并计算准确率:
y_pred = knn.predict(X_test) # 预测测试集分类
accuracy = accuracy_score(y_test, y_pred) # 计算准确率
print('Test Accuracy: {:.2f}%'.format(accuracy * 100)) # 打印准确率
下面,让我们通过一个更加具体的例子来演示KNN分类器的使用。
假设我们有一个简单的数据集,包含两个特征和两个分类。我们可以通过以下代码来加载和可视化该数据集:
from sklearn.datasets import make_blobs # 导入make_blobs生成随机数据集函数
import matplotlib.pyplot as plt # 导入matplotlib库
X, y = make_blobs(n_samples=100, centers=2, random_state=42) # 生成含2个分类的100个样本点的随机数据集
plt.scatter(X[:, 0], X[:, 1], c=y) # 可视化数据集
plt.show()
数据集可视化结果如下图所示:
接下来,我们将其分割为训练集和测试集,并且使用KNN分类器进行分类预测:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 分割数据集为训练集和测试集
knn = KNeighborsClassifier(n_neighbors=3) # 实例化KNN分类器,指定邻居数为3
knn.fit(X_train, y_train) # 使用训练集训练分类器
y_pred = knn.predict(X_test) # 预测测试集分类
accuracy = accuracy_score(y_test, y_pred) # 计算准确率
print('Test Accuracy: {:.2f}%'.format(accuracy * 100)) # 打印准确率
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred) # 可视化测试集分类预测结果
plt.show()
分类预测结果和可视化结果如下图所示:
以上就是利用sklearn实现KNN分类算法的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:sklearn实现KNN分类算法 - Python技术站