knn algorithm--python( classifying)

---恢复内容开始---

1. observe accoding to the purpose of analysis

2. decide a model of specific algorithm

3. clear the steps 

4. write the codes

classify algorithms:

knn; backstom(贝克斯算法) ; decision tree(决策树);artificial nueral network(ANN); 支持向量机(SVM)

knn:

 eg: drink(A,B,C); bread(D,E,F); makeup(H,I,J,K)

      X: price  ;   Y: sells

d(subject, M)   select k nodes who is closed to M(d is smallest)  M is classfied into ...

test data ; train data ;lables data;

a1=n.array([1,2,3,4,6,3])
a2=tile(a1,2)
print (a2)
a3=tile(a1,(2,3))
print(a3)
a3_sum=a3.sum
print(a3_sum)
a3_sum_axis=a3.sum(axis=1)#各行相加
print(a3_sum_axis)
a3_sum_axis1=a3.sum(axis=0)#各列相加
print (a3_sum_axis1)



****************************************************************************************
build module of knn:
from numpy import *
import numpy as n
import operator
def knn(k,test_data,train_data,labels):
train_data_size=train_data.shape[0]
dif=tile(test_data,(train_data_size,1))-train_data
sqdif=dif**2
sumsqif=sqdif.sum(axis=1)
distance=sumsqif**0.5
sort_distance=distance.argsort()
count={}
for i in range(0,k):
vote=labels[sort_distance[i]]
count[vote]=count.get(vote,0)+1
sortcount=sorted(count.items(),key=operator.itemgetter(1),reverse=True)#从大到小
return sortcount[0][0]



 

posted @ 2017-12-27 17:32  兔子的尾巴_Mini  阅读(349)  评论(0编辑  收藏  举报