扫码阅读
手机扫码阅读
k-近邻算法介绍及实例
120 2024-10-28
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:k-近邻算法介绍及实例
文章来源:
Python学习杂记
扫码关注公众号
K-近邻算法(KNN)原理
K-近邻算法(KNN)基于一个简单的原则:如果一个样本在特征空间中的k个最相似(即最邻近)的样本中的大多数属于某一个类别,则该样本也划分为这个类别。样本之间的相似度通常通过欧式距离来计算,但由于各变量可能有不同的数量级和离散程度,因此在计算之前需要进行标准化处理。
实验数据与库导入
本文通过使用常见的鸢尾花(Iris)数据集来展示KNN算法的实现过程。首先导入必要的库:
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn import preprocessing
import matplotlib.pyplot as plt
import pandas as pd
数据处理
接着,文中提供了数据的导入及其标准化处理的代码。数据被读取并分为特征X和标签y,之后使用MinMaxScaler进行标准化。
df = pd.read_csv('iris.csv', encoding = "gbk")
X = df.drop(columns='种类')
y = df['种类']
minmax = preprocessing.MinMaxScaler()
Xn = minmax.fit_transform(X)
K值选择与模型训练
文章接下来介绍了如何通过设置不同的K值来训练KNN模型,并使用交叉验证来评估其准确性。通过循环尝试不同的K值(从1到19),并记录每个K值下模型的平均准确率。
X_train, X_test, y_train, y_test = train_test_split(Xn, y, test_size=0.2, random_state=3)
dd = []
for k in range(1, 20):
knn = KNeighborsClassifier(n_neighbors=k)
knn.fit(X_train, y_train)
scores = cross_val_score(knn, X_train, y_train, cv=3, scoring='accuracy')
mm = round(scores.mean(), 3)
dd.append(scores.mean())
通过分析这些准确率的图表,文中得出结论,在本例中k取12是最优的选择。
完整代码与模型训练
最后,提供了完整的代码,包括数据准备、模型训练和评估过程,以及使用图表来确定最佳的K值。通过最终的评估,模型在测试数据上的准确率被计算并四舍五入到三位小数。
# 完整代码示例
knnbest = KNeighborsClassifier(n_neighbors=12)
knnbest.fit(train_X, train_y)
round(knnbest.score(test_X, test_y), 3)
文章强调了KNN模型的简单性和易理解性,并鼓励读者自行操作尝试。
想要了解更多内容?
查看原文:k-近邻算法介绍及实例
文章来源:
Python学习杂记
扫码关注公众号
Python学习杂记的其他文章
Matplotlib作图简介
Matplotlib是一个用于在Python中绘制数组的图形库,它提供了MATLAB风格的绘图功能。
使用Python标准库difflib查找文本间的差异
difflib是Python中的一个标准库,它提供了一些用于执行比较和比较操作的模块。
xlwings的基本使用介绍
在实际工作中,Excel是一个非常常用的工具。但是仅仅会使用Excel进行数据处理和分析是远远不够的。
Python中装饰器的基础使用
Python在编写复杂算法的时候,使用装饰器可以让函数更简洁、复用率更高,减少重复造轮子。本文介绍Pytho
国产大模型:开启智能新纪元的钥匙
国产AI大模型的发展近年来取得了显著进步,在不同的领域展现出了强大的实力和广泛的应用前景。
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线