机器学习之Python使用KNN算法对鸢尾花进行分类

文章目录

  • 2. 编写代码,实现对iris数据集的KNN算法分类及预测
  • 要求:
  • 第一步:引入所需库
  • 第二步:划分测试集占20%
  • 第三步:n_neighbors=5
  • 第四步:评价模型的准确率
  • 第五步:使用模型预测未知种类的鸢尾花
  • 2. 编写代码,实现对iris数据集的KNN算法分类及预测

    要求:

    (1)数据集划分为测试集占20%;
    (2)n_neighbors=5;
    (3)评价模型的准确率;
    (4)使用模型预测未知种类的鸢尾花。
    (待预测数据:X1=[[1.5 , 3 , 5.8 , 2.2], [6.2 , 2.9 , 4.3 , 1.3]])

    iris数据集有150组,每组4个数据。

    第一步:引入所需库

    from sklearn.datasets import load_iris
    from sklearn.model_selection import train_test_split
    from sklearn.neighbors import KNeighborsClassifier
    import numpy as np
    

    第二步:划分测试集占20%

     x_train, x_test, y_train, y_test = train_test_split(data, target, test_size=0.2, random_state=0)
    

    test_size为0-1的数代表占百分之几
    random_state为零随机数确定,每次结果都相同

    第三步:n_neighbors=5

     KNeighborsClassifier(n_neighbors=5)
    

    第四步:评价模型的准确率

    KNN.fit(x_train, y_train)
    # 训练集准确率
    train_score = KNN.score(x_train, y_train)
    # 测试集准确率
    test_score = KNN.score(x_test, y_test)
    

    第五步:使用模型预测未知种类的鸢尾花

    #待预测数据:X1=[[1.5 , 3 , 5.8 , 2.2], [6.2 , 2.9 , 4.3 , 1.3]]
     X1 = np.array([[1.5, 3, 5.8, 2.2], [6.2, 2.9, 4.3, 1.3]])
     # 进行预测
     prediction = KNN.predict(X1)
     # 种类名称
     k = iris.get("target_names")[prediction]
    

    完整代码:

    from sklearn.datasets import load_iris
    from sklearn.model_selection import train_test_split
    from sklearn.neighbors import KNeighborsClassifier
    import numpy as np
    if __name__ == '__main__':
        iris = load_iris()
        data = iris.get("data")
        target = iris.get("target")
        x_train, x_test, y_train, y_test = train_test_split(data, target, test_size=0.2, random_state=0)
        KNN = KNeighborsClassifier(n_neighbors=5)
        KNN.fit(x_train, y_train)
        train_score = KNN.score(x_train, y_train)
        test_score = KNN.score(x_test, y_test)
        print("模型的准确率:", test_score)
        X1 = np.array([[1.5, 3, 5.8, 2.2], [6.2, 2.9, 4.3, 1.3]])
        prediction = KNN.predict(X1)
        k = iris.get("target_names")[prediction]
        print("第一朵花的种类为:", k[0])
        print("第二朵花的种类为:", k[1])
    

    结果:

    物联沃分享整理
    物联沃-IOTWORD物联网 » 机器学习之Python使用KNN算法对鸢尾花进行分类

    发表评论