天天看點

KNN算法--基本分類和回歸方法

KNN算法--基本分類和回歸方法。

1. 是什麼

給定一個訓練資料集(test_set)

對新的輸入執行個體

在訓練集(train_set)中找到與該執行個體距離最近的k個資料集

這k個資料集的大多數屬于哪個類型的,那麼這個執行個體就是那個分類。 如圖一所示

KNN算法--基本分類和回歸方法
舉一個不恰當的例子:如果你的身邊都是百萬富翁,那你的資産大機率也不少。

2. k值的選取以及影響

KNN算法--基本分類和回歸方法

2.1 k值過小,導緻過拟合

如圖所示,當k值選擇最小為1時,五邊形直接屬于黑色,但你從感官上看五邊形應該屬于方塊啊。這就是過拟合。

2.2 k值過大,模型簡單,預測失誤

極端的例子:選取整個訓練集的長度為k值。你會發現五邊形永遠屬于個數最多的類别。

2.3 特征歸一化

首先我們先來看這樣一個例子: 5個訓練樣本:

| 序号 | 身高 | 體重 | 分類 | | :---: | :---: | :---: | :---: | | 1 | 179 | 42 | 男 | | 2 | 178 | 43 | 男 | | 3 | 165 | 36 | 女 | | 4 | 177 | 42 | 男 | | 5 | 160 | 35 | 女 |

給出測試樣本: 6(167,43)

標明k=3 計算距離:

6-1=$$\sqrt{145}$$

6-2=$$\sqrt{121}$$

6-3=$$\sqrt{53}$$

6-4=$$\sqrt{101}$$

6-5=$$\sqrt{103}$$

由此發現 最近的為3,4,5。因為兩女一男,我們推斷樣本屬于女。 但是你會發現一個女性的腳為43碼遠遠小于男性的腳為43碼,

這裡就是因為身高的數值比腳的數值大或者說是量綱大。是以導緻身高的重要性遠遠大于腳碼。 這也就是歸一化的原因。

資料歸一化的處理方式有很多,比如:0-1标準化,Z-score标準化,Sigmoid壓縮法。 這裡介紹一個比較簡單的0-1标準化,公式:

MIN為改特征下的最小值,如身高的MIN為160;

MAX為該特征下的最大值,如身高的MAX為179

$$x_normalization=\frac{x-MIN}{MAX-MIN}$$

上面的測試資料經過0-1标準歸一化變為

| 序号 | 身高 | 體重 | 分類 | | :---: | :---: | :---: | :---: | | 1 | 1 | 0.875 | 男 | | 2 | 0.95 | 1 | 男 | | 3 | 0.26 | 0.125 | 女 | | 4 | 0.89 | 0.875 | 男 | | 5 | 0 | 0 | 女 |

舉例 身高:

1=$$\frac{179-160}{179-160}$$=1 2=$$\frac{179-160}{179-160}$$=0.95

體重

1=1=$$\frac{42-35}{43-35}$$=0.875

距離的度量

主要包括以下幾種度量方式

KNN算法--基本分類和回歸方法

案例-預測癌症

預測癌症