機器不學習 KNN

2021-10-05 19:04:22 字數 1586 閱讀 8633

knn,最鄰近分類演算法通過測量不同特徵值之間的距離來進行分類,即每個樣本都可以用最接近的k個鄰居來**。通常,在分類任務中可使用「投票法」,即選擇這k個例項**現最多的標記類別作為**結果;在回歸任務中可使用「平均法」,即將這k個例項的實值輸出標記的平均值作為**結果;還可基於距離遠近進行加權平均或加權投票,距離越近的例項權重越大。

重新訓練代價低

適合類域交叉樣本

對噪點不敏感

惰性學習

與急切學習相對應,knn沒有顯示地學習過程,也就是說沒有訓練階段

類別分類不標準化

可解釋性不強

計算量大

新樣本需要與資料集中每個資料進行距離計算,複雜度o(n)。

不均衡性

樣本容量大的類對測試集的影響更明顯。可以引入權值來改進。

對於任意n維輸入向量,對應於特徵空間中的乙個點,輸出為該特徵向量所對應的類別標籤或**值。

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

按距離遞增排序

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

統計前k個點所在類別的頻率

返回k個點的最高頻率

一般使用歐式距離:

l p(

xi,x

j)=(

∑l=1

n∣xi

(l)−

xj(l

)∣p)

1plp(x_i,x_j)=(∑_^n|x^_i−x^_j|^p)^

lp(xi​

,xj​

)=(l

=1∑n

​∣xi

(l)​

−xj(

l)​∣

p)p1

近似誤差:理解為對訓練集的訓練誤差。當近似誤差較小的時候,會出現過擬合的現象,對現有訓練集能有很好地**,但在測試樣本上會有較大偏差。

估計誤差:理解為對測試集的測試誤差。估計誤差小的模型就是較優的模型。

當選擇較小的k值時,學習的近似誤差會減小(邊界情況),但是學習的估計誤差會增大,很容易受到雜訊的影響,產生過擬合;當選擇較大的k值時,可以減少估計誤差,但會增大近似誤差,意味著整體模型變簡單。

k-fold cross validation:k折交叉驗證。將資料集分成k份,每次取出乙份作為測試集,分別計算mse後取平均。

量化:如果樣本中存在非數值的特徵,需要量化為數值,然後再對映到特徵空間中。

歸一化:樣本中不同特徵的尺度不同,所以對距離計算的影響不一樣,所以進行歸一化處理,使得各特徵的尺度相當。

reference

機器學習之knn最鄰近分類演算法

機器學習 KNN

posted on 2015 05 21 20 34 in ml 0 comment views 3195 原始碼 決策樹和基於規則的分類器都是積極學習方法 eager learner 的例子,因為一旦訓練資料可用,他們就開始學習從輸入屬性到類標號的對映模型。乙個相反的策略是推遲對訓練資料的建模,直...

機器學習 KNN

定義事件ejl j 0,1.k e j epsilon 0,1.k ejl j 0,1.k 為對於標籤 l,k個鄰居中包換j個這個標籤,則 e為乙個 k n 的矩陣,每一行為距離該例項的樣本中每個標籤的數量,則 c l 向量是e矩陣的最後一行,表示距離為k時的各個標籤數量。則我們需要的是在已知e矩陣...

機器學習 kNN

0.載入相關模組 import numpy as np import matplotlib.pyplot as plt import pandas as pd import seaborn as sns from sklearn.model selection import train test s...