👥 最直覺的分類法 · iPAS 常考

KNN 近鄰演算法:近朱者赤,看鄰居決定你是誰

KNN 是最好懂的機器學習演算法之一:要判斷一個新資料屬於哪一類,就看它周圍最近的 K 個鄰居多數是哪一類。它不需要先訓練模型、概念直白,但也藏著「為什麼一定要標準化」「為什麼高維會失效」這些必考細節。

近朱者赤距離→投票K 怎麼選惰性學習標準化維度詛咒

🤔 一、KNN 在做什麼?

一句成語就懂:近朱者赤,近墨者黑

💡 白話定義

想知道一個新資料(下面那顆灰色點)屬於哪一類?KNN 的做法超直白:看它周圍最近的 K 個鄰居是哪一類,多數那一類就是它的類別。就像你搬到新社區,看左鄰右舍多數是什麼樣的人,大概就能猜這一帶的調性。K 就是「要參考幾個鄰居」。

⚙️ 二、運作三步驟

1
算距離
算「新資料」到每一個已知資料的距離,通常用歐氏距離(兩點間直線距離);也可用曼哈頓距離(像走方格街道)。
2
找最近的 K 個
把距離由近到遠排序,挑出最近的 K 個鄰居
3
投票(分類)或平均(迴歸)
這 K 個鄰居中,哪一類最多,新資料就是那一類(分類)。如果是預測數值(迴歸),就取這 K 個鄰居的平均值

🎮 三、動手玩:拖動灰點,看鄰居投票

這個 demo 的灰色點可以用滑鼠拖動。拖它到不同地方、拉 K 值,看預測怎麼變。

🗺️ 怎麼看

藍點 / 紅點 = 兩類已知資料
灰色大點 = 要分類的新資料(可拖動!)把它拖到藍區、紅區、或交界處看看。
虛線 = 連到「最近的 K 個鄰居」;被選中的鄰居顏色變鮮明、其他變淡。下方顯示票數與預測。

試試:把 K 設為 1(只看最近 1 個,邊界很破碎、易受雜訊)vs K 設到 15(看很多鄰居、邊界平滑)。

藍色票數: 0
紅色票數: 0
預測結果: 未知

🎚️ 四、K 值怎麼選?(最常考)

K 控制「參考範圍」,太小太大都不好——這就是偏差–變異的權衡。

比較K 太小(如 K=1)K 太大
決策邊界破碎、彎彎曲曲過度平滑
受雜訊影響很大(一個雜訊點就改變判斷)較小
毛病過擬合(高變異)欠擬合(高偏差,忽略局部結構)

🔑 兩個實務原則

用交叉驗證挑 K:試一排 K,看哪個在沒見過的資料上最好。
二分類用奇數 K:避免「2 票對 2 票」的平手(例如 K=3、5、7)。

⭐ 五、三個一定要知道的重點

① 它是「惰性學習(Lazy Learning)」

KNN 不先訓練、不建模型——它只是把訓練資料整包記住。等到要預測時,臨時去算距離、找鄰居。所以它「訓練幾乎不花時間,但預測很慢」(每次預測都要和一大堆資料比距離),跟邏輯迴歸那種「先訓練好、預測超快」的積極學習(eager learning)正好相反。

② 一定要先「標準化」特徵

KNN 靠距離找鄰居。如果一個特徵是「年齡(0~100)」、另一個是「年收入(0~200 萬)」,那年收入的數字大很多,會完全主導距離,年齡幾乎沒影響。所以用 KNN 前務必先把各特徵縮到同樣尺度(標準化),否則結果失真。

③ 高維會失效:「維度詛咒」

特徵維度一高,所有點之間的距離會變得差不多,「最近的鄰居」其實也沒近多少、失去鑑別力。所以 KNN 在高維資料上效果差,通常要先降維(如 PCA)或改用別的方法。

⚖️ 六、優缺點與適用場景

✅ 直觀、不用訓練概念簡單、沒有訓練階段,很適合當基準模型。
✅ 能抓不規則邊界不假設線性,決策邊界可以很彎。
✅ 分類迴歸都行分類用投票、迴歸用平均。
⚠️ 預測慢、吃記憶體要存全部資料、每次預測都算距離。
⚠️ 怕高維與雜訊維度詛咒、對不相關特徵敏感。
👍 適合資料量不大、特徵有意義且已標準化、邊界不規則。

🧪 七、觀念自我檢測

先想再點開。

Q1. 為什麼說 KNN 是「惰性學習」?

不先建模,只把訓練資料記著;等要預測時臨時算距離找鄰居。所以訓練幾乎不花時間、預測卻很慢。

Q2. K 太小和太大各有什麼問題?

K 太小(K=1)邊界破碎、受雜訊影響大 → 過擬合;K 太大邊界過度平滑、忽略局部 → 欠擬合。用交叉驗證挑 K,二分類用奇數避免平票。

Q3. 為什麼用 KNN 前一定要標準化?

因為 KNN 靠距離找鄰居,尺度大的特徵(如年收入)會主導距離、蓋過尺度小的(如年齡)。標準化讓每個特徵公平貢獻

Q4. 什麼是「維度詛咒」?對 KNN 有何影響?

高維空間裡,點與點的距離趨於相同,「最近的鄰居」失去意義 → KNN 高維失效。常需先降維或改用其他方法。

✅ 八、30 秒重點整理

近朱者赤看最近 K 個鄰居,多數投票(分類)或平均(迴歸)。
三步驟算距離 → 找最近 K 個 → 投票/平均。
K 小過擬合、K 大欠擬合交叉驗證挑;二分類用奇數避免平票。
惰性學習不先建模,預測才算 → 訓練快、預測慢。
務必標準化距離受尺度影響,否則大尺度特徵主導。
怕高維維度詛咒使距離失效,需先降維。

📝 iPAS 考點提醒

KNN(K 近鄰)是最直覺的分類與迴歸法,iPAS 初級科目一、中級科目三考點。重點:預測時找最近的 K 個鄰居,以多數投票(分類)或平均(迴歸)決定;是惰性學習,不先建模、預測才算。易混點:K 太小易受雜訊過擬合、太大過度平滑欠擬合,用交叉驗證挑;務必先標準化(距離受尺度影響)。情境:小資料、非線性邊界,但預測慢、高維失效。

想練情境題與詳解 → AI 學習與考證地圖

❓ 常見問題

KNN 怎麼做預測?

對新樣本找訓練集中最近的 K 個鄰居,分類用多數投票、回歸用鄰居平均。它不建立模型、預測時才計算,屬「惰性學習(lazy learning)」。

K 值怎麼選、影響是什麼?

K 太小(如 1)易受雜訊影響、邊界破碎(高變異/過擬合);K 太大邊界過於平滑、可能忽略局部結構(高偏差/欠擬合)。常用交叉驗證選 K,二分類偏好奇數以避免平票。

為什麼 KNN 需要特徵標準化?

因為它靠距離(如歐氏距離)找鄰居,尺度大的特徵會主導距離計算,標準化能讓每個特徵貢獻一致。

KNN 的主要缺點?

預測時要和大量訓練樣本算距離,慢且耗記憶體;高維時受「維度詛咒」使距離失去鑑別力;對不相關特徵與雜訊敏感。

KNN 適合什麼情境?

資料量不大、特徵有意義且已標準化、決策邊界不規則時,是很好的基準法;大規模或高維資料則較不適合。

🧭 相關主題

← 返回 AI 學習與考證地圖