
監督學習-分類模型評估-乳腺癌診斷數據為例
分類任務不只是選擇演算法。本篇透過乳腺癌診斷資料集,深入解析為什麼 Accuracy 會騙人、如何利用 L1/L2 正則化對抗過擬合,並透過 GridSearchCV 自動化尋找最佳模型參數。
WRITTEN BY

- Name
- Harry Chang
在 Day 01 中,我們學會了如何在地圖上選擇分類器。但實戰中,選好武器只是開始。今天我們將透過 乳腺癌診斷資料集 (Breast Cancer Wisconsin),學習如何將一個普通的分類器,修煉成一個專業、強健的判斷引擎。
一、 資料集來源:Breast Cancer Wisconsin
- 資料來源:UCI Machine Learning Repository / Scikit-Learn 內建資料集。
- 備註:這是機器學習領域最經典的二元分類資料集之一,用於透過細胞核特徵預測腫瘤是良性 (Benign) 還是惡性 (Malignant)。
資料集特色與欄位介紹:
這是一個純數值的 二元分類問題 (Binary Classification)。資料集包含 30 個特徵,這些特徵是從乳房腫塊細針抽吸術 (FNA) 的數位影像中計算出來的。
欄位說明:
- Target (目標 y):診斷結果 (0=Malignant 惡性, 1=Benign 良性)。
- 特徵 (Features):共 30 個,主要包含 10 個核心特徵的「平均值 (Mean)」、「標準差 (Standard Error)」與「最差值 (Worst)」:
- Radius:半徑(從中心到邊界點的平均距離)。
- Texture:紋理(灰度值的標準差)。
- Perimeter:周長。
- Area:面積。
- Smoothness:平滑度(局部長度變化的程度)。
- Compactness:緊湊度(周長的平方 / 面積 - 1.0)。
- Concavity:凹陷度(輪廓凹陷部分的嚴重程度)。
- Concave points:凹點數(輪廓凹陷部分的數量)。
- Symmetry:對稱性。
- Fractal dimension:分形維度。
二、 模型評估
在我們的實測案例中,測試集共有 114 人,其中 71 人為良性(健康)、43 人為惡性(患病)。如果模型投機取巧地「預測所有人都是健康」,雖然準確率仍有 62.3%,但它卻會漏掉所有 43 個真正的病人,後果不堪設想。這就是為什麼我們需要更深層的指標。
我們以 Logistic Regression (邏輯回歸) 作為基礎模型進行訓練,並得到以下實測結果:
關鍵指標對比:
| 指標 | 定義 | 醫療場景意義 | 實測數據說明 (對照上方圖表) |
|---|---|---|---|
| Accuracy (準確率) | 猜對的總數 / 樣本總數 | 整體表現。 | 99.1% (113/114):雖然很高,但在醫療場景仍需搭配其他指標。 |
| Precision (精確率) | 預測惡性中,真的惡性的比例 | 型一錯誤 (Type I):減少誤診。 | 100% (42/42):模型非常謹慎,沒有把任何健康者誤判為惡性。 |
| Recall (召回率) | 真的惡性中,被預測出來的比例 | 型二錯誤 (Type II):避免漏診。 | 97.7% (42/43):有一個惡性案例被漏掉了(圖片右上角的 1)。 |
| F1-Score (F1 分數) | Precision 與 Recall 的調和平均 | 平衡指標:綜合評估模型的穩定度。 | 98.8%:綜合性能非常強健,適合用於類別不平衡的場景。 |
| PR 曲線 | Precision 與 Recall 的關係 | 尋找平衡點。 | AP = 1.00:平均精確率完美。 |


三、 指標的博弈:F1-Score 與 Sweet Spot
在分類任務中,Precision 與 Recall 往往是一對「競爭對手」。
- 當我們提高判斷門檻 (Threshold),Precision 會升高,但會漏掉一些病人 (Recall 下降)。
- 當我們降低判斷門檻,Recall 會升高,但會造成過多假警報 (Precision 下降)。
這就是為什麼我們需要 F1-Score。它的公式是兩者的「調和平均」,能防止其中一個指標極低時造成數值虛高。
視覺化診斷:尋找 Sweet Spot
下圖展示了在不同門檻值下,指標的變化趨勢:

- 紅色曲線 (F1-Score):你可以看到它在中間某個點達到最高峰。這就是模型的 Sweet Spot —— 在不造成過多誤判的前提下,盡可能地抓出所有的病灶。
- 建議:如果你的資料集類別極度不平衡,F1-Score 比 Accuracy 更能反映模型的真實實力。
四、 指標是模型的靈魂
透過乳腺癌這個資料集,我們學到了一件最重要的事:模型評價不能只看一個數字。
- Accuracy (準確率) 初步判斷成績。
- Recall (召回率) 是給醫生看的防線(防止漏診)。
- Precision (精確率) 是給資源管理者看的(防止浪費)。
- F1-Score (F1 分數) 綜合性能指標。
在第一站,我們學會了如何「衡量」一個模型。但如果我們發現模型在測試集表現很好,在真實世界卻大翻車(過擬合)時該怎麼辦?
下一站,我們將透過一個經典的「正弦波」實驗,深入探討機器學習的靈魂矛盾:過擬合 (Overfitting) 與 欠擬合 (Underfitting),並學會如何找到模型最完美的平衡點。
五、 行動建議
- 定義你的關鍵錯誤:在動手寫 Code 前,先問自己:型一錯誤(誤報)還是型二錯誤(漏報)對我的業務更致命?
- 永遠畫出混淆矩陣:它是所有分類問題的起點,能讓你一眼看出模型在哪裡跌倒。
- 監控 AP 值:在處理類別不平衡的資料時,PR 曲線下的 AP 值比 Accuracy 更能反映模型的真實實力。