KNN演算法的封裝

2021-10-22 23:48:16 字數 1513 閱讀 2622

# knn演算法的封裝

import numpy as np

from math import sqrt

from collections import counter

# 定義分類knn函式

defknn_classify

(k,x_tarin,y_train,x)

:# 斷言判斷使用者引數傳入是否正確

assert

1<=k<=x_tarin.shape[0]

,"k must be valid"

assert x_tarin.shape[0]

==y_train.shape[0]

,\ "the size of x_tarin must equal to the size of y_train"

assert x_tarin.shape[1]

==x.shape[0]

,\ "the feature number of x must equal to x_train"

# 求得最近距離

distance=

[sqrt(np.

sum(

(x_train-x)**2

))for x_train in x_tarin]

# 對所求最近距離點進行字典排序

nearest=np.argsort(distance)

topk_y=

[y_train[i]

for i in nearest[

:k]]

# 找出出現次數最多的

votes=counter(topk_y)

# 返回樣本標籤

return votes.most_common(1)

[0][

0]if __name__ ==

'__main__'

:# 樣本資料

x_tarin=[[

100,

200],[

110,

300],[

120,

400],[

130,

500],[

140,

600],[

9,10]

,[9,

8],[

7,8]

,[8,

9],[

8,7]

] x_data=np.array(x_tarin)

# 樣本標籤

y_tarin=[0

,0,0

,0,0

,1,1

,1,1

,1] y_data=np.array(y_tarin)

# 測試資料

x=([

3,4]

) x=np.array(x)

# 進行**

predict_y=knn_classify(

5,x_data,y_data,x)

print

(predict_y)

KNN演算法的理解

最近看了大量關於knn k最近鄰 演算法的原理與實現,分享某大神寫的一篇簡介明了的博文,共同學習!一 演算法概述 1 knn演算法又稱為k近鄰分類 k nearest neighbor classification 演算法。最簡單平凡的分類器也許是那種死記硬背式的分類器,記住所有的訓練資料,對於新的...

KNN演算法的簡述

by yang liu 1.什麼是knn演算法。knn k nearest neighbor 是資料探勘分類技術中最簡單的方法之一。所謂k最近鄰,就是k個最近的鄰居的意思,說的是每個樣本都可以用它最接近的k個鄰近值來代表。演算法的核心思想是如果乙個樣本在特徵空間中的k個最相鄰的樣本中的大多數屬於某乙...

KNN演算法 鄰近演算法

knn演算法是機器學習裡面比較簡單的乙個分類演算法了,整體思想比較簡單 計算乙個點a與其他所有點之間的距離,取出與該點最近的k個點,然後統計這k個點裡面所屬分模擬例最大的,則點a屬於該分類。這樣講可能還有點迷糊,下面用乙個例子來說明一下 電影名稱 打鬥次數 接吻次數 電影型別 california ...