- KNN算法的具体应用--鸢尾花数据处理
- 一、介绍
- 二、实现流程
- 三、具体代码
这里用的是KNN算法,如下面的表格,根据鸢尾花四个特征值(花萼长度、花萼宽度、花瓣长度、花瓣宽度)来区分鸢尾花的品种,鸢尾花被分为三种类型(即三种标签值,分别为山鸢尾、变色鸢尾、菖蒲锦葵)
| feature1 | feature2 | feature3 | feature4 | label | |
|---|---|---|---|---|---|
| 花萼长度 | 花萼宽度 | 花瓣长度 | 花瓣宽度 | 品种 | |
| 1 | 5.1 | 3.5 | 1.4 | 0.2 | 0 |
| 2 | 4.9 | 3. | 1.4 | 0.2 | 0 |
| 3 | 6.2 | 3.4 | 5.4 | 2.3 | 2 |
Python的sklearn库中自带了鸢尾花的数据集,所以我们可以用这些数据集来训练模型并预测新的鸢尾花的品种。
二、实现流程1、数据加载 2、数据获取(获取特征值和标签值) 3、数据分割(原本的数据是按照标签值排序的,所以要将数据打乱。同时将数据分为样本集和测试集) 4、模型选择(当然是KNN) 5、模型训练fit 6、模型评分score 7、模型预测三、具体代码
from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier #分类算法 #数据加载 iris_dataset = load_iris() #特征数据 iris_feature = iris_dataset["data"] #标签数据 iris_label = iris_dataset["target"] #数据分割,这里的x_train和y_train代表样本集的特征值和标签值,x_test和y_test代表测试集的特征值和标签值 x_train,x_test,y_train,y_test = train_test_split(iris_feature,iris_label,test_size=0.2,random_state=6) #算法选择,KNN算法中的K值也是在这里定的 knn = KNeighborsClassifier(n_neighbors=3) #根据数据训练模型 knn.fit(x_train,y_train) #模型评分 score = knn.score(x_test,y_test) print(score) #模型测试,将分出来的测试集传到训练好的模型中,看看是否和真实的标签值一致 y_predict = knn.predict(x_test) print(predict_y == y_test)



