聊天視窗

數據洞見:從原始數據到決策智慧 - 第 4 章

第四章:機器學習基礎

發布於 2026-03-05 22:53

# 第四章:機器學習基礎 > 本章將帶您從 EDA 走向 **模型訓練**:探索監督式與非監督式學習方法,並學習如何選擇合適的模型與評估指標。 --- ## 4.1 機器學習的全景圖 機器學習(Machine Learning, ML)是讓電腦在沒有明確程式指令下,自行從資料中學習規律並做出預測或決策的技術。它可分為三大類型: 1. **監督式學習(Supervised Learning)**:輸入(特徵)與輸出(標籤)都已知,目標是預測或分類。 2. **非監督式學習(Unsupervised Learning)**:只有輸入特徵,目標是發現資料的內在結構或群集。 3. **強化學習(Reinforcement Learning)**:代理在環境中採取行動並獲得回報,學習最優策略。 > 本書在此章節聚焦於前兩者,因其在商業、金融、行銷等實務場景中使用最為廣泛。 ## 4.2 監督式學習的核心流程 監督式學習的基本流程可簡化為四步: 1. **問題定義** – 明確預測目標(回歸 vs 分類)與商業價值。 2. **資料預處理** – 轉換特徵、處理缺失值、標準化/正規化。 3. **模型選擇與訓練** – 根據問題性質挑選算法,並進行交叉驗證。 4. **評估與部署** – 以指標衡量性能,將模型推向實際環境。 ### 4.2.1 回歸 vs 分類 | 類型 | 目標 | 常見指標 | |------|------|----------| | 回歸 | 預測連續數值 | MSE、RMSE、MAE、R² | | 分類 | 預測離散類別 | 準確率、召回率、F1、AUC-ROC | > 例如:預測房價(回歸) vs 判斷客戶是否流失(分類)。 ### 4.2.2 特徵工程快速入門 | 步驟 | 目的 | 工具範例 | |------|------|----------| | 編碼 | 將類別轉為數值 | One‑Hot、Label Encoding | | 標準化 | 調整量級差異 | StandardScaler、MinMaxScaler | | 多項式 | 捕捉非線性關係 | PolynomialFeatures | | 選擇 | 降低維度,防止過擬合 | SelectKBest、L1 正則化 | > **實務提醒**:使用 `ColumnTransformer` 可同時對數值與類別特徵執行不同轉換,保持流程乾淨。 ### 4.2.3 常見監督式模型 | 類型 | 算法 | 典型場景 | |------|------|----------| | 線性回歸 | LinearRegression、Ridge、Lasso | 需求預測、價格建模 | | 決策樹 | DecisionTreeRegressor / Classifier | 易於解釋,非線性關係 | | 隨機森林 | RandomForestRegressor / Classifier | 抗噪聲、特徵重要性 | | XGBoost / LightGBM | Gradient Boosting | 大規模表格資料、競賽 | | 支援向量機 | SVR / SVC | 高維、小樣本 | | 神經網路 | MLPRegressor / MLPClassifier | 非線性複雜關係 | > **選擇策略**:先從簡單模型做基準,再逐步嘗試複雜模型,避免過擬合。 ## 4.3 非監督式學習:探索資料的無名寶藏 非監督式學習主要解決兩類問題: 1. **聚類(Clustering)**:將資料分組,群集內相似度高,群集間差異大。 2. **降維(Dimensionality Reduction)**:將高維資料投影到低維空間,保留主要資訊。 ### 4.3.1 聚類算法概覽 | 算法 | 特點 | 適用場景 | |------|------|----------| | K‑Means | 快速、易實現 | 大規模數據、數值特徵 | | 層次聚類 | 無需指定 K | 較小資料集、探索性 | | DBSCAN | 能處理噪聲 | 密度分佈不均、異常檢測 | | Gaussian Mixture | 機率模型 | 混合分佈、軟分配 | > **實務技巧**:使用肘部法、輪廓係數確定最佳 K 值。 ### 4.3.2 降維方法 | 方法 | 原理 | 典型工具 | |------|------|----------| | 主成份分析(PCA) | 線性投影,最大方差 | sklearn.decomposition.PCA | | t‑SNE | 非線性,保留局部結構 | sklearn.manifold.TSNE | | UMAP | 高效維度縮減,保留全局 | umap-learn | > **案例**:利用 PCA 於客戶交易資料中提取 5 個主成份,作為後續聚類或預測的特徵。 ## 4.4 評估指標與交叉驗證 ### 4.4.1 交叉驗證(Cross‑Validation) - **k‑Fold**:將資料分為 k 組,交替作為驗證集。 - **Stratified k‑Fold**:保持類別比例,適用於不平衡分類。 - **TimeSeriesSplit**:保留時間順序,適用時序資料。 > **注意**:若資料存在時間依賴,切勿使用隨機拆分,以避免資訊泄露。 ### 4.4.2 評估指標詳細說明 | 指標 | 何時使用 | 公式 | |------|----------|------| | 準確率 | 分類 | (TP+TN)/Total | | 精確率 | 需要避免假陽性 | TP/(TP+FP) | | 召回率 | 需要避免假陰性 | TP/(TP+FN) | | F1 | 平衡精確率與召回率 | 2*(P*R)/(P+R) | | AUC‑ROC | 分類器的區分能力 | | MSE | 回歸 | (1/n)∑(y‑ŷ)² | | MAE | 回歸 | (1/n)∑|y‑ŷ| | | R² | 回歸 | 1-SS_res/SS_tot | > **實務建議**:在不平衡資料集中,AUC‑ROC、F1 更能真實反映模型效能。 ## 4.5 參數調優與模型選擇 ### 4.5.1 超參數搜尋 - **網格搜尋(Grid Search)**:遍歷所有組合,適合參數範圍小。 - **隨機搜尋(Random Search)**:隨機採樣,能在較大空間中尋得良好方案。 - **Bayesian Optimisation**:利用貝式推論提升搜尋效率。 > **實務技巧**:結合 `Pipeline` 及 `GridSearchCV`,確保預處理不被數據泄漏。 ### 4.5.2 過擬合與欠擬合 | 觀察 | 說明 | 解決方案 | |------|------|----------| | 訓練準確高,驗證低 | 過擬合 | 增加正則化、降低模型複雜度、使用 Dropout | | 訓練低 | 欠擬合 | 擴充特徵、使用更複雜模型、減少正則化 | > **正則化**:L1(Lasso)可做特徵選擇,L2(Ridge)可穩定回歸係數。 ## 4.6 實戰案例:客戶流失預測 ### 4.6.1 問題說明 - **目標**:預測客戶在接下來 90 天內是否會流失(二元分類)。 - **資料**: - 客戶基本資料(年齡、性別、地區) - 交易行為(月消費、購買頻率、停用紀錄) - 客戶服務互動(投訴次數、客服通話時間) ### 4.6.2 步驟概覽 1. **資料探索**:發現 `churn` 為 15% 的不平衡。 2. **特徵處理**: - One‑Hot 編碼 `gender`、`region`。 - 標準化數值特徵。 - 使用 `SMOTE` 做過採樣。 3. **模型實驗**: - 基準:Logistic Regression。 - 高階:RandomForest、XGBoost。 4. **評估**: - 交叉驗證 5‑Fold,計算 AUC、F1。 - 觀察混淆矩陣,調整 `class_weight`。 5. **部署**: - 將最佳模型封裝成 API(Flask)並放入 Docker。 - 在 CI/CD 流程中加入單元測試。 > **結果**:XGBoost 在 AUC 上達到 0.84,顯著優於基準模型。 ## 4.7 綜合小結 1. **從 EDA 到模型**:良好的探索性分析能減少資料前處理時間,並為模型選擇提供方向。 2. **算法與評估指標**:選擇合適的模型和指標是成功關鍵,特別是在不平衡、時序資料中。 3. **流程化與自動化**:使用 Pipeline、CV、超參數搜尋,能確保模型在多次迭代中保持一致性與可重複性。 4. **部署與維護**:模型不只是數學公式,還需考量監控、漂移檢測與持續學習。 --- > **下章節預告**:第五章將帶您進入 **模型部署與運營**,涵蓋 MLOps 基礎、容器化、CI/CD 與模型監控,確保模型在實務環境中穩健運行。