# 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 ...