当前位置:   article > 正文

python KNN分类算法 使用鸢尾花数据集实战_本关任务:使用sklearn实现knn算法,并利用已知标签的鸢尾花数据对模型进行训练,再

本关任务:使用sklearn实现knn算法,并利用已知标签的鸢尾花数据对模型进行训练,再

KNN分类算法,又叫K近邻算法,它概念极其简单,但效果又很优秀。

如觉得有帮助请点赞关注收藏啦~~~

KNN算法的核心是,如果一个样本在特征空间中的K个最相似,即特征空间中最邻近的样本中的大多数属于某一个类别,则该样本也属于这个类别

1:K值

K值也就是选择几个相邻的作为测量

2:距离的度量

距离决定了哪些是邻居哪些不是,度量距离有很多种方法,常用的是欧式距离

1:查看数据 使用鸢尾花数据集 由sklearn模块导入

  1. from sklearn.datasets import load_iris
  2. from sklearn.model_selection import train_test_split
  3. from sklearn.neighbors import KNeighborsClassifier
  4. from sklearn import datasets
  5. import matplotlib.pyplot as plt
  6. import matplotlib; matplotlib.use('TkAgg')
  7. import pandas as pd
  8. print("数据集的keys",iris_dataset.keys())
  9. print("特征名",iris_dataset['feature_names'])
  10. print("数据类型",type(iris_dataset['data']))
  11. print("数据维度",iris_dataset['data'].shape)
  12. print("标记名",iris_dataset['target_names'])

2:使用散点矩阵查看数据特征关系

 

代码如下  绘图并且划分数据集与训练集

  1. from sklearn.datasets import load_iris
  2. from sklearn.model_selection import train_test_split
  3. from sklearn.neighbors import KNeighborsClassifier
  4. from sklearn import datasets
  5. import matplotlib.pyplot as plt
  6. import matplotlib; matplotlib.use('TkAgg')
  7. import pandas as pd
  8. iris_dataset=load_iris()
  9. train_x,test_x,train_y,test_y=train_test_split(iris_dataset['data'],iris_dataset['target'],random_state=2)
  10. print('trainx\n',train_x)
  11. print('trainy\n',train_y)
  12. print('testx\n',test_x)
  13. print('testy\n',test_y)
  14. print(test_x.shape)
  15. print(test_x.shape)
  16. irisdataframe=pd.DataFrame(train_x,columns=iris_dataset.feature_names)
  17. pd.plotting.scatter_matrix(irisdataframe,c=train_y,figsize=(15,15),marker='o',hist_kwds={'bins':20},s=60,alpha=0.8)
  18. plt.show()

3:建立KNN模型进行预测

python中实现KNN方法使用的是KNeighborsClassifier类

核心操作分三步

3.1:创建KNeighborsClassifier对象 并进行初始化

3.2:调用fit()方法 对数据集进行训练

fit(x,y)以x为训练集 y为测试及对模型进行训练

3.3:调用predict函数进行预测

 源代码如下

  1. from sklearn.datasets import load_iris
  2. from sklearn.model_selection import train_test_split
  3. from sklearn.neighbors import KNeighborsClassifier
  4. from sklearn import datasets
  5. import matplotlib.pyplot as plt
  6. import matplotlib; matplotlib.use('TkAgg')
  7. import pandas as pd
  8. iris_dataset=load_iris()
  9. iris=datasets.load_iris()
  10. print("数据集结构",iris.data.shape)
  11. iris_x=iris.data
  12. iris_y=iris.target
  13. iris_train_x,iris_test_x,iris_train_y,iris_test_y=train_test_split(iris_x,iris_y,test_size=0.2,random_state=0)
  14. knn=KNeighborsClassifier()
  15. knn.fit(iris_train_x,iris_train_y)
  16. predictresult=knn.predict(iris_test_x)
  17. print("测试集大小",iris_test_x.shape)
  18. print("真实结果",iris_test_y)
  19. print("预测结果",predictresult)
  20. print("预测精确率",knn.score(iris_test_x,iris_test_y))

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/358911
推荐阅读
相关标签
  

闽ICP备14008679号