k近邻算法对鸢尾花数据集分类
时间: 2023-10-24 21:13:55 浏览: 210
鸢尾花数据集是一个经典的用于机器学习分类问题的数据集,共有150个样本,每个样本包含4个特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度,以及它们所属的3个分类:山鸢尾、变色鸢尾和维吉尼亚鸢尾。
k近邻算法是一种基于实例的学习方法,它的基本思想是通过将新数据与已知数据集中最近的k个数据进行比较,来预测新数据的分类。
在使用k近邻算法对鸢尾花数据集进行分类时,我们先将数据集分为训练集和测试集。然后,对于测试集中的每个样本,我们计算它与训练集中所有样本的距离,并选出距离最近的k个样本。最后,根据这k个样本的分类来预测测试集中样本的分类,并计算预测准确率。
下面是使用Python的scikit-learn库实现k近邻算法对鸢尾花数据集分类的代码示例:
```python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
# 加载数据集
iris = load_iris()
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=42)
# 创建k近邻分类器
knn = KNeighborsClassifier(n_neighbors=3)
# 训练模型
knn.fit(X_train, y_train)
# 预测测试集分类
y_pred = knn.predict(X_test)
# 计算准确率
accuracy = knn.score(X_test, y_test)
print("Accuracy:", accuracy)
```
运行结果:
```
Accuracy: 0.9777777777777777
```
从结果可以看出,使用k近邻算法对鸢尾花数据集分类的准确率达到了97.78%。
阅读全文