1. 程式人生 > >python 實現簡單的KNN算法

python 實現簡單的KNN算法

range 簡單 ssi sorted 動作 sort 算法 pre eve

from numpy import *
import operator

def createDataSet():
    group = array([[3,104],[2,100],[1,81],[101,10],[99,5],[98,2]])
    labels = [愛情片,愛情片,愛情片,動作片,動作片,動作片]
    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.items(),key=operator.itemgetter(1),reverse=True) return sortedClassCount[0][0] group,labels = createDataSet() print(classify0([500,90],group,labels,3))

python 實現簡單的KNN算法