zoukankan      html  css  js  c++  java
  • K最近邻算法项目实战

    这里我们用酒的分类来进行实战练习

    下面来代码

    1.把酒的数据集载入到项目中

    from sklearn.datasets import load_wine
    #从sklearn的datasets模块载入数据集
    wine_dataset = load_wine()
    
    #打印酒数据集中的键
    print('
    
    
    ')
    print('代码运行结果:')
    print('====================================')
    print('红酒数据集中的键:
    {}'.format(wine_dataset.keys()))
    print('====================================')
    print('
    
    
    ')
    
    #使用.shape来打印数据的概况
    print('
    
    
    ')
    print('代码运行结果:')
    print('====================================')
    print('数据概况:{}'.format(wine_dataset['data'].shape))
    print('====================================')
    print('
    
    
    ')
    
    #打印酒的数据集中的简短描述
    print(wine_dataset['DESCR'])
    

    2.下面我们来生成训练集和测试集来训练和测试K最近邻算法模型

      后面的例子中我们用大写的X来表示数据的特征,用小写的y表示数据对应的标签.这是因为X是一个二维数组,也称为矩阵,而y是一个一维数组,或者说是一个向量

    #导入数据集拆分工具
    from sklearn.model_selection import train_test_split
    #将数据集拆分为训练数据集和测试数据集
    X_train,X_test,y_train,y_test = train_test_split(wine_dataset['data'],wine_dataset['target'],random_state=0)
    
    print('
    
    
    ')
    print('代码运行结果:')
    print('====================================')
    #打印训练数据集中特征向量的形态
    print('X_train shape:{}'.format(X_train.shape))
    #打印测试数据集中特征向量的形态
    print('X_train shape:{}'.format(X_test.shape))
    #打印训练数据集中特征向量的形态
    print('X_train shape:{}'.format(y_train.shape))
    #打印测试数据集中特征向量的形态
    print('X_train shape:{}'.format(y_test.shape))
    print('====================================')
    print('
    
    
    ')
    

    3.使用K最近邻算法进行建模

    #导入KNN分类模型
    from sklearn.neighbors import KNeighborsClassifier
    #指定模型的n_neighbors参数值为1
    knn = KNeighborsClassifier(n_neighbors = 1)
    

    接下来使用knn方法中的"fit()"(拟合)方法来进行建模

    print('
    
    
    ')
    print('代码运行结果:')
    print('====================================')
    #用模型对数据进行拟合
    knn.fit(X_train,y_train)
    print(knn)
    print('====================================')
    print('
    
    
    ')
    

    4.训练好了模型,接下来我们使用模型对新样本的分类进行预测

    先来看一下模型的评分:0.76(不算好,也不算差,只进行测试K最近邻算法,权且消遣)

    print('
    
    
    ')
    print('代码运行结果:')
    print('====================================')
    #打印模型的得分
    print('测试数据集得分:{:.2f}'.format(knn.score(X_test,y_test)))
    print('====================================')
    print('
    
    
    ')
    

    5.接下来大餐来了,甭管准不准,先来预测一下吧

    import numpy as np
    #输入新的数据点
    X_new = np.array([[13.2,2.77,2.51,18.5,96.6,1.04,2.55,0.57,1.47,6.2,1.05,3.33,820]])
    #使用.predict进行预测
    prediction = knn.predict(X_new)
    print('
    
    
    ')
    print('代码运行结果:')
    print('====================================')
    print('预测新红酒的分类为:{}'.format(wine_dataset['target_names'][prediction]))
    print('====================================')
    print('
    
    
    ')
    

    结果是:

    代码运行结果:
    ====================================
    预测新红酒的分类为:['class_2']
    ====================================

    总结:

      ok,作为第一个机器学习的小实战,这的确是激动人心的,不过这远远达不到我们的要求,在求知的道路上我们永不止步

    文章引自:《深入浅出python机器学习》

  • 相关阅读:
    hdu 4027 Can you answer these queries?
    Codeforces: Empty Triangle
    hdu 3006 The Number of set
    hdu 3645 Code Management System
    进度条作控件代码
    NORMAL
    callback
    三种形状匹配脚本
    移动点动画
    脚本管理
  • 原文地址:https://www.cnblogs.com/weijiazheng/p/10860496.html
Copyright © 2011-2022 走看看