首页 > 代码库 > 机器学习实战knn

机器学习实战knn

最近在学习这本书,按照书上的实例编写了knn.py的文件,使用canopy进行编辑,用shell交互时发现运行时报错:

>>> kNN.classify0([0,0],group,labels,3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name ‘kNN‘ is not defined

  运行的代码如下:

from numpy import *  
import operator  
   
def createDataSet():  
    group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])  
    labels = [A,A,B,B]  
    return group,labels  
  
def classify0(inX,dataSet,labels,k):  
    dataSetSize = dataSet.shape[0]  
    diffMat = tile(inX,(dataSetSize,1)) - dataSet  
    sqDiffMat = diffMat**2  
    sqDistances = sqDiffMat.sum(axis = 1)  
    distances = sqDistances**0.5  
    sortedDistIndicies = distances.argsort()  
    classCount = {}  
    for i in range(k):  
        voteIlabel = labels[sortedDistIndicies[i]]  
        classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1  
    sortedClassCount = sorted(classCount.iteritems(),  
                              key=operator.itemgetter(1),reverse=True)  
    return sortedClassCount[0][0]  

然后我在canopy中重新关闭程序,又打开后,就可以运行成功了

import kNN

group,labels=kNN.createDataSet()

kNN.classify0([0,0],group,labels,3)

还有一点是文件名不识别大小写 需要注意

<style>p,li { white-space: pre-wrap }</style>

机器学习实战knn