K 最近鄰 (KNN):它是什麼以及它如何在機器學習中使用

已發表: 2024-12-18

K 最近鄰 (KNN) 是機器學習 (ML) 的基礎技術。本指南將幫助您了解 KNN、它的工作原理及其應用、優點和挑戰。

目錄

什麼是k近鄰演算法?

KNN 是如何運作的?

k近鄰演算法與其他演算法的區別

KNN如何應用於機器學習?

KNN 的應用

KNN的優點

KNN 的缺點

什麼是k近鄰演算法?

k 最近鄰 (KNN) 演算法是一種用於分類和迴歸的監督學習技術。 KNN 透過評估資料集中附近的資料點來確定給定資料點的標籤(分類)或預測值(迴歸)。

使用 Grammarly 更聰明地工作
任何有工作要做的人的人工智慧寫作夥伴

KNN 是如何運作的?

KNN 的前提是,資料集中空間上彼此接近的資料點往往具有相似的值或屬於相似的類別。 KNN 使用這個簡單但強大的想法,透過在標記的訓練資料集中尋找預設數量(超參數 k)的相鄰資料點來對新資料點進行分類。這個值 k 是 KNN 超參數之一,它是 ML 從業者用來控制演算法學習方式的預設配置變數。

然後,該演算法確定哪些相鄰值最接近新資料點,並為其分配與其鄰居相同的標籤或類別。 k 值的選擇會影響模型的效能。較小的值會增加雜訊敏感度,而較大的值會增加穩健性,但可能會導致 KNN 錯過局部模式。

數據點之間的接近度或距離是使用最初開發的用於測量數學空間中點的相似性的度量來計算的。常見的測量包括歐幾里德距離、曼哈頓距離和閔可夫斯基距離。 KNN 效能受到所選指標的影響,不同的指標對於不同類型和大小的資料表現較好。

例如,資料中的維度數量(描述每個資料點的單獨屬性)可能會影響指標效能。無論選擇何種距離度量,目標都是根據新資料點與其他資料點的距離對新資料點進行分類或預測。

  • 歐幾裡得距離是空間中兩點之間沿直線的距離,是最常用的度量標準。它最適用於維數較少且沒有顯著異常值的資料。
  • 曼哈頓距離是被測量的數據點的座標之間的絕對差之和。當資料是高維的或資料點形成網格狀結構時,此指標非常有用。
  • 閔可夫斯基距離是一種可調度量,根據可調參數的值,其作用類似於歐幾里德距離或曼哈頓距離。調整此參數可控制距離的計算方式,這對於使 KNN 適應不同類型的資料很有用。

其他較不常見的測量包括切比雪夫距離、漢明距離和馬哈拉諾比斯距離。這些指標更加專業,適合特定的資料類型和分佈。例如,馬氏距離衡量點與點分佈的距離,同時考慮變數之間的關係。因此,馬氏距離非常適合處理特徵使用不同尺度的資料。

KNN 通常被稱為「惰性」學習演算法,因為與許多其他演算法不同,它不需要訓練。相反,KNN 儲存資料並僅在新資料點需要回歸或分類時使用它來做出決策。然而,這意味著預測通常具有很高的計算要求,因為每個預測都會評估整個資料集。 ∫

k近鄰演算法與其他演算法的區別

KNN 是分類和回歸的監督 ML 技術大家族的一部分,其中包括決策樹/隨機森林、邏輯回歸和支援向量機 (SVM)。然而,KNN 與這些技術的不同之處在於其簡單性和處理資料的直接方法等。

決策樹與隨機森林

與 KNN 一樣,決策樹和隨機森林也用於分類和迴歸。然而,與 KNN 基於距離的方法不同,這些演算法使用在訓練期間從資料中學習到的明確規則。決策樹和隨機森林往往有更快的預測速度,因為它們有預先訓練的規則。這意味著它們比 KNN 更適合即時預測任務和處理大型資料集。

邏輯迴歸

邏輯迴歸假設資料呈線性分佈,並使用直線或超平面(高維空間中分隔資料點的邊界)對資料進行分類,以將資料分為類別。另一方面,KNN 不假設特定的資料分佈。因此,KNN 可以更輕鬆地適應複雜或非線性數據,而邏輯迴歸最適合用於線性數據。

支援向量機

支援向量機 (SVM) 不像 KNN 那樣關注點之間的距離,而是專注於在資料點組之間創建清晰的分界線,通常的目標是使它們之間的差距盡可能寬。 SVM 非常適合處理具有許多特徵的複雜資料集,或需要在資料點組之間進行明確分離時。相比之下,KNN 更易於使用和理解,但在大型資料集上的表現不佳。

KNN如何應用於機器學習?

許多機器學習演算法只能處理一種類型的任務。 KNN 因其能夠處理不只一種而是兩種常見用例的能力而脫穎而出:分類和回歸。

分類

KNN 透過使用距離度量來確定 k 最近鄰並根據鄰居的標籤為新資料點分配標籤來對資料點進行分類。常見的 KNN 分類用例包括垃圾郵件分類、根據購買歷史記錄將客戶分組以及手寫數字識別。

回歸

KNN 透過根據其 k 個最近鄰的平均值(或加權平均值)估計資料點的值來執行迴歸。例如,KNN 可以根據附近的相似房產預測房價,根據相似股票的歷史資料預測股票價格,或根據相似地點的歷史天氣資料預測溫度。

KNN 演算法在 ML 的應用

由於其相對簡單並且能夠執行分類和回歸,KNN 具有廣泛的應用。其中包括圖像識別、推薦系統和文字分類。

影像辨識

由於其分類能力,影像辨識是 KNN 最常見的應用之一。 KNN 透過將未知影像中的特徵(如顏色和形狀)與標記影像資料集中的特徵進行比較來執行影像辨識。這使得 KNN 在電腦視覺等領域非常有用。

推薦系​​統

KNN 可以透過將使用者的偏好資料與類似使用者的資料進行比較來向使用者推薦產品或內容。例如,如果使用者聽過幾首經典爵士歌曲,KNN 可以找到具有相似偏好的使用者並推薦這些使用者喜歡的歌曲。因此,KNN 可以根據相似數據推薦產品或內容,幫助個人化使用者體驗。

文字分類

文本分類旨在根據未分類文本與預分類文本的相似性對未分類文本進行分類。 KNN 評估單字模式的緊密度的能力使其成為該用例的有效工具。文本分類對於情緒分析(其中文本被分類為正面、負面或中性)或確定新聞文章的類別等任務特別有用。

KNN 演算法在 ML 的優勢

KNN 有幾個顯著的優點,包括簡單性、多功能性和缺乏訓練階段。

簡單

與許多其他 ML 演算法相比,KNN 易於理解和使用。 KNN 背後的邏輯很直觀,它根據附近資料點的值對新資料點進行分類或預測(回歸),這使其成為 ML 從業者(尤其是初學者)的熱門選擇。此外,除了選擇 k 值之外,使用 KNN 還需要進行最小的超參數調整。

多功能性

KNN 可用於分類和回歸任務,這意味著它可以應用於從影像識別到數值預測的大量問題和資料類型。與僅限於一種類型任務的專用演算法不同,KNN 可以應用於任何適當結構化的標記資料集。

顯式訓練階段

許多機器學習模型在變得有用之前需要經過時間和資源密集的訓練階段。另一方面,KNN 只是儲存訓練資料並在預測時直接使用它。因此,KNN 可以使用新資料進行更新,並可立即用於預測。這使得 KNN 對於小型資料集特別有吸引力。

KNN 演算法在 ML 中的缺點

儘管 KNN 有其優勢,但它也面臨一些挑戰。這些包括高計算和記憶體成本、對噪音和不相關特徵的敏感性以及「維度災難」。

預測的計算成本

由於 KNN 每次進行預測時都會計算新資料點與其整個訓練資料集中的每個資料點之間的距離,因此預測的計算成本隨著資料集的增長而迅速增加。當資料集很大或 KNN 在硬體不足的情況下運行時,這可能會導致預測緩慢。

維數詛咒

KNN 遭受所謂的“維度詛咒”,這限制了其處理高維資料的能力。隨著資料集中特徵數量的增加,大多數資料點變得稀疏且彼此之間幾乎等距。因此,距離度量變得不太有用,這使得 KNN 很難在高維資料集中找到真正附近的鄰居。

記憶體密集型

KNN 的一個獨特功能是它將整個訓練資料集儲存在記憶體中以供預測時使用。當處理有限的記憶體或大型資料集時,這可能會出現問題且不切實際。其他機器學習演算法透過模型訓練和參數優化將訓練資料壓縮並提煉為學習特徵,從而避免了這項挑戰。另一方面,KNN 必須保留每個資料點,這意味著記憶體隨著訓練資料集大小線性增長。

對噪音和不相關特徵的敏感性

KNN 的強大之處在於其簡單、直覺的距離計算。然而,這也意味著不重要的特徵或雜訊可能會導致誤導性的距離計算,進而對預測精度產生負面影響。因此,特徵選擇或降維技術(例如主成分分析 (PCA))通常與 KNN 一起使用,以確保重要特徵對預測影響最大。