scikit-learn估计器-KNN均值聚类

scikit-learn库实现了一系列的数据挖掘,提供通用的编程接口、标准化的测试和调参工具
python

主要包含:算法

估计器:用于聚类、回归、分类分析编程

转化器:用于数据的预处理和数据抓换数组

流水线:组合数据挖掘的流程,便于再次使用网络


估计器:为了实现大量的分类算法,该库把相关功能封装成所谓的估计器,主要包括两个函数:app

        fit():训练算法,设置内部参数。接受训练集和类别这两个参数
dom

  predict():参数为测试集,预测测试机的类别,而且返回一个测试集识别后级别的数组函数

大多scikit-learn库接受和输出的数据格式都为numpy 的数组格式工具

scikit-learn库提供了不少估计器,例如随机森林,svm,神经网络测试


近邻算法:

距离测度方法:

欧式距离:两个特征响亮的长度平方和的平方根

曼哈顿距离

余弦距离


  
  
  
  
# -*- coding: utf-8 -*-"""Created on Thu Mar  2 21:43:06 2017@author: zzpp220"""from pandas import DataFrame,Seriesimport pandas as pdimport numpy as npimport os,csvfrom sklearn.cross_validation import train_test_splitfrom sklearn.cross_validation import cross_val_score#交叉验证from matplotlib import pyplot as pltdata_folder='/media/zzpp220/Data/Linux_Documents/DOWNLOAD/python-DataAnalysis/xianku_book'data=os.path.join(data_folder,'ionosphere.data')#csv --comma-seperated-valuesX=np.zeros((351,34),dtype='float')y=np.zeros((351,),dtype='bool')with open(data,'r') as input:    reader=csv.reader(input)#    X=np.array([])    for i ,row in enumerate(reader):        data=[float(datum) for datum in row[:-1]]        X[i]=data#读数据至数组X        y[i]=row[-1]=='g'#读类别值数组y    ## set train_set and test_set    X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=14)    ##导入k近邻分类器,并为其初始化一个实例,参数用默认的,之后再讲调参,该算法默认选择5个近邻做为分类一句    from sklearn.neighbors import  KNeighborsClassifier    estimator=KNeighborsClassifier()# 创建实例    #估计器建立号以后,就要用进行数据训练,    #k近邻估计器分析训练集中 的数据,比较待分类的新数据点和训练集中的数据,找到新数据点的 近邻    estimator.fit(X_train,y_train)    #用测试集测试孙发,【评估在测试集上的表现    y_predicted=estimator.predict(X_test)    accuracy=np.mean(y_test==y_predicted)*100    print 'the accuracy is {0:.1f}%'.format(accuracy)        scores=cross_val_score(estimator,X,y,scoring='accuracy')    average_accuracy=np.mean(scores)*100    print 'the accuracy is {0:.1f}%'.format(average_accuracy)        ##调参优化结果   #k近邻算法有多个参数,最终药店 是初始紧邻点的选择,想测试一系列的紧邻点的值,能够进行屡次实验    avg_Scores,all_score=[],[]    parameter_values=range(1,21)    for num_neighbor in parameter_values:        multi_test_estimator=KNeighborsClassifier(n_neighbors=num_neighbor)        multi_testscore=cross_val_score(multi_test_estimator,X,y,scoring='accuracy')        all_score.append(multi_testscore)        avg_Scores.append(np.mean(multi_testscore))    plt.plot(parameter_values,avg_Scores,'-o')#画图,横坐标,纵坐标,点的标志    plt.savefig('knn-multi-neighbor-test.pdf',dpi=400,bbox_inchs='tight')#保存成pdf格式,后面是像素和白边的设置



附件列表

相关文章
相关标签/搜索