K近隣アルゴリズムの実装

868 ワード

import operator
import numpy as np
def createDataset():
    data=[[0,0],[0.1,0.1],[1,1],[1.1,1.1],[1.2,1.2]]
    label=['A','A','B','B','B']
    data=np.array(data)
    #label=np.array(label)
    return data,label
data1,label1=createDataset()

def Euladis(a,data):
    dis=[]
    for datai in data:
        dis.append(np.linalg.norm(datai-a))
    return dis
#a=np.array([1.2,1.2])

def classify(a,data,label):
    result=[]
    dis=Euladis(a,data)
    dissort=sorted(dis)
    for dissorti in dissort:
        loc=dis.index(dissorti)
        result.append(label[loc])
    return result

def main():
    x,y=input("Please input x y").split()
    a=np.array([int(x),int(y)])
    result=classify(a,data1,label1)
    print(result)
if __name__=='__main__':
    main()

直接実行できて、とても分かりやすいです.