• SK-learn实现k近邻算法【准确率随k值的变化】-------莺尾花种类预测


    代码详解:

    from sklearn.datasets import load_iris
    from sklearn.model_selection import train_test_split
    from sklearn.preprocessing import StandardScaler
    from sklearn.neighbors import KNeighborsClassifier
    import matplotlib.pyplot as plt
    from pylab import mpl
    
    # 设置显示中文字体
    mpl.rcParams["font.sans-serif"] = ["SimHei"]
    # 设置正常显示符号
    mpl.rcParams["axes.unicode_minus"] = False
    #读取数据
    iris = load_iris()
    
    #分出训练集和测试集
    x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,test_size=0.3,random_state=22)
    
    #数据标准化,防止异常点的影响
    transfer = StandardScaler()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.transform(x_test)
    
    #创建画布
    plt.figure()
    plt.title("准确率随k值的变化")
    #打开交互
    plt.ion()
    #网格
    plt.grid()
    #x轴和y轴标注
    plt.ylabel("准确率")
    plt.xlabel("k值")
    
    #循环k的取值从1到50
    for k in range(1,50):
        # plt.cla()
        #定义一个k分类算法对象
        estimator = KNeighborsClassifier(n_neighbors=k)
        #训练
        estimator.fit(x_train,y_train)
        
        #用测试集测试准确率
        y_predict = estimator.predict(x_test)
        score = estimator.score(x_test, y_test)
        #画散点图
        plt.scatter(k,score)
        plt.pause(0.1)
    
        print("预测结果为:",y_predict)
        print("对比真实值和预测值:",y_test)
        print("准确率:",score)
        
    #关闭交互模式,并最后显示图像
    plt.ioff()
    plt.show()
    

      

    多思考也是一种努力,做出正确的分析和选择,因为我们的时间和精力都有限,所以把时间花在更有价值的地方。
  • 相关阅读:
    Ubuntu 安装Python3.8 【转】
    在 RK3399 上运行开源的 Mali GPU 驱动【转】
    windos下对SD卡进行操作,制作FAT32格式SD卡
    Linux使用htop命令说明【转】
    【RabbitMQ】Java发送监听消息
    【ElasticSearch】批量检索文档
    【MySQL】检查表是否存在
    【Postgres】安装
    【CentOS】定时crontab
    信创
  • 原文地址:https://www.cnblogs.com/LiuXinyu12378/p/11376588.html
Copyright © 2020-2023  润新知