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]