阅读背景:

机器学习之KNN算法代码

来源:互联网 

1.直接上代码

import numpy as np
#import operator
import math


def createDataSet():
    group = np.array([[1.0, 2.0], [1.2,0.1], [0.1,1.4], [0.3,3.5]])
    labels = ['A', 'A', 'B', 'B']
    return group, labels

def classify(testData, trainData, trainlabel, k):
    dataSize = trainData.shape[0]
    #calu distacne 
    #tile, repeat data
    diff = np.tile(testData, (dataSize, 1)) - trainData
    sdiff = diff ** 2
    #get sum result per row
    sumSdiff = np.sum(sdiff, axis = 1)
    
    dist = sumSdiff ** 0.5
    
    # sort,return index,up
    sortedIndexUp = np.argsort(dist)
    
    #use dictory,key = label, value = nums
    labelDict = {}
    for i in range(k):
        tL = trainlabel[sortedIndexUp[i]]
        labelDict[tL] = labelDict.get(tL, 0) + 1
   
    defaultValue = 0
    for k, v in labelDict.items():
        if v > defaultValue:
            defaultValue = v
            classes = k
    return classes

if __name__ == "__main__":
    group, lables = createDataSet()
    testData = [1.1, 0.3]
    k = 3
    cla = classify(testData, group, lables, k)
    print("predict calssify=", cla)import numpy as np
#import ope



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: