码迷,mamicode.com
首页 > 其他好文 > 详细

机器学习实战knn

时间:2016-12-10 15:59:01      阅读:333      评论:0      收藏:0      [点我收藏+]

标签:creat   reverse   distance   文件名   range   打开   机器学习   mat   学习   

最近在学习这本书,按照书上的实例编写了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)

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

机器学习实战knn

标签:creat   reverse   distance   文件名   range   打开   机器学习   mat   学习   

原文地址:http://www.cnblogs.com/songjiaying/p/6155690.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!