1.knn演算法作為分類的演算法,也被成為k近鄰演算法。
2.knn演算法的核心思想是新增乙個樣本在特徵空間中,k個最近的樣本大多數是 一類的,那麼這個樣本也屬於這一類。
這裡我們利用尤拉公式計算樣本間的距離。
首先,我們將建立資料,然後將資料轉換成numpy陣列。
plt.scatter(x_train[y_train ==0,
0],x_train[y_train ==0,
1],color =
'g')
plt.scatter(x_train[y_train ==1,
0],x_train[y_train ==1,
1],color =
'r')
plt.show(
)
然後利用matplotlib畫出相應的散點圖。
然後,插入乙個新的點。
利用尤拉距離公式,判定新的點,為哪一類。
我們將最近的六個點的距離組為判定依據。
distances =
for x_train in x_train:
d = sqrt(np.
sum(
(x_train - x)**2
))nearest = np.argsort(distance)
c =[y_train[k]
for k in nearest[:6
]]
輸出c為:
可知,將新的資料點判定為1.
如果資料點多的話,也可利用collections.
from collections import counter
vote = counter(c)
vote.most_common(
)
輸出為
Python實現KNN演算法
from numpy import import operator def creatdataset group array 1.0,1.1 1.0,1.0 0,0 0,0.1 lables a a b b return group,lables def classify0 inx,dataset,...
python實現knn演算法
importnumpyasnp importoperator defcreatedataset group np.array 1.0 1.1 1.0 1.0 0.0 0.0 0.0 0.1 labels a a b b returngroup,labels 分類演算法 inx待分類的點 defcla...
python實現KNN演算法
具體 如下 import numpy as np import matplotlib.pyplot as plt class myknn def init self,k self.k k def compute self,x train,y train,x test dist i 0 計算歐式距離 ...