KNN演算法 python實現

2021-10-03 06:50:00 字數 2450 閱讀 7894

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 計算歐式距離 ...