機器學習-11-k近鄰演算法
給定一個資料集,對新的輸入樣本,在資料集中找到與新的輸入樣本距離最近的k個樣本,將這k個樣本中最多數屬於某個類的那個類別當作新的輸入樣本的類別。
距離度量
- 歐式距離: D = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 D=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2} D=(x2−x1)2+(y2−y1)2
- 曼哈頓距離: D = ∣ x 2 − x 1 ∣ + ∣ y 2 − y 1 ∣ D=|x_2-x_1|+|y_2-y_1| D=∣x2−x1∣+∣y2−y1∣
- 餘弦值
實現
K近鄰最簡單的實現就是直接遍歷整個資料集,叫線性掃描(linear scan),但是這樣的話,需要將輸入的樣本和資料集中每個樣本進行度量距離,如果資料集很大的話,計算是非常耗時的。所以比較常見的是KD樹。
程式碼
from numpy import tile
def classify0(inX, dataSet, labels, k):
dataSetSize = dataSet.shape[0]
#距離計算
diffMat = tile(inX, (dataSetSize,1)) - dataSet
sqDiffMat = diffMat**2 #平方
sqDistances = sqDiffMat.sum(axis=1) #根號下平方相加
distances = sqDistances**0.5 #根號
sortedDistIndicies = distances.argsort() #排序
classCount={}
#選擇距離最小的k個點
for i in range(k):
voteIlabel = labels[sortedDistIndicies[i]]
classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1
#排序,將classCount字典分解為元祖列表,匯入itemgeeter方法,按照第二個元素的次序對元祖進行排序
#此處排序為逆序,即從大到小排序,最後返回發生頻率最高的元素標籤。
sortedClassCount = sorted(classCount.items(),key=operator.itemgetter(1),reverse=True)
return sortedClassCount[0][0]
# 為預測資料所在分類:kNN.classify0([0,0], group, labels, 3)
相關文章
- 機器學習——K近鄰演算法機器學習演算法
- 機器學習——KNN近鄰演算法機器學習KNN演算法
- 機器學習-K近鄰演算法-KNN機器學習演算法KNN
- 機器學習演算法之K近鄰演算法機器學習演算法
- 機器學習演算法——kNN(k-近鄰演算法)機器學習演算法KNN
- 機器學習——KNN(K近鄰)機器學習KNN
- 機器學習實戰筆記-k近鄰演算法機器學習筆記演算法
- 機器學習筆記1(K-近鄰演算法)機器學習筆記演算法
- K近鄰演算法:機器學習萌新必學演算法演算法機器學習
- 機器學習 第4篇:sklearn 最鄰近演算法概述機器學習演算法
- k近鄰演算法python實現 -- 《機器學習實戰》演算法Python機器學習
- K - 近鄰演算法演算法
- K近鄰演算法演算法
- 機器學習實戰----k值近鄰演算法(Python語言)機器學習演算法Python
- 機器學習演算法(三):K近鄰(k-nearest neighbors)初探機器學習演算法REST
- 【機器學習】機器學習建立演算法第2篇:K-近鄰演算法【附程式碼文件】機器學習演算法
- k-近鄰演算法演算法
- 用定租問題學透機器學習的K近鄰演算法機器學習演算法
- K-鄰近均值演算法演算法
- 機器學習——最鄰近規則分類(K Nearest Neighbor)KNN演算法機器學習RESTKNN演算法
- 機器學習_K近鄰Python程式碼詳解機器學習Python
- 分類演算法-k 鄰近演算法演算法
- Python:K-近鄰演算法Python演算法
- 2.1 k鄰近演算法之二演算法
- 2.1 k鄰近演算法之一演算法
- 機器學習——最鄰近規則分類(K Nearest Neighbor)KNN演算法的應用機器學習RESTKNN演算法
- K近鄰模型模型
- k近鄰演算法的實現:kd樹演算法
- 用Python實現K-近鄰演算法Python演算法
- 影像重取樣演算法之最鄰近插值演算法演算法
- 機器學習實戰2.1. 超詳細的k-近鄰演算法KNN(附Python程式碼)機器學習演算法KNNPython
- 【火爐煉AI】機器學習026-股票資料聚類分析-近鄰傳播演算法AI機器學習聚類演算法
- 機器學習經典分類演算法 —— k-近鄰演算法(附python實現程式碼及資料集)機器學習演算法Python
- K-近鄰演算法介紹與程式碼實現演算法
- 《機器學習實戰》中的程式清單2-1 k近鄰演算法(kNN)classify0都做了什麼機器學習演算法KNN
- 【系統設計】鄰近服務
- K近鄰法(KNN)原理小結KNN
- 什麼是機器學習分類演算法?【K-近鄰演算法(KNN)、交叉驗證、樸素貝葉斯演算法、決策樹、隨機森林】機器學習演算法KNN隨機森林