分類任務

評估合成資料在分類問題上的實用性。

使用範例

請點擊下方按鈕在 Colab 中執行範例:

Open In Colab

Splitter:
  external_split:
    method: custom_data
    filepath:
      ori: benchmark://adult-income_ori
      control: benchmark://adult-income_control
    schema:
      ori: benchmark://adult-income_schema
      control: benchmark://adult-income_schema
Synthesizer:
  external_data:
    method: custom_data
    filepath: benchmark://adult-income_syn
    schema: benchmark://adult-income_schema
Evaluator:
  classification_utility:
    method: mlutility
    task_type: classification
    target: income                       # 目標欄位(必要)
    experiment_design: domain_transfer   # 實驗設計(預設:domain_transfer)
    resampling: None                     # 不平衡處理(預設無,不需要時省略)
    metrics:                             # 評測指標
      - f1_score
      - roc_auc
      - pr_auc
      - mcc
    random_state: 42                     # 隨機種子(預設:42)
    xgb_params:                          # XGBoost 參數(不需要時省略)
      scale_pos_weight: 3                # 正負樣本權重比(預設:1)
      max_depth: 5                       # 樹的最大深度(預設:6)
      min_child_weight: 3                # 葉節點最小樣本權重(預設:1)
      subsample: 0.8                     # 樣本採樣比例(預設:1.0)
      colsample_bytree: 0.8              # 特徵採樣比例(預設:1.0)

任務特定參數

參數類型預設值說明
targetstring必要分類的目標變數欄位名稱
resamplingstring不平衡資料處理:省略表示不處理,或使用 smote-ennsmote-tomek
metricsarray見下方要計算的評測指標
xgb_paramsdictXGBoost 超參數(省略使用預設值)

預設指標

  • f1_scoreroc_aucaccuracy
  • precisionrecallspecificity
  • mccpr_auc
  • tptnfpfn

XGBoost 參數說明

參數預設值說明
n_estimators100提升輪數(樹的數量)
max_depth6樹的最大深度
learning_rate0.3學習率(eta)
subsample1.0訓練每棵樹的樣本採樣比例
colsample_bytree1.0訓練每棵樹的特徵採樣比例
scale_pos_weight1正樣本的權重比例(用於不平衡資料)
min_child_weight1葉節點最小樣本權重和
ℹ️
如不需要調整 XGBoost 參數,可完全省略 xgb_params 區塊,系統將使用預設值。

詳細參數說明與調校指引,請參閱 XGBoost 套件文件

支援的指標

指標說明範圍預設
f1_score精確率和召回率的調和平均0-1
roc_aucROC 曲線下面積0-1
accuracy整體正確預測0-1
precision真陽性 / (真陽性 + 偽陽性)0-1
recall真陽性 / (真陽性 + 偽陰性)0-1
specificity真陰性 / (真陰性 + 偽陽性)0-1
mccMatthews 相關係數-1 到 1
pr_aucPrecision-Recall 曲線下面積0-1
tp真陽性(計數)≥0
tn真陰性(計數)≥0
fp偽陽性(計數)≥0
fn偽陰性(計數)≥0
sensitivity同 recall0-1

關鍵指標建議

標準分類

指標說明建議標準
F1 Score精確率和召回率之間的平衡≥ 0.7
ROC AUC跨所有閾值的綜合效能≥ 0.8

不平衡分類

指標說明建議標準
PR AUC少數類別的效能(不受負例稀釋)≥ 0.3*
MCC考慮所有混淆矩陣元素的平衡測量≥ 0.5

*PR AUC 標準依不平衡比例而定:

  • 輕度不平衡(少數類別 10-20%):≥ 0.5
  • 中度不平衡(少數類別 5-10%):≥ 0.3
  • 嚴重不平衡(少數類別 <5%):≥ 0.2

處理不平衡資料

何時使用重採樣

  • 類別不平衡 > 10:1:考慮重採樣
  • 少數類別 < 10%:強烈建議
  • 少數類別 < 1%:必要

重採樣方法

SMOTE-ENN:合成少數類別樣本並積極移除雜訊,適用於資料有雜訊且邊界不清的情況。

SMOTE-Tomek:合成少數類別樣本並保守移除邊界衝突,適用於資料較乾淨但類別重疊的情況。

ℹ️
重採樣僅應用於訓練資料(ori 和 syn),絕不應用於測試資料(control)。