机器学习之KNN的总结

机器学习之KNN的总结

本片文章主要写了针对一个csv数据,目标是对其数据进行分类,怎样用knn实现
在此问题中将该问题分为三个步骤:

  1. 数据处理:对csv数据进行处理做出适合knn的数据集,包括划分测试集及训练集
  2. 数据拟合:对数据集数据进行拟合
  3. 数据预测及评价指标:对所训练得到的结果进行预测以及评价
  • 数据处理

  • 本实例中的数据集如下图所示:
    在这里插入图片描述
    第一列为数据集的标签,第一行为数据集的title,首先要做的处理是将数据集的数据以及标签提取出来。即特征与标签类别

     # -*- coding: utf-8 -*-
     """
     Created on Tue Nov 27 17:47:44 2018
     
     @author: Administrator
     """
     
     import csv
     
     
     from sklearn import neighbors
     
     knn = neighbors.KNeighborsClassifier()#(n_neighbors=10)
     from numpy import genfromtxt
     a = open('list.csv', 'r+')
     reader = csv.reader(a)#按行读取内容
     headers = next(reader)#打印出为title那行
     print(headers)
    

在这里插入图片描述
该title第一列为数字序列,后七列为特征名称,其次是提取标签以及数据

    dataPath = r"list.csv"
    featureList = genfromtxt(dataPath, skip_header=1,delimiter=',',usecols=(1,2,3,4,5,6,7))
    #转化为txt,[genfromtxt用法](https://blog.csdn.net/weixin_40123108/article/details/84531460)得到后7列数据
    labelList = genfromtxt(dataPath, skip_header=1,delimiter=',',usecols=(0))#得到标签
    
    x= featureList[:]
    print(len(x))
    #print (x)
    #print ("labelList")
    y = labelList[:]
    #print (y)

划分数据集及训练集

    from sklearn.model_selection import train_test_split#分割数据集
    X_train, X_test, y_train, y_test = train_test_split(
        x, y, test_size=0.25)

    print(X_train.shape)
    print(X_test.shape)

在这里插入图片描述
**

  • 数据拟合

**
knn = neighbors.KNeighborsClassifier()#(n_neighbors=10)knn参数用法
knn.fit(X_train,y_train)

**

  • 数据预测及评价指标

**

    y_predict = knn.predict(X_test) 
     #调用该对象的测试方法,主要接收一个参数:测试数据集
    probility=knn.predict_proba(X_test)  
     #计算各测试样本基于概率的预测

    score=knn.score(X_test,y_test,sample_weight=None)
    #调用该对象的打分方法,计算出准确率
    
    print('y_predict = ')  
    print(y_predict)  
    #输出测试的结果
    
    print('y_test = ')
    print(y_test)    
    #输出原始测试数据集的正确标签,以方便对比
    print ('Accuracy:',score ) 
    #输出准确率计算结果
    print ('probility:',probility)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40123108/article/details/84573746