• python 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))

  • 相关阅读:
    DeltaLake技术学习与总结待续
    android逆向工程反编译指南(详细教程)
    数据分析与Excel(三)
    国际教材概念基础
    扬帆牧哲—跨境电商行业商标有多重要?
    软件测试之精准测试
    【一文秒懂——Profile配置】
    企业应用现代化之 如何快、准、狠地进行容器化改造?
    Qt | 键盘事件
    基 CanMV 的 C 开发环境搭建(Linux,Ubuntu篇)
  • 原文地址:https://blog.csdn.net/jiebaoshayebuhui/article/details/126944048