《python数据挖掘入门与实践》笔记2
2017-03-14 16:28
711 查看
这一章的主要内容是使用scikit-learn估计器来实现分类,实现的算法是KN近邻算法。
近邻算法可能是标准数据挖掘算法中最为直观的一种。为了对新个体进行分类,它查找训练集,找到与新个体最相似的那些个体,看看这些个体大多属于哪个类别,就把新个体分到哪个类别。
近邻算法可能是标准数据挖掘算法中最为直观的一种。为了对新个体进行分类,它查找训练集,找到与新个体最相似的那些个体,看看这些个体大多属于哪个类别,就把新个体分到哪个类别。
import os import numpy as np import csv #文档的格式为csv格式,所以需要导入csv的库。下面会用到来读取数据 data_filename="ionosphere.txt" #申请数组用于储存数据和分类情况 X=np.zeros((351,34),dtype='float') Y=np.zeros((351,),dtype='bool') #with open() as . 用法: #with open('t1.txt','r') as input1,open('t2.txt','r') as input2. #data1=input1.readlines() with open(data_filename,'r') as input_file: reader=csv.reader(input_file) #enumerate(). 枚举,遍历. for i,row in enumerate(reader): data=[float(datum) for datum in row[:-1]] X[i]=data Y[i]=row[-1]=='g' #将数据分为两个集合,训练集和测试集。 from sklearn.cross_validation import train_test_split X_train,X_test,Y_train,Y_test=train_test_split(X,Y,random_state=14) from sklearn.neighbors import KNeighborsClassifier #用训练数据来训练估计器。 estimator=KNeighborsClassifier() 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元组中, 再求平均值。 from sklearn.cross_validation import cross_val_score scores=cross_val_score(estimator,X,Y,scoring='accuracy') average_accuracy=np.mean(scores)*100 print("The average accuracy is {0:.1f}%".format(average_accuracy)) #在实际的KN近邻算法中,我们对近邻的N是可以随着需要调整的。 下面看看不同的参数对于精确度的影响。 avg_scores = [] all_scores = [] parameter_values = list(range(1, 21)) for n_neighbors in parameter_values: estimator = KNeighborsClassifier(n_neighbors=n_neighbors) scores = cross_val_score(estimator, X, Y, scoring='accuracy') avg_scores.append(np.mean(scores)) all_scores.append(scores) from matplotlib import pyplot as plt plt.plot(parameter_values,avg_scores, '-o')![这里写图片描述](https://img-blog.csdn.net/20170314162854392?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvam9rZXJ0b255/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
相关文章推荐
- 《python数据挖掘入门与实践》笔记1
- 《python数据挖掘入门与实践》“电影推荐” 笔记3
- Python数据挖掘入门与实践(四)——亲和性分析
- 支持度与置信度(基本示例)--《python数据挖掘入门与实践》
- 【python】《Python数据挖掘入门与实践》实验环境搭建
- 《Python数据挖掘入门与实践》高清中文版+高清英文版+源代码
- python_tweets.json (python数据挖掘入门与实践数据集下载)
- Python数据挖掘入门与实践一:计算支持度和置信度
- python数据挖掘入门与实践---用图挖掘找到感兴趣的人
- Python数据挖掘入门与实践(二)——用scikit-learn估计器分类
- 《python数据挖掘入门与实践》决策树预测nba数据集
- 支持度与置信度(找出所有规则)--《python数据挖掘入门与实践》
- Python数据挖掘入门与实践 彩图 pdf
- 分享《Python数据挖掘入门与实践》高清中文版+高清英文版+源代码
- python数据挖掘入门与实践---作者归属问题
- Python数据挖掘入门与实践pdf
- Python数据挖掘入门与实践(二)——scikit-learn数据的预处理转换器以及流水线
- Learning Data Mining with Python-《Python数据挖掘入门与实践》学习后的分享
- Python数据挖掘入门与实践(一)——亲和性分析
- python数据分析与挖掘学习笔记(3)_小说文本数据挖掘part1