这一章的主要内容是使用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=n