+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2019-07(2)

2019-08(89)

2019-09(94)

2019-10(15)

2019-11(5)

利用KNN算法预测鸢尾花

发布于2020-11-02 22:16     阅读(367)     评论(0)     点赞(19)     收藏(4)


0

1

2

3

4

5

 刚入门学习机器学习,入门例子就是鸢尾花分类,利用skl自带的鸢尾花例子进行knn学习。

1.Knn算法。存在一个训练样本集合A,在给定测试样本b时,基于某种距离度量,找出训练集A中与测试样本b最靠近的k个训练样本(通常k≤20且为整数),基于这k个训练样本的信息来预测种类或值。k个样本标签中,哪个标签多就认为是哪个标签。

2.鸢尾花数据分类。关于train_test_split。

train_data:待划分样本数据

train_target:待划分样本数据的结果(标签)

test_size:测试数据占样本数据的比例,若整数则样本数量

random_state:设置随机数种子,保证每次都是同一个随机数。若为0或不填,则每次得到数据都不一样。

3.整体步骤

(1)读取鸢尾花数据(2)分割数据。(3)训练数据(4)利用模型计算结果。

  1. #鸢尾花
  2. from sklearn.datasets import load_iris
  3. from sklearn.model_selection import train_test_split
  4. from sklearn.neighbors import KNeighborsClassifier
  5. import matplotlib.pyplot as plt
  6. import numpy as np
  7. #导入鸢尾花数据
  8. iris = load_iris()
  9. #打印观察数据
  10. print(iris)
  11. #利用skl的train_test_split对数据进行分割
  12. x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.5,random_state=666)
  13. ##寻找最优K值
  14. train1=[]
  15. k1=[]
  16. test1=[]
  17. #循环不同K值对模型的影响
  18. for k in range(1,30):
  19. k1.append(k)
  20. #初始化KNN
  21. model = KNeighborsClassifier(n_neighbors= k)
  22. #训练模型
  23. model.fit(x_train, y_train)
  24. #训练得分
  25. train=model.score(x_train, y_train)
  26. train1.append(train)
  27. #测试得分
  28. test=model.score(x_test, y_test)
  29. test1.append(test)
  30. #测试得分
  31. print('train={};test={};k={}'.format(train,test,k))
  32. #绘制K的取值,测试得分
  33. plt.plot( k1, test1)
  34. plt.show()
  35. #如果需要预测值
  36. y_predict = model.predict(x_test)
  37. print(y_predict)

 

0

1

2

3

4

5

6

7



所属网站分类: 技术文章 > 博客

作者:天青色等烟雨

链接: https://www.pythonheidong.com/blog/article/610224/100589ad1a5252e8f34b/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

19 0
收藏该文
已收藏

评论内容:(最多支持255个字符)