Advertisement

KNN算法的注释详细实现及手写数字识别应用

阅读量:
复制代码
     '''
     
    def classify0(inX, dataSet, labels, k):
    
    #获取样本数据数量
    dataSetSize =  dataSet.shape[0]  
    
    #计算测试数据与每个样本对应数据项的差值
    diffMat = np.tile(inX,(dataSetSize,1))-dataSet
    
    # sqDistances 上一步骤结果平方和
    sqDiffMat = diffMat**2
    sqDistances = sqDiffMat.sum(axis=1)
     
    # 取平方根,得到距离向量
    distances = sqDistances**0.5
    
    #排序函数得到的从小到大的排列,并且是一个索引值 
    sortedDistIndicies = distances.argsort()
    #一个空的字典,用来存储前K 个点中 不同类别出现次数
    classCount = {}
    
    for  i  in range(k):
        #确定选取到的k个点中每个类别的出现的概率
        voteIlabel  = labels[ sortedDistIndicies[i

全部评论 (0)

还没有任何评论哟~