引言
K最近邻(KNN)算法是一种简单且直观的分类算法。它通过计算数据点之间的距离来对新样本进行分类。鸢尾花数据集是一个经典的机器学习数据集,包含了三种不同类型的鸢尾花,每种类型由四个特征(花萼长度、花萼宽度、花瓣长度和花瓣宽度)描述。本文将使用scikit-learn中的KNN算法对该数据集进行分类预测。
KNN算法概述
KNN算法的核心思想是:对于一个未知类别的样本,通过计算该样本与已知样本的距离,选择距离最近的K个样本进行投票,最终将该样本分类为票数最多的类别。
KNN的优缺点:
- 优点:
- 简单易懂,易于实现。
- 对于小型数据集效果较好。
- 缺点:
- 计算复杂度高,特别是数据量大时。
- 对数据的尺度敏感,可能需要进行标准化处理。
代码展示
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
#加载鸢尾花数据集
iris = datasets.load_iris()
#提取出特征数据
iris_X=iris.data
#目标标签
iris_y=iris.target
#会打乱数据
#test_size测试比例,train_test_split把训练数据和测试数据分开
X_train,X_test,y_train,y_test=train_test_split(iris_X,iris_y,test_size=0.3)
#训练模型
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train,y_train)
#预测值
print(knn.predict(X_test))
#真实值
print(y_test)
运行结果
总结
KNN算法是一种简单且有效的分类方法,尤其适用于小型数据集。在鸢尾花数据集上,KNN算法能够准确地对样本进行分类,并且选择合适的K值能够显著提升模型性能。
标签:KNN,iris,scikit,train,test,鸢尾花,数据 From: https://blog.csdn.net/qq_65009672/article/details/145328332