• python机器学习基础教程02-鸢尾花分类


    初识数据

    from sklearn.datasets import load_iris
    
    
    if __name__ == '__main__':
        iris_dataset = load_iris()
        print("数据集的键为:\n{}".format(iris_dataset.keys()))
        # DESCR 数据集的简要说明
        print(iris_dataset['DESCR'][:193])
        # target_names 数组对应的是我们要预测的花的品种
        print("目标名字:{}".format(iris_dataset['target_names']))
        # feature_names 对每一个特征进行了说明
        print("特征的说明:{}".format(iris_dataset['feature_names']))
        # data中存放数据,对应feature_names里面的数据
        # sepal length (cm) 花萼长度
        # sepal width (cm) 花萼宽度
        # petal length (cm) 花瓣长度
        # petal width (cm) 花瓣宽度
        print("数据为:{}".format(iris_dataset['data']))
        print("数据为:{}".format(iris_dataset['data'].shape))
        # target表示品种,0代表setosa 1代表versicolor 2代表virginica
        print("品种为:{}".format(iris_dataset['target']))
        print("品种为:{}".format(iris_dataset['target'].shape))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    训练数据与测试数据

    train_test_split解释

    from sklearn.model_selection import train_test_split
    
    if __name__ == '__main__':
        # 参考上面
        # 得到训练数据和测试数据
        X_train,X_test,Y_train,Y_test = train_test_split(iris_dataset['data'],
                                                         iris_dataset['target'],random_state=0)
        print("X训练数据:{}".format(X_train.shape))
        print("Y训练数据:{}".format(Y_train.shape))
        print("X测试数据:{}".format(X_test.shape))
        print("Y测试数据:{}".format(Y_test.shape))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    观察数据

    import pandas as pd
    from matplotlib.colors import ListedColormap
    import matplotlib.pyplot as plt
    
    if __name__ == '__main__':
        # 参考上面
        # 利用x_train中的数据创建DataFrame
        # 利用iris_dataset.feature_names中的字符串对数据列进行标记
        iris_dataframe = pd.DataFrame(X_train,columns=iris_dataset.feature_names)
        # 利用DataFrame创建散点图矩阵按照y_train着色
        cm3 = ListedColormap(['#0000aa', '#ff2020', '#50ff50'])
        pd.plotting.scatter_matrix(iris_dataframe, c=Y_train, figsize=(15, 15),
                                   marker='o', hist_kwds={'bins': 20}, s=60,
                                   alpha=.8, cmap=cm3)
        plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    在这里插入图片描述

    k邻近算法

    from sklearn.neighbors import KNeighborsClassifier
    
    if __name__ == '__main__':
        # 参考上面
        # k邻近算法,设置邻居的数目为1
        knn = KNeighborsClassifier(n_neighbors=1)
        knn.fit(X_train,Y_train)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    预测数据

    if __name__ == '__main__':
        # 参考上面
        # 预测数据
        # 新的鸢尾花,花萼长5cm,宽2.9cm,花瓣长1cm,宽0.2cm
        X_new = np.array([[5, 2.9, 1, 0.2]])
        prediction =knn.predict(X_new)
        print("预测结果为:{}".format(prediction))
        print("预测结果的种类为:{}".format(iris_dataset['target_names'][prediction]))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    评估模型

    if __name__ == '__main__':
        # 参考上面
        # 评估模型
        y_pred = knn.predict(X_test)
        print("预测结果:{}".format(y_pred))
        print("精度:{:.2f}".format(knn.score(X_test,Y_test)))
        
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 相关阅读:
    vue3+vite+ts项目初建(仅个人习惯)
    基于Qt 多线程(继承 QObject 的线程)
    Python模拟试卷2023(1)
    JUC并发编程学习总结
    MATLAB实战 | 粮食储仓的通风控制问题
    大厂钟爱的全链路压测有什么意义?四种压测方案详细对比分析
    图床项目架构与设计
    ABAP面向对象
    okcc呼叫中心数据操作的效率问题
    华为云云耀云服务器L实例评测|基于L实例安装Prometheus+Grafana插件实现数据可视化监控
  • 原文地址:https://blog.csdn.net/qq_36437991/article/details/133561486