1.knn
k近鄰演算法的工作機制就是給定測試樣本,基於某種距離度量找出訓練集中與其最靠近的k個訓練樣本,然後基於這k個「鄰居」的資訊來進行**。
2.思維導圖
3.**
importnumpy as np
#訓練資料
class
k_neigbors:
def__init__
(self,k):
self.k =k
deffit(self,x_train,y_train):
self.x =x_train
self.y =y_train
defpredict(self,x_test):
dist_list = [(-np.linalg.norm(x_test - self.x[i], ord=2), self.y[i], i)
for i in range(len(self.y))] #
計算歐式距離
target =list(self.y)
idol_target =0
for i in
range(self.k):
index = dist_list.index(max(dist_list)) #
選取最大值 #
target_try = target[index] #
最大值target
dist_list.remove(dist_list[index])
target.remove(target[index])
if(target_try<0):
idol_target -= 1
else
: idol_target += 1
if idol_target >=0:
return 1
else
:
return -1
defmain():
#訓練資料
x_train = np.array([[5,9],[9,6],[4,7],[2,3],[8,1],[7,2]])
y_train = np.array([1,1,1,-1,-1,-1])
#測試資料
x_test = np.array([5,3])
#例項化模型
k=3model = k_neigbors(k=k)
model.fit(x_train,y_train)
y_predict =model.predict(x_test)
print("
k={},被分類為:{}
".format(k, y_predict))
if__name__ == "
__main__":
main()
K臨近演算法
k臨近演算法 k nearest neighbor,knn 是最簡單的監督學習分類演算法之一。有之一嗎?對於乙個應用樣本點,k臨近演算法尋找距它最近的k個訓練樣本點即k個nearest neighbor。若在k個鄰居中屬於某一類別的最多,則認為應用樣本點也屬於該類別。knn演算法無需訓練,很容易實現...
K臨近演算法
k臨近演算法 k nearest neighbor,knn 是最簡單的監督學習分類演算法之一。有之一嗎?對於乙個應用樣本點,k臨近演算法尋找距它最近的k個訓練樣本點即k個nearest neighbor。若在k個鄰居中屬於某一類別的最多,則認為應用樣本點也屬於該類別。knn演算法無需訓練,很容易實現...
K 臨近演算法學習總結
1演算法簡介 按照距離遞增次序排序 選取與當前點距離最小的k個點 確定前k個點所在類別的出現頻率 返回前k個點所出現頻率最高的類別作為當前點的 分類 import numpy as np import operator def createdataset 四組二維特徵 group np.array ...