機器學習-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近鄰演算法:機器學習萌新必學演算法演算法機器學習
- 機器學習實戰筆記-k近鄰演算法機器學習筆記演算法
- 機器學習 第4篇:sklearn 最鄰近演算法概述機器學習演算法
- 機器學習實戰----k值近鄰演算法(Python語言)機器學習演算法Python
- 機器學習演算法(三):K近鄰(k-nearest neighbors)初探機器學習演算法REST
- 【機器學習】機器學習建立演算法第2篇:K-近鄰演算法【附程式碼文件】機器學習演算法
- 用定租問題學透機器學習的K近鄰演算法機器學習演算法
- 機器學習_K近鄰Python程式碼詳解機器學習Python
- K近鄰演算法演算法
- K - 近鄰演算法演算法
- 【火爐煉AI】機器學習026-股票資料聚類分析-近鄰傳播演算法AI機器學習聚類演算法
- 機器學習實戰2.1. 超詳細的k-近鄰演算法KNN(附Python程式碼)機器學習演算法KNNPython
- k-近鄰演算法演算法
- 機器學習經典分類演算法 —— k-近鄰演算法(附python實現程式碼及資料集)機器學習演算法Python
- K-鄰近均值演算法演算法
- 分類演算法-k 鄰近演算法演算法
- 什麼是機器學習分類演算法?【K-近鄰演算法(KNN)、交叉驗證、樸素貝葉斯演算法、決策樹、隨機森林】機器學習演算法KNN隨機森林
- 什麼是機器學習的分類演算法?【K-近鄰演算法(KNN)、交叉驗證、樸素貝葉斯演算法、決策樹、隨機森林】機器學習演算法KNN隨機森林
- 機器學習演算法機器學習演算法
- k近鄰演算法的實現:kd樹演算法
- 機器學習演算法學習筆記機器學習演算法筆記
- K近鄰模型模型
- 【機器學習】新手必看的十種機器學習演算法機器學習演算法
- 機器學習演算法:AdaBoost機器學習演算法
- Python遷移學習:機器學習演算法Python遷移學習機器學習演算法
- 機器學習演算法-K近鄰(KNN)演算法(三):馬絞痛資料--kNN資料預處理+kNN分類pipeline(程式碼附詳細註釋)機器學習演算法KNN
- 從 0 開始機器學習 - 機器學習演算法診斷機器學習演算法
- 影像重取樣演算法之最鄰近插值演算法演算法
- 【機器學習】機器學習建立演算法第1篇:機器學習演算法課程定位、目標【附程式碼文件】機器學習演算法
- 機器學習演算法一覽機器學習演算法
- 機器學習——梯度下降演算法機器學習梯度演算法
- 機器學習:整合演算法機器學習演算法