K-Nearest Neighbor(KNN) 分类算法及其 Python 实现

作者:公子世无双2024.04.09 08:21浏览量:10

简介:本文将介绍 K-Nearest Neighbor(KNN) 分类算法的基本原理,并通过 Python 代码示例展示其实现方式。我们将通过生动的语言和实际的例子,帮助读者理解这个算法,并提供一些实践建议。

千帆应用开发平台“智能体Pro”全新上线 限时免费体验

面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用

立即体验

K-Nearest Neighbor (KNN) 分类算法简介

K-Nearest Neighbor(KNN)是一种基于实例的学习,或者说是局部逼近和将所有的计算推迟到分类之后的惰性学习方法。KNN 分类算法的核心思想是:在特征空间中,如果一个实例的大部分近邻都属于某个类别,则该实例也属于这个类别。

KNN 算法简单易懂,不需要建立复杂的数学模型,也没有显式的训练过程。它通过计算目标数据点与训练集中各点的距离,找出与目标数据点距离最近的 K 个点,然后看这 K 个点中多数属于哪个类别,就把目标数据点归为这个类别。

KNN 算法的实现步骤

  1. 计算距离:对于给定的测试实例,计算它与训练集中每个实例的距离。
  2. 选择邻居:按照距离的递增关系进行排序,选取距离最小的 K 个点作为邻居。
  3. 确定类别:根据这 K 个最近邻的类别,通过多数表决等方式进行预测。

Python 实现 KNN 算法

下面是一个简单的 KNN 分类算法的 Python 实现示例,使用了 sklearn 库:

  1. from sklearn.model_selection import train_test_split
  2. from sklearn.preprocessing import StandardScaler
  3. from sklearn.neighbors import KNeighborsClassifier
  4. from sklearn import datasets
  5. # 加载鸢尾花数据集
  6. iris = datasets.load_iris()
  7. X = iris.data
  8. y = iris.target
  9. # 划分训练集和测试集
  10. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
  11. # 数据标准化
  12. scaler = StandardScaler()
  13. X_train = scaler.fit_transform(X_train)
  14. X_test = scaler.transform(X_test)
  15. # 创建 KNN 分类器
  16. knn = KNeighborsClassifier(n_neighbors=3)
  17. # 训练模型
  18. knn.fit(X_train, y_train)
  19. # 预测测试集
  20. y_pred = knn.predict(X_test)
  21. # 打印预测结果
  22. print(y_pred)

这个示例中,我们使用了 sklearn 库的 KNeighborsClassifier 来实现 KNN 算法。首先,我们加载了鸢尾花数据集,并将其划分为训练集和测试集。然后,我们对数据进行标准化处理,这是因为 KNN 算法对特征的尺度很敏感。接下来,我们创建了一个 KNN 分类器,并设置了邻居的数量为 3。然后,我们使用训练集对模型进行训练,并用测试集进行预测。最后,我们打印出预测结果。

总结

KNN 算法是一种简单而有效的分类算法,它通过测量不同数据点之间的距离进行分类。在实际应用中,KNN 算法被广泛应用于各种场景,如文本分类、图像识别等。然而,KNN 算法也存在一些缺点,如计算量大、对特征尺度敏感等。因此,在使用 KNN 算法时,我们需要根据具体的数据集和问题选择合适的参数和技巧,以达到最好的分类效果。

希望这篇文章能帮助你理解 KNN 算法,并为你提供一些实用的 Python 实现方式。如果你有任何问题或需要进一步的帮助,请随时提问。

article bottom image

相关文章推荐

发表评论