写一篇关于knn算法实现鸢尾花分类的实验报告
时间: 2023-07-22 15:07:57 浏览: 82
实验报告:KNN算法实现鸢尾花分类
一、实验目的
通过实现KNN算法对鸢尾花数据集进行分类,掌握KNN算法的基本原理和实现方法。
二、实验环境
- 操作系统:Windows 10
- Python版本:3.7.3
- 相关库:numpy、pandas、scikit-learn
三、实验步骤
1. 导入数据集
使用scikit-learn库中的load_iris函数导入鸢尾花数据集,并将数据集分为特征矩阵X和标签向量y:
```python
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data
y = iris.target
```
2. 分割数据集
使用train_test_split函数将数据集分为训练集和测试集:
```python
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
```
其中,test_size=0.3表示将数据集按照7:3的比例分为训练集和测试集,random_state=42表示设置随机数种子,保证每次分割结果相同。
3. 实现KNN算法
使用scikit-learn库中的KNeighborsClassifier类实现KNN算法:
```python
from sklearn.neighbors import KNeighborsClassifier
k = 3
knn = KNeighborsClassifier(n_neighbors=k)
knn.fit(X_train, y_train)
```
其中,k=3表示选择K值为3,n_neighbors参数表示选择的近邻数。
4. 模型评估
使用测试集对模型进行评估:
```python
from sklearn.metrics import accuracy_score
y_pred = knn.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
```
其中,accuracy_score函数计算模型在测试集上的准确率。
四、实验结果
在本次实验中,我们使用KNN算法对鸢尾花数据集进行分类,得到了如下结果:
```
Accuracy: 0.9777777777777777
```
可以看出,KNN算法在鸢尾花数据集上的分类准确率较高。
五、实验总结
本次实验通过对KNN算法的实现,掌握了KNN算法的基本原理和实现方法,并在鸢尾花数据集上进行了分类实验。实验结果表明,KNN算法在鸢尾花数据集上表现较好,但在实际应用中,还需要根据具体问题选择合适的K值和距离度量方法等参数。