一文讀懂 KNN 算法:簡單易懂,讓你輕松掌握機器學習精髓!

1 評論 1472 瀏覽 2 收藏 7 分鐘

在機器學習里,要說哪一款非常實用的分類和回歸工具,那不得不提到K 近鄰算法(KNN),大家對它了解嗎?下面這篇文章的筆者整理分享關于此的內容,感興趣的同學過來了解了解吧!

K 近鄰算法(KNN),聽起來很高大上,其實本質就是一個“找鄰居”的游戲。在機器學習的世界里,它可是一款非常實用的分類和回歸工具。

它棱角分明,具有可解釋性強,易實現的優點,在很多應用中扮演重要的角色。我們將一起探究它的算法原理、案例以及適用邊界,一起慢慢地拆解它,使用它。

一、KNN算法的原理

KNN(K-Nearest Neighbors)是一種基于實例的學習方法,它通過測量新樣本與已知樣本之間的距離,找到距離最近的 K 個鄰居,然后根據這 K 個鄰居的類別來決定新樣本的類別。

概念中提到了一個詞“最近”,那我們該如何定義樣本間距離的遠近呢?

通常來講,我們會通過數學公式計算兩個樣本點之間的距離,最常見的一個計算方法就是歐式距離(Euclidean Space)。

最后再做一個簡單的統計,找到距離待測樣本點最近的 K 個樣本點中,哪些類別最多。當然除了歐式距離,還有很多距離計算的方式,如曼哈頓距離、余弦距離等等。

總得來說,它不僅適用于分類問題,還能處理回歸問題。

二、KNN案例之挑選適合的商店

假設你是一個剛搬到城市的農村青年,對城市生活一無所知。但是,你有許多熱情的鄰居,他們愿意幫助你適應新環境。你家的周圍有兩家商店,一家賣水果,一家賣蔬菜。你想知道哪家商店更適合你,于是你開始了探索。

你首先去水果店,店主熱情地迎接你,告訴你水果的新鮮程度和價格。然后你去蔬菜店,店主也熱情地迎接你,告訴你蔬菜的新鮮程度和價格。你發現,水果店的水果種類更多,價格也更貴;而蔬菜店的價格相對便宜,種類雖然沒有那么多,但也很豐富。最后,你根據自己的需求,決定經常去蔬菜店購買蔬菜。

這個過程,就像 KNN 算法的工作原理。你就像是待分類的新樣本,兩家商店就像是已知的類別。你通過比較兩家商店的相似度(也就是水果和蔬菜的新鮮程度和價格),找到了距離你最近的那個鄰居(也就是最適合你的蔬菜店),然后決定了自己的選擇。

三、KNN算法的應用步驟

計算方式,主要有以下幾個步驟:

  1. 準備數據:收集一批已知類別的樣本,構成訓練集。
  2. 計算距離:對于每一個新樣本,計算它與訓練集中每個樣本的距離。
  3. 找到最近鄰:選出距離新樣本最近的 K 個樣本。
  4. 確定類別:根據這 K 個鄰居的類別,決定新樣本的類別。

關于K值的問題:需要注意的是K值是人工假定的選取樣本數量,它會直接影響到模型的預測效果。

當 K 越小的時候,模型就越容易過擬合,因為預測結果與最近一個樣本點強相關。而 K 越大的時候,就越容易欠擬合,因為預測結果要考慮所有樣本的情況,就相當于沒有預測。

所以,對于 K 的取值,一種有效的辦法就是從 1開始不斷地嘗試,并對比準確率,然后選取效果最好的那個 K 值。

四、KNN算法的適用邊界和優缺點

【優點】簡單易實現,可以快速解決多分類問題,并且相對于線性分類算法用一條直線來分割數據的方式來說,KNN 對于邊界不規則的數據預測效果會更好。

【缺點】KNN 對于數據的容錯性很低。比如,當待測樣本周圍的 K 個數據樣本中存在錯誤樣本的時候,就會對預測結果有很大的影響。KNN 一般適用于樣本數較少的數據集。因為它在處理數據量比較大的樣本時會非常耗時,所以,在實際工業中,我們一般會選用 Kd-tree 來進行預測。

【適用場景】在數據量不多,特征都相對單一的業務場景下很適合選擇 KNN 算法。

五、最后的話

總的來說,KNN 算法就像是一個熱情友善的鄰居,它用自己的智慧和經驗,幫助你解決生活中的問題。只要你理解它的原理,掌握它的計算方法,就能充分利用它的優點,克服它的缺點,它可以快速的幫你實現目標。

如果用一句話來概括它,那就是“近朱者赤,近墨者黑”。

本文由 @柳星聊產品 原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自Unsplash,基于 CC0 協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 太深奧了,沒看懂。

    來自以色列 回復