機器學習演算法總結 K近鄰

2021-07-27 04:52:07 字數 1880 閱讀 1183

參考文章:

k近鄰(knn)是一種基本分類與回歸方法。

其思路如下:給乙個訓練資料集和乙個新的例項,在訓練資料集中找出與這個新例項最近的

k 個訓練例項,然後統計最近的

k個訓練例項中所屬類別計數最多的那個類,就是新例項的類。其流程如下所示:

計算訓練樣本和測試樣本中每個樣本點的距離(常見的距離度量有歐式距離,馬氏距離等);

對上面所有的距離值進行排序;選前k

個最小距離的樣本;

根據這k

個樣本的標籤進行投票,得到最後的分類類別;

knn的特殊情況是k=

1 的情況,稱為最近鄰演算法。對輸入的例項點(特徵向量)

x ,最近鄰法將訓練資料集中與

x最近鄰點的類作為其類別。

k 值的選擇

距離的度量(常見的距離度量有歐式距離,馬氏距離)

分類決策規則(多數表決規則)

k值越小表明模型越複雜,更加容易過擬合但是

k 值越大,模型越簡單,如果k=

n的時候就表明無論什麼點都是訓練集中類別最多的那個類

所以一般

k 會取乙個較小的值,然後用過交叉驗證來確定

這裡所謂的交叉驗證就是將樣本劃分一部分出來為**樣本,比如95%訓練,5%**,然後

k分別取1,2,3,4,5之類的,進行**,計算最後的分類誤差,選擇誤差最小的

k

knn演算法使用的距離一般是歐式距離,也可以是更一般的lp

距離或者馬氏距離,其中lp

距離定義如下:

lp(x

i,xj

)=(∑

l=1n

|x(l

)i−x

(l)j

|p)1

p

這裡 xi

=(x(

1)i,

x(2)

i,..

.x(n

)i)t

,xj=

(x(1

)j,x

(2)j

,...

,x(n

)j)t

,然後 p

≥1。 當

p=2 ,稱為歐式距離,即

l2(x

i,xj

)=(∑

l=1n

|x(l

)i−x

(l)j

|2)1

2 當

p=1 ,稱為曼哈頓距離,即 l

1(xi

,xj)

=∑l=

1n|x

(l)i

−x(l

)j| 當

p=∞ ,它是各個座標距離的最大值,即 l

∞(xi

,xj)

=max

l|x(

l)i−

x(l)

j|馬氏距離如下定義:

在找到最近的

k 個例項之後,可以計算這

k個例項的平均值作為**值。或者還可以給這

k 個例項新增乙個權重再求平均值,這個權重與度量距離成反比(越近權重越大)。

優點思想簡單,理論成熟,既可以用來做分類也可以用來做回歸;

可用於非線性分類;

訓練時間複雜度為o(

n);

機器學習 k 近鄰演算法

一.k 近鄰演算法概述 簡單地說,k 近鄰演算法採用測量不同特徵值之間的距離方法進行分類。k 近鄰演算法 knn 它的工作原理是 存在乙個樣本資料集,也稱訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入沒有標籤的新資料後,將資料的每個特徵與樣本集合中資...

機器學習 K近鄰演算法

用例一 from sklearn.neighbors import nearestneighbors import numpy as np x np.array 1,1 2,1 3,2 1,1 2,1 3,2 nbrs nearestneighbors n neighbors 2,algorithm...

機器學習 K近鄰演算法

工作原理 存在乙個訓練樣本資料集合,每組資料對應乙個標籤及分類 比如下邊例子為前兩個資料都為a類 輸入測試樣本後通過計算求出測試樣本與訓練樣本的歐氏距離d,取前k個最小的值,這k組資料對應的標籤分類最多的那種,就是測試樣本的標籤。訓練樣本資料 1.0,1.1 1.0,1.0 0,0 0,0.1 歐氏...