《機器學習實戰》 k 近鄰演算法實現

2021-07-28 16:34:38 字數 976 閱讀 9540

首先介紹一下k-近鄰演算法的偽**:

計算已知類別資料集中的點與當前點之間的距離

按照距離遞增次序排序

選取與當前點距離最小的k個點

確定k個點所在的類別出現的頻率

返回前k個點出現頻率最高的類別作為當前點的**分類結果

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={}

for i in range(k):

voteilabel = labels[sorteddistindicies[i]] #計算距離從小到大資料的類

classcount[voteilabel] = classcount.get(voteilabel,0) + 1 #計算前k個資料的所屬類的個數

sortedclasscount = sorted(classcount.iteritems(), key=operator.itemgetter(1), reverse=true) #按類數量排序

return sortedclasscount[0][0]

測試具體實現:

準備資料

結果輸出

k選取2,輸出結果:'a'

《機器學習實戰》 K 近鄰演算法

基本原理 通過計算新資料與給定的樣本資料之間的距離,來確定相似度排名 然後取前k個最相似的樣本,統計這k 一般不大於20 個樣本中出現最多的分類,設為新資料的分類。新資料,訓練樣本集,樣本資料標籤 即分類 最近鄰 前k個最相似資料 最近鄰標籤 演算法實施 首先提取要比較的特徵,確定各特徵的權重,進行...

機器學習實戰 K 近鄰演算法

簡單的說,k 近鄰演算法採用測量不同特徵值之間的距離辦法進行分類.收集資料 可以使用任何方法。準備資料 距離計算所需要的數值,最好是結構化的資料格式。分析資料 可以使用任何方法。訓練演算法 此步驟不適用於k 近鄰演算法。測試演算法 計算錯誤率。使用演算法 首先需要輸入樣本資料和結構化的輸出結果,然後...

機器學習實戰 k 近鄰演算法

本系列是基於 機器學習實戰 這本書做的讀書筆記,原書採用python2作為工具,我則將原書 改為用python3編寫並記錄在此系列中。我將把書中對這些機器學習演算法的定義謄上,然後寫下自己對該演算法的通俗理解,之後貼出書中演算法清單中的 本書講解的第乙個機器學習演算法是k 近鄰演算法 knn 它的工...