首頁 / 學習筆記 / 中級科目三 / 常見機器學習演算法

iPAS AI中級中級科目三⚙️ 機器學習核心
📖 學習筆記・中級科目三

CH4.2 常見機器學習演算法

常見機器學習演算法

🧭 本節架構

迴歸演算法(線性迴歸 →Lasso/Ridge正則化迴歸 → SVR → 決策樹迴歸 → 集成迴歸:隨機森林/梯度提升/XGBoost/LightGBM)→ 分類演算法(邏輯迴歸 →SVM → 決策樹 → KNN → 樸素貝氏 → 集成分類)→ 非監督式演算法(分群:K-Means/階層式/DBSCAN;降維:PCA/t-SNE/UMAP;關聯規則:Apriori/FP-Growth;異常偵測:Isolation Forest/One-Class SVM)。核心是依資料特性、規模、解釋性需求挑選合適演算法。

1. 迴歸演算法:預測連續數值

(1) 線性迴歸

\[y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_n x_n + \varepsilon\]

模型假設:線性關係、誤差常態分佈、變異數齊一性(Homoscedasticity)、誤差獨立性、無多重共線性。使用限制:對離群值敏感、無法捕捉非線性關係、多重共線性問題。

(2) Lasso 與 Ridge 迴歸(正則化迴歸)

比較項目Lasso 迴歸(L1)Ridge 迴歸(L2)
損失函數\(\sum(y_i-\hat{y}_i)^2 + \lambda\sum|\beta_j|\)\(\sum(y_i-\hat{y}_i)^2 + \lambda\sum\beta_j^2\)
對權重的效果可將部分係數縮為零 → 自動特徵選擇權重縮小但不會變零
適用情境高維資料、需特徵選擇多重共線性嚴重的情況
限制高相關變數間可能只保留一個無法自動簡化模型結構
全名由來Least Absolute Shrinkage and Selection Operator解沿「脊線(Ridge)」分佈,穩定 OLS 在共線性下的估計

(3) 支援向量迴歸(SVR)

SVR 是 SVM 的延伸,用於迴歸問題。核心概念:在誤差容忍範圍(ε-tube)內忽略誤差,只關注超出範圍的誤差:

\[\min_{w,b,\xi,\xi^*} \frac{1}{2}\|w\|^2 + C\sum_{i=1}^n(\xi_i+\xi_i^*)\]

其中 \(C\) 為懲罰參數、\(\varepsilon\) 為誤差容忍範圍;核函數(Kernel Function)可將問題延伸為非線性形式。SVR 的假設較少,不強制自變數與應變數呈線性關係,也不需誤差項服從常態分佈,對異常值有較高抵抗力,但計算成本高、參數設定複雜。

(4) 決策樹迴歸

依特徵取值不斷分割資料為子區塊,葉節點輸出該區塊樣本目標值的平均值作為預測。屬於非參數模型,不強制線性關係、常態誤差、變異數齊一或無共線性假設。缺點:容易過擬合、模型不連續(分段常數)、對資料微小變動敏感。

(5) 集成式迴歸

方法核心概念特點
隨機森林迴歸(Random Forest)建立多棵決策樹,各在隨機子樣本與隨機特徵子集上訓練,取平均為結果抗過擬合能力強、可算特徵重要性;缺點是黑箱、記憶體需求高
梯度提升迴歸(Gradient Boosting)序列式集成,逐步訓練新樹修正前一棵樹的殘差精確度通常高於隨機森林;訓練較慢、易過擬合、超參數多
XGBoost二階導數(Hessian)加速分裂、Level-wise 層級式生長支援稀疏資料與缺失值自動處理,內建 L1/L2 正則化
LightGBMLeaf-wise 葉子式生長、Histogram-based 計算大數據下速度更快,但小資料集易因 Leaf-wise 造成過擬合
⚠️ 易錯點

XGBoost 是「層級式生長(Level-wise)」,同一深度同時分裂所有葉節點;LightGBM 是「葉子式生長(Leaf-wise)」,優先分裂增益最大的葉節點,兩者生長策略方向相反,是常考的比較細節。

2. 分類演算法:預測離散類別

(1) 邏輯迴歸

\[p = \frac{1}{1+e^{-(\beta_0+\beta_1x_1+\cdots+\beta_nx_n)}}\]

雖名為「迴歸」,實際是分類演算法,尤其適合二元分類。模型假設對數勝率(Log-Odds)與特徵呈線性關係。多類別問題需擴展為 One-vs-Rest(OvR)或 Multinomial Logistic Regression。

(2) 支援向量機(SVM)

決策邊界 \(w\cdot x+b=0\),核心思想是最大化兩類別間隔(Margin)。若資料無法線性分離,可用核函數(線性核、多項式核、RBF 核、Sigmoid 核)映射到高維空間使其可分。

(3) 決策樹分類器

透過一系列「如果…那麼…」規則分割資料,常用分裂依據:

指標說明
基尼不純度(Gini Impurity)衡量節點內混雜程度,值越小代表越集中於單一類別
資訊增益(Information Gain)依熵(Entropy)變化衡量分裂後不確定性降低多少
分類誤差(Classification Error)計算節點內樣本分錯比例

(4) K 最近鄰分類(KNN)

非參數、惰性學習(Lazy Learning)演算法:不建立顯式模型,訓練階段只是儲存資料,預測時計算新樣本與所有訓練樣本的距離,取 K 個最近鄰居投票決定類別。

⚠️ 易錯點

KNN 對特徵尺度極為敏感,須先進行標準化/歸一化,否則某些特徵的影響力會被過度放大;在高維空間中會遭遇「維度詛咒」,導致「最近鄰居」概念失去意義。K 值選擇需透過交叉驗證,太小易受雜訊影響,太大則模糊類別邊界。

(5) 樸素貝氏分類(樸素貝氏)

根據貝氏定理計算樣本屬於某類別的機率,並假設特徵之間條件獨立(「樸素」的由來):

\[P(C\mid X) = \frac{P(X\mid C)\times P(C)}{P(X)}, \quad P(X\mid C)=\prod_{i=1}^n P(x_i\mid C)\]

優點:計算高效、適合文本分類(垃圾郵件過濾、情感分析)、大規模資料集。限制:獨立假設在現實中很少完全成立;「零機率」問題(訓練集中未出現的特徵值會使後驗機率為零)需用拉普拉斯平滑(Laplace Smoothing)解決;不適用於迴歸問題。

(6) 集成式分類:Bagging vs Boosting

策略核心概念重點代表演算法
Bagging(Bootstrap Aggregating)隨機抽樣多個訓練子集,建立多個獨立模型,多數決降低變異(Variance)Random Forest
Boosting逐步建立模型,每個新模型修正前一模型錯誤,加權整合降低偏差(Bias)Gradient Boosting、XGBoost、LightGBM

多類別策略:一對多(OvR)、一對一(OvO)、Softmax 機率輸出。

🎯 核心觀念

Bagging 的重點在降低變異(Variance),Boosting 的重點在降低偏差(Bias),這是集成學習策略選擇的核心邏輯,也是考試中辨別 Random Forest 與 Boosting 系列演算法本質差異的關鍵。

3. 分類/迴歸演算法快速比較表

演算法任務類型是否需特徵標準化可解釋性主要限制
線性/邏輯迴歸迴歸/分類建議高無法捕捉非線性關係
決策樹兩者皆可不需要高(單棵)易過擬合
SVM/SVR兩者皆可需要低大資料計算成本高
KNN兩者皆可需要中維度詛咒、預測慢
樸素貝氏分類不需要中特徵獨立假設
隨機森林兩者皆可不需要低(黑箱)模型體積大
XGBoost/LightGBM兩者皆可不需要低(黑箱)超參數多,調參複雜

4. 非監督式演算法

(1) 分群分析

演算法原理優點缺點
K-Means迭代分配資料點至最近質心,更新質心直到收斂簡單快速、大量資料效率高需預先指定 K 值、對初始質心與離群值敏感、只能形成球形群集
階層式分群(Hierarchical)凝聚式(由下而上合併)或分裂式(由上而下分裂),形成樹狀圖(Dendrogram)無需預先指定 K 值,可呈現多層次分群結構計算複雜度高、對離群值敏感、合併/分裂不可逆
DBSCAN基於密度(Eps 鄰域半徑、MinPts 最小點數),核心點密度可達即形成群集無需指定群數、可辨識任意形狀群集、能標記噪聲點對參數 Eps/MinPts 高度敏感、密度不均勻資料表現不佳

(2) 降維技術

方法線性/非線性特點
PCA線性找最大變異方向的正交投影,數學基礎堅實,但對離群值敏感、缺乏直觀可解釋性
t-SNE非線性專為高維資料視覺化設計,用 KL 散度優化,善於保留局部結構,但計算成本高、不適合下游建模的預處理
UMAP非線性目標與 t-SNE 類似但運行更快,能處理更大資料集,同時保留局部與全局結構
⚠️ 易錯點

t-SNE 主要用於視覺化,不適合作為下游機器學習任務的資料前處理,因為其映射是非線性且無法輕易應用到新資料;若需要可重複套用到新資料的降維前處理,應優先考慮 PCA。

(3) 關聯規則學習

以「購物籃分析」為典型應用,衡量標準:

\[\text{Support}(A\Rightarrow B) = P(A\cap B)\]
\[\text{Confidence}(A\Rightarrow B) = \frac{\text{Support}(A\cup B)}{\text{Support}(A)}\]
\[\text{Lift}(A\Rightarrow B) = \frac{\text{Confidence}(A\Rightarrow B)}{P(B)}\]

Lift > 1 表示正相關;Lift < 1 表示負相關;Lift = 1 表示獨立。

演算法原理特點
Apriori「若項集頻繁,其子集也頻繁」的性質,逐層生成候選集並剪枝概念簡單,但需多次掃描資料集,高維稀疏資料效率低
FP-Growth構建 FP 樹(Frequent Pattern Tree),無需生成候選集只需兩次掃描,效率遠高於 Apriori,但大型資料集需要較多記憶體

(4) 異常偵測

演算法原理優點缺點
Isolation Forest隨機劃分特徵空間,異常點因孤立性路徑較短效率高,適合高維與大規模資料,不需距離度量對非常接近正常群的異常值較難偵測
One-Class SVM只學習正常類別模式,構建包圍正常樣本的決策邊界可處理非線性邊界,只需正常資料訓練對參數敏感、計算成本較高

📝 章節考題自測(先作答,再點開解答)

Q1. 支援向量機(SVM)若用於迴歸問題,稱為什麼?

(A) Logistic Regression (B) Decision Tree Regression (C) Random Forest (D) Support Vector Regression

解答與解析

參考 Ans: (D) 當 SVM 應用於連續數值預測問題時,稱為支援向量迴歸(SVR),核心概念是在誤差容忍範圍(ε-tube)內忽略誤差,只關注超出範圍的誤差。

Q2. 在決策樹模型中,用於判斷分裂效果好壞的指標,常見的是下列哪一種?

(A) 機率密度函數 (B) 均方根誤差 (C) 基尼不純度(Gini Impurity) (D) 卷積核大小

解答與解析

參考 Ans: (C) 基尼不純度衡量節點內樣本的不純度,數值越低表示節點內樣本越集中於單一類別,是決策樹演算法常用的分裂判斷依據。

Q3. 下列關於 XGBoost 與 LightGBM 生長策略的敘述,何者正確?

(A) 兩者皆採用 Leaf-wise 生長 (B) XGBoost 為 Level-wise,LightGBM 為 Leaf-wise (C) XGBoost 為 Leaf-wise,LightGBM 為 Level-wise (D) 兩者皆採用 Level-wise

解答與解析

參考 Ans: (B) XGBoost 採用層級式生長(Level-wise),同一深度同時分裂所有葉節點;LightGBM 採用葉子式生長(Leaf-wise),優先分裂能帶來最大增益的葉節點,因此樹會垂直生長,形成更深但不均勻的樹結構。

Q4. Bagging 與 Boosting 集成策略的核心差異為何?

(A) Bagging 降低偏差、Boosting 降低變異 (B) Bagging 降低變異、Boosting 降低偏差 (C) 兩者皆降低偏差 (D) 兩者皆降低變異

解答與解析

參考 Ans: (B) Bagging(如 Random Forest)透過隨機抽樣建立多個獨立模型降低變異;Boosting(如 Gradient Boosting、XGBoost)透過逐步修正前一模型錯誤來降低偏差,兩者策略方向不同。

Q5. K-Means 聚類演算法中,K 代表什麼?

(A) 數據集中特徵的數量 (B) 數據集中樣本的數量 (C) 所需劃分的群組數量 (D) 迭代次數

解答與解析

參考 Ans: (C) K 在 K-Means 中代表希望將資料分為幾個群組,K 值選擇直接影響最終聚類結果,是重要的超參數,需預先指定。

Q6. 承上題,若不希望預先指定群集數量,且需辨識任意形狀的群集並自動標記噪聲點,較適合採用下列哪一種演算法?

(A) K-Means (B) DBSCAN (C) 線性迴歸 (D) 樸素貝氏

解答與解析

參考 Ans: (B) DBSCAN 基於密度分群,無需預先指定群集數量,能辨識任意形狀的群集並自動標記噪聲點(離群值),這是 K-Means 無法做到的。

Q7. 在關聯規則學習中,若規則 A⇒B 的 Support(A)=0.4,Support(A∪B)=0.2,請計算此規則的信賴度(Confidence)。

(A) 0.2 (B) 0.4 (C) 0.5 (D) 0.8

解答與解析

參考 Ans: (C) \(\text{Confidence}(A\Rightarrow B) = \dfrac{\text{Support}(A\cup B)}{\text{Support}(A)} = \dfrac{0.2}{0.4} = 0.5\)。信賴度衡量在包含 A 的交易中,同時也包含 B 的條件機率,數值越高代表規則可靠性越高。

Q8. 承上題,若 P(B)=0.5,此規則的提升度(Lift)為多少?此規則屬於正相關或負相關?

(A) Lift=1.0,獨立 (B) Lift=1.25,正相關 (C) Lift=0.5,負相關 (D) Lift=2.0,正相關

解答與解析

參考 Ans: (A) \(\text{Lift}(A\Rightarrow B) = \dfrac{\text{Confidence}(A\Rightarrow B)}{P(B)} = \dfrac{0.5}{0.5} = 1.0\)。Lift=1 表示 A 與 B 相互獨立,A 的出現對 B 的出現機率沒有影響。

Q9. 下列何者最適合用於高維資料的視覺化,但不適合作為下游機器學習任務的資料前處理?

(A) PCA (B) t-SNE (C) Label Encoding (D) One-hot Encoding

解答與解析

參考 Ans: (B) t-SNE 專為高維資料視覺化設計,映射是非線性的,無法輕易應用到新資料,因此不適合作為下游建模的通用降維前處理;PCA 則因為是線性且可重複套用,較適合作為前處理。

Q10. KNN 演算法在高維度資料上表現不佳的主要原因稱為?

(A) 過擬合 (B) 維度詛咒(Curse of Dimensionality) (C) 梯度消失 (D) 模式崩潰

解答與解析

參考 Ans: (B) 隨著特徵維度增加,資料點之間的距離會變得均勻(維度詛咒),導致「最近鄰居」的概念失去意義,使 KNN 的效能急劇下降,這是距離式模型在高維空間的共同挑戰。