K近鄰算法:「近朱者赤,近墨者黑」的智慧

2024-01-15     人人都是產品經理

原標題:K近鄰算法:「近朱者赤,近墨者黑」的智慧

AI產品經理需要掌握的內容有很多,本文將介紹K近鄰算法,它常用來解決分類問題。一起來看看它的原理和應用吧。

AI產品經理需要掌握的內容有很多,本文將介紹K近鄰算法,它常用來解決分類問題。一起來看看它的原理和應用吧。

前文我們介紹了AI產品經理的工作流程、模型構建流程、模型評估等內容,今天我們正式進入算法的學習。

首先介紹的是K近鄰算法,K近鄰算法是機器學習的入門級算法,原理簡單易懂,常用來解決分類問題。

一、基本原理

K近鄰算法(K-Nearest Neighbor),簡稱KNN算法,是基於距離計算來解決分類問題的一種算法。

其實KNN算法充斥在我們的日常生活中,很多時候,我們都會有意無意的參考一下身邊人的選擇,做出最簡單有效的選擇。

以買空調為例,在小區里轉悠一圈,統計其中安裝最多的空調品牌,再找其中一位鄰居聊幾句,符合預算的話,很容易就下決定了。

還有送女朋友禮物的時候,問下身邊的哥們兒之前都送過什麼禮物,選擇頻率最高的禮物,更不容易踩雷。

結合上面兩個小例子,KNN的原理其實就是參考周圍最近的已經做出的選擇,來做出與之類似的選擇,也就是「近朱者赤,近墨者黑」

再回到機器學習場景,那麼KNN算法的基本思路就是:在特徵空間中,如果一個樣本附近的k個最近(即特徵空間中最鄰近)樣本的大多數屬於某一個類別,則該樣本也屬於這個類別。

這裡提到了「最近」的概念,我們在計算樣本點之間距離時,可以使用歐式距離、餘弦距離、曼哈頓距離等數學公式,最常見的是歐式距離。

找出距離待測樣本最近的K個樣本點,然後統計其中最多的類別是哪個,就認為待測樣本點歸屬於這個類別。

二、K值的選擇

除了距離之外,KNN算法還需要考慮如何選擇合適的K值,因為K值的選取會影響模型的預測效果。

如果選擇較小的K值,影響決策的樣本數量也較少,預測結果會對臨近的樣本過於敏感,如果臨近的樣本恰巧是噪聲,預測就會出錯。換句話說,K值減小就意味著整體模型變複雜,就容易發生過擬合。

如果選擇較大的K值,影響決策的樣本數量就會過多,導致預測效果下降,很容易導致欠擬合。

我們通常可以將K從1開始,逐一遞增,對比每個K值對應的結果,最終選擇表現最好的K值。

三、應用場景

理論上,KNN算法可以支持大多數的分類場景,如區分是否好瓜、是否薅羊毛用戶等。

除此之外,KNN還可以應用在各種簡單的推薦的場景,比如:

  • 根據用戶的購買記錄,推薦相似的商品
  • 根據用戶的音樂風格和歷史播放記錄,推薦用戶可能喜歡的音樂

KNN算法的優點:

  • 簡單易懂,複雜度低:訓練代價低,甚至不需要訓練,只要把樣本數據整理好,就可以直接預測新數據
  • 邊界不規則的分類效果更好:當數據的分類邊界不規則時,KNN算法效果比線性分類算法好,不需要考慮數據的邊界問題

KNN算法的缺點:

  • 計算量較大:需要計算待測樣本和每一個已有樣本之間的距離,計算量非常大,所以只適用於小數據集
  • 數據容錯性較低:如果訓練集中存在錯誤的樣本數據,該錯誤樣本又距離待測樣本較近,就會導致預測不準確,所以對數據質量依賴程度是非常高的
  • 數據分布均衡程度要求高:樣本數據不均衡時,某個類別的數據量特別大時,會占有絕對的投票優勢,影響到其他類別的預測效果
  • 可解釋性較差:除了「近朱者赤,近墨者黑」之外,我們好像很難對輸出結果有更多的解釋

本文我們簡單介紹了KNN算法的原理、應用場景和優缺點,KNN算法是機器學習的入門級算法,希望對大家有所幫助。

下篇文章,我們會聊一聊樸素貝葉斯算法,敬請期待。

本文由 @AI小當家 原創發布於人人都是產品經理,未經許可,禁止轉載

題圖來自 Unsplash,基於 CC0 協議

文章來源: https://twgreatdaily.com/zh-mo/8015ce2f858f23b50e382daffed030b0.html