圖說十大資料探勘演算法(一)K最近鄰演算法

貪心科技發表於2019-01-25

圖說十大資料探勘演算法(一)K最近鄰演算法

用官方的話來說,所謂K近鄰演算法,即是給定一個訓練資料集,對新的輸入例項,在訓練資料集中找到與該例項最鄰近的K個例項(也就是上面所說的K個鄰居), 這K個例項的多數屬於某個類,就把該輸入例項分類到這個類中。

如果你之前沒有學習過K最近鄰演算法,那今天幾張圖,讓你明白什麼是K最近鄰演算法。

圖說開始

先來一張圖,請分辨它是什麼水果

圖說十大資料探勘演算法(一)K最近鄰演算法

很多同學不假思索,直接回答:“菠蘿”!!!

仔細看看同學們,這是菠蘿麼?那再看下邊這這張圖。

圖說十大資料探勘演算法(一)K最近鄰演算法

這兩個水果又是什麼呢?

這就是菠蘿與鳳梨的故事,下邊即將用菠蘿和鳳梨,給大家講述怎麼用一個演算法來知道這是個什麼水果的過程,也就是什麼是K最近鄰演算法。

(給非吃貨同學們補充一個生活小常識,菠蘿的葉子有刺,鳳梨沒有。菠蘿的凹槽處是黃色的,而鳳梨的凹槽處是綠色的,以後千萬不要買錯哦!!!)

圖說十大資料探勘演算法(一)K最近鄰演算法

上邊這張圖中,我們定義了兩個維度的特徵:

  • 一個是葉子是否有刺

  • 一個是凹槽處是否的顏色

問:一個新的水果來了,我們怎麼判斷他是什麼水果呢?

圖說十大資料探勘演算法(一)K最近鄰演算法

方法如下:

圖說十大資料探勘演算法(一)K最近鄰演算法

(看這個神祕水果與哪個水果的舉例近。同等舉例,看離它最近的水果中,哪個水果多)

根據上圖中,我們判斷,這個神祕水果那就是菠蘿啦,原因是離它近的水果中菠蘿比鳳梨多。

相信到這裡,大家都已經明白了什麼是K最近鄰演算法了吧!

下邊來具體學習一下距離的計算

假設我們有3中不知名的水果

圖說十大資料探勘演算法(一)K最近鄰演算法

我們現在根據其大小和顏色的特徵,把它們放入圖表中

圖說十大資料探勘演算法(一)K最近鄰演算法

那如我們如何判斷他們有多像呢?

圖說十大資料探勘演算法(一)K最近鄰演算法

具體的計算,可以使用畢達哥拉斯公式

圖說十大資料探勘演算法(一)K最近鄰演算法

那現在來計算水果A和水果B之間的距離

圖說十大資料探勘演算法(一)K最近鄰演算法

圖說十大資料探勘演算法(一)K最近鄰演算法

 最後的計算結果為1

那麼同理,如果要讓你去做一個推薦系統,我們可以把人的使用者畫像放在一個表格裡

圖說十大資料探勘演算法(一)K最近鄰演算法

如果我們給其中一個人推薦他可能感興趣的書、電影、美食等,就可以看一下離他最近距離的這些人都在做什麼,然後就套用下邊的公式就可以了

圖說十大資料探勘演算法(一)K最近鄰演算法

無論多少維度,直接套用就可以了。

圖說演算法,是不是非常的簡單就理解了KNN。

祝大家學習愉快,歡迎轉發。

相關文章