文章目錄
- 1.算法介紹
- 2.過擬合和欠擬合
- 3.幾種不同的距離
- 4.特征的歸一化處理
特此聲明:該內容是學習耿直哥的相關機器學習理論,也是文章里面的部分圖片素材的來源
1.算法介紹
KNN全稱叫做K Nearset Neighbor,翻譯之后就是K個最近的鄰居;
其實這個KNN是一個思想,在我們的分類問題和回歸問題里面都是有所體現的:
首先看一下這個分類的問題:分類問題使用這個思想主要是給我們的未知的個體貼上一個標簽,中間的那個白色的圓圈周圍:有灰色的,有紅色的,那我們的這個未知的個體應該是灰色的還是紅色的呢?
這個時候,通過選擇不同的l值,我們就可以為這個未知的個體貼上標簽:k=3的時候,就是虛線的小圓圈,這個時候,這個未知個體的屬性就是紅色的,如果k-5,也就是虛線的大圓圈,這個時候未知的個體的屬性就是灰色的;
在我們的回歸問題里面,和上面的分類問題貼標簽不一樣,回歸問題主要是確定這個未知點的數值,也就是周圍是不同的數據,我們需要根據這個k和不同的個體的權重,計算這個未知的個體的具體數值;
2.過擬合和欠擬合
K值的選取會出現這個過擬合和欠擬合的現象:
K值太小就是過擬合,英文叫做overfit,fit是合身,合適的意思,over就是過度的意思,如圖所示,這個未知的個體周圍基本上都是紅色的,但是如果你的這個k=1的時候,他應該是灰色的,這種情況就是過擬合;
右下角的小人是為了從英語的層面去解釋這個問題,就是這個小人的褲子太緊了,具體到我們的數據上面,就是這個數據集選擇這個范圍太小了,所以稱為過擬合,這個時候i很容易受到噪聲的影響;其實,如果從英語的角度,也就是overfit進行理解,這個時候就很容易明白;
因為初學者很難理解,為什么這個數據選擇的很少,但是這個現象稱之為過擬合呢,實際上這個就是從我們的英文翻譯來的,如果追根溯源,我相信這個overfit并不難理解;
欠擬合,即underfit,使用小人理解,就是褲子太大了,具體到數據上面就是數據的選擇范圍太大了,其實有些的影響程度很小,基本上就可以忽略,但是我們也考慮進來了,這個就是欠擬合,這個時候的決策的效率很低,因為你受到每一個樣本的影響;
3.幾種不同的距離
在我們的這個KNN算法里面,因為是最近鄰嗎,所以這個距離的計算是我們繞不開的,因為這個距離決定了我們是否要選取這個點作為我們的參考點,下面介紹幾種不同的距離:
首先是明氏距離,這個根據數學家明可夫斯基來進行命名的,通式如下所示,p=1的時候就是曼哈頓距離,p=2的時候就是歐氏距離,這個歐氏距離就是我們熟悉的距離,也就是我們傳統意義上面的距離;
下面的這個上面還是用藍色這個直線表示的我們的歐氏距離,使用紅色的兩個直線段表示我們的曼哈頓距離,但是實際上,我們常用的還是我們很熟悉的這個歐氏距離,其他的兩個了解即可;
4.特征的歸一化處理
為什么要進行特征值的歸一化處理:主要是為了讓不同的特征對于我們的模型具有一樣的影響,這個時候模型同等的對待每一個特征,提高模型的準確性;
下面的這個變換的過程就可以解釋這個現象:就是我們的x,y軸相同的距離代表的長度需要是一致的,也就是我們說的這個標度,否則就會對于我們的模型訓練產生影響;