《機器學習實戰》學習筆記一 k 近鄰演算法(kNN)

2021-08-14 18:50:59 字數 1060 閱讀 2636

k-近鄰演算法(以下簡稱knn)是分類演算法中比較簡單的一種,knn演算法的一般流程為:(1)收集資料,如從檔案中匯入資料(2)準備資料,將資料轉化為適合計算的格式,如矩陣的形式(3)分析資料(4)測試資料,計算分類的錯誤率(5)應用演算法,給定輸入,得到相應的輸出,指出改資料屬於哪一種分類。

knn演算法的過程如下:

(1)計算資料集中各點與當前點(給定資料)之間的距離;

(2)按照距離的遞增次序排序;

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

(4)統計前k個點所在的類別出現的頻率

(5)返回頻率最高的點所在的類別,此類別為當前點的**分類

具體實現**如下:

def

classify0

(inx, dataset, labels, k):

datasetsize = dataset.shape[0] #返回矩陣的行數

diffmat = tile(inx, (datasetsize,1)) - dataset

sqdiffmat = diffmat**2

sqdistances = sqdiffmat.sum(axis=1)#計算兩點間的距離

sorteddistindicies = distances.argsort()

#按照距離從小到大的順序對下標排序

classcount={}

for i in range(k):

voteilabel = labels[sorteddistindicies[i]]

classcount[voteilabel] = classcount.get(voteilabel,0) + 1

sortedclasscount = sorted(classcount.items(), key=operator.itemgetter(1), reverse=true)

#統計分類出現的頻率,並且按照從高到低排序

# iteritems()是python2.x中的,在python3.x廢除了在這裡用items

return sortedclasscount[0][0]

機器學習實戰學習筆記(一) K 近鄰演算法

k 近鄰演算法採用測量不同特徵值之間的距離方法進行分類。存在乙個樣本資料集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入沒有標籤的新資料後,將新資料的每個特徵和樣本集中資料對應的特徵進行比較,然後演算法提取樣本集中特徵最相似資料 最近鄰 的...

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

簡單來說,k 近鄰演算法採用測量不同特徵值之間的距離方法進行分類 優點 精度高 對異常值不敏感 無資料輸入假定 缺點 計算複雜度高 空間複雜度高 適用資料範圍 數值型和標稱型 工作原理 存在乙個樣本資料集合,樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入沒有標籤的新...

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

本章介紹機器學習實戰的第乙個演算法 k近鄰演算法 k nearest neighbor 也稱為knn。說到機器學習,一般都認為是很複雜,很高深的內容,但實際上其學習門欄並不算高,具備基本的高等數學知識 包括線性代數,概率論 就可以了,甚至一些演算法高中生就能夠理解了。knn演算法就是乙個原理很好理解...