使用KNN对iris数据集进行分类——python
Posted 栽种绝处的花
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用KNN对iris数据集进行分类——python相关的知识,希望对你有一定的参考价值。
filename=‘g:\data\iris.csv‘
lines=fr.readlines()
Mat=zeros((len(lines),4))
irisLabels=[]
index=0
for line in lines:
line=line.strip()
if len(line)>0:
listFromline=line.split(‘,‘)
irisLabels.append(listFromline[-1])
Mat[index,:]=listFromline[0:4]
index=index+1
Mat=Mat[0:150,:]
rowCount=Mat.shape[0]
hoRatio=0.2
testNum=int(hoRatio*rowCount)
train=Mat.copy()
train=train[testNum:,:]
trainLabel=irisLabels[testNum:]
def classify1(inX,train,labels,k):
rowCount=train.shape[0]
diffMat=tile(inX,(rowCount,1))-train
diffMat=diffMat**2
sqDistances=diffMat.sum(1)
distances=sqDistances**0.5
sortedDistIndices=distances.argsort()
classCount={}
for i in range(k):
voteLabels=labels[sortedDistIndices[i]]
classCount[voteLabels]=classCount.get(voteLabels,0)+1
sortedClassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)
return sortedClassCount[0][0]
errorCount=0
for i in range(testNum):
classifyResult=classify1(Mat[i,:],train,trainLabel,3)
if(irisLabels[i]!=classifyResult): errorCount+=1
print errorCount
以上是关于使用KNN对iris数据集进行分类——python的主要内容,如果未能解决你的问题,请参考以下文章
机器学习100天(二十八):028 K近邻分类算法-Python实现
机器学习100天(二十八):028 K近邻分类算法-Python实现
机器学习100天(二十八):028 K近邻分类算法-Python实现