一句話說明
監督式學習(Supervised Learning)是一種讓 AI 從「有正確答案的範例」中學習規律的方法,是目前最常見也最實用的機器學習類型。
核心概念:看範例學規律
想像你在教一個小孩辨認水果。你拿出一顆蘋果說「這是蘋果」,拿出一根香蕉說「這是香蕉」,反覆幾十次之後,小孩就能自己辨認沒看過的蘋果和香蕉了。
監督式學習做的就是這件事。你提供一大堆「輸入加正確答案」的配對(這些正確答案就是「標註」或「標籤」),讓模型找出輸入和答案之間的規律。學完之後,模型就能對新的、沒看過的輸入做出預測。
「監督」這個詞的意思就是:學習過程中有「老師」在旁邊告訴你正確答案。
兩種主要任務
監督式學習處理兩大類問題:
分類(Classification):預測輸入屬於哪個類別。
這封信是垃圾郵件還是正常郵件?(二元分類)這張圖是貓、狗、還是鳥?(多類別分類)這筆信用卡交易是正常還是盜刷?(異常偵測也常用分類處理)這個客戶會不會在下個月取消訂閱?(流失預測)
迴歸(Regression):預測一個連續的數值。
這間房子的市場價格是多少?明天的氣溫是幾度?這個客戶下個月的消費金額大約是多少?這支股票明天的收盤價可能是多少?
差別在於:分類的答案是離散的類別(A、B、C),迴歸的答案是連續的數字(25.3、100000)。判斷方法很簡單——如果你要預測的目標是「哪一種」,就是分類;如果是「多少」,就是迴歸。
訓練流程
監督式學習的訓練流程可以拆成五步:
第一步:準備資料。收集大量的「輸入-答案」配對。例如 10 萬封已經標記為「垃圾」或「正常」的電子郵件。資料品質在這個階段就決定了模型的上限——如果標註不準確,後面怎麼調都救不回來。
第二步:特徵工程(Feature Engineering)。把原始資料轉換成模型能理解的數值形式。例如一封 email 的原始文字需要轉成數值向量。常見的特徵工程方法包含:數值標準化(把不同範圍的數值縮放到同一個區間)、類別編碼(把「男/女」轉成 0/1)、文字向量化(TF-IDF、Word2Vec)、時間特徵提取(從日期提取出星期幾、月份、是否假日)。特徵工程的品質直接影響模型表現。在深度學習出現之前,特徵工程是機器學習最花時間的部分。
第三步:拆分資料集。通常把資料拆成三份——訓練集(60-70%)、驗證集(10-20%)和測試集(20%)。訓練集用來學習,驗證集用來在訓練過程中調整超參數和監控是否過擬合,測試集留到最後才用,用來評估模型在沒見過的資料上表現如何。很多初學者犯的錯誤是只拆兩份(訓練和測試),然後用測試集來調參數——這會導致對測試集過擬合,模型在真實世界的表現會比你預期的差。
另一種更嚴謹的做法是交叉驗證(Cross-Validation)。最常用的是 k-fold 交叉驗證:把資料分成 k 份(通常 5 或 10),每次用其中 1 份當驗證集、其他 k-1 份當訓練集,重複 k 次,最後取平均結果。這讓每一筆資料都被驗證過,結果更可靠,但訓練時間也是 k 倍。
第四步:訓練模型。模型看訓練資料,做出預測,然後和正確答案比較。差距越大,模型調整的幅度越大。這個過程重複幾千到幾百萬次。每一次調整的幅度由學習率(Learning Rate)控制——學習率太大,模型震盪不收斂;太小,訓練太慢可能卡在局部最優解。
第五步:評估模型。用測試集評估模型的表現。如果模型在訓練集上表現很好但測試集上很差,代表過擬合(Overfitting)——模型背了答案但沒學會規律。如果訓練集和測試集的表現都不好,代表欠擬合(Underfitting)——模型太簡單,學不到資料中的規律。
評估指標
訓練完模型之後,怎麼知道它好不好?不同任務有不同的評估指標:
分類任務的常見指標:
準確率(Accuracy):預測對的比例。如果有 100 筆資料,模型猜對 90 筆,準確率就是 90%。但準確率在資料不平衡時會誤導你。例如詐騙偵測中 99% 是正常交易、1% 是詐騙,一個什麼都不做、永遠猜「正常」的模型準確率就有 99%。
精確率(Precision):模型說「是」的預測中,真正是的比例。如果模型說 10 筆是詐騙,其中 8 筆真的是詐騙,精確率就是 80%。精確率高代表「模型說是的東西通常真的是」。
召回率(Recall):所有實際是的案例中,模型找到了多少。如果實際有 20 筆詐騙,模型找到 8 筆,召回率就是 40%。召回率高代表「模型不容易漏掉」。
F1 Score:精確率和召回率的調和平均數。當你需要在精確率和召回率之間找平衡時使用。F1 = 2 × (Precision × Recall) / (Precision + Recall)。
AUC-ROC:ROC 曲線下面積。AUC 值介於 0 到 1 之間,0.5 代表隨機猜,1.0 代表預測完美。AUC 的優勢是不受分類門檻(threshold)影響,適合比較不同模型的整體判別能力。
迴歸任務的常見指標:
MAE(Mean Absolute Error):預測值和實際值的平均差距。直觀易懂——MAE 是 5 萬元代表平均偏差 5 萬。
RMSE(Root Mean Squared Error):對大的偏差懲罰更重。如果模型偶爾出現很離譜的預測,RMSE 會比 MAE 高出很多,提醒你注意極端情況。
R-squared(決定係數):模型解釋了多少比例的變異。R² = 0.8 代表模型解釋了 80% 的資料變異,還有 20% 是模型無法解釋的。
一個實際的例子:你在做信用卡詐騙偵測。如果漏掉一筆真正的詐騙(假陰性),銀行可能損失幾萬元。如果把正常交易誤判為詐騙(假陽性),客戶只是被暫時擋住交易。在這個場景下,召回率比精確率重要——寧可多擋幾筆正常交易,也不要漏掉真正的詐騙。
常見演算法比較
| 演算法 | 類型 | 適用場景 | 優點 | 缺點 | 適合的資料量 |
|---|---|---|---|---|---|
| 線性迴歸 | 迴歸 | 簡單預測、特徵和目標近似線性關係 | 簡單、快速、可解釋 | 無法捕捉非線性關係 | 少量到中等 |
| 邏輯迴歸 | 分類 | 二元分類、基準模型 | 簡單、快速、機率輸出 | 無法捕捉複雜邊界 | 少量到中等 |
| 決策樹 | 兩者 | 需要可解釋性的場景 | 直觀、可視化、不需特徵縮放 | 容易過擬合 | 中等 |
| 隨機森林 | 兩者 | 表格資料、特徵重要性分析 | 準確、穩健、不易過擬合 | 訓練慢、模型大 | 中等到大量 |
| XGBoost/LightGBM | 兩者 | 結構化資料的競賽和生產環境 | 準確度高、速度快 | 需要調參、不直觀 | 中等到大量 |
| SVM | 分類 | 高維度、小資料集 | 在高維度表現好 | 大資料集訓練慢 | 少量到中等 |
| 神經網路 | 兩者 | 圖片、文字、語音等非結構化資料 | 能學複雜模式 | 需要大量資料和算力 | 大量 |
各演算法的進一步說明:
線性迴歸(Linear Regression)是最簡單的迴歸演算法,假設輸入和輸出之間是線性關係。它的數學公式就是 y = ax + b 的多維版本。簡單預測問題和初步探索資料時的好起點。
邏輯迴歸(Logistic Regression)名字裡有「迴歸」,但其實是分類演算法。它用 Sigmoid 函數把線性迴歸的輸出壓縮到 0 和 1 之間,代表某個類別的機率。常用於二元分類,例如判斷是否違約。因為輸出是機率,可解釋性好——你能知道模型有多「確定」。
決策樹(Decision Tree)像流程圖一樣,用一連串的是非題把資料分類。例如「年收入大於 50 萬?是→繼續看年齡,否→判斷為低信用」。容易理解和解釋,但單棵樹的效果有限,而且很容易過擬合——如果讓樹長到很深,它會把訓練資料背下來。
隨機森林(Random Forest)建立很多棵決策樹(通常 100 到 1000 棵),每棵樹只看部分資料和部分特徵,最後讓它們投票決定結果。比單棵決策樹準確得多,也不容易過擬合,是表格式資料上最常用的演算法之一。
梯度提升(Gradient Boosting)和隨機森林不同的地方在於,它的樹是序列建立的——每棵新的樹專門修正前面所有樹犯的錯誤。XGBoost、LightGBM 和 CatBoost 是三個主要的梯度提升實作。XGBoost 在 Kaggle 競賽中非常流行,LightGBM 在大資料集上訓練速度更快,CatBoost 對類別特徵(如地區、職業)的處理更方便。在結構化資料(表格資料)的分類和迴歸任務上,梯度提升通常是表現最好的傳統機器學習演算法。
支援向量機(Support Vector Machine,SVM)的概念是在資料之間找到一個最佳的「分隔邊界」。在二維空間中是一條線,三維空間中是一個平面,更高維度中是一個超平面。SVM 用核函數(Kernel)技巧把資料映射到更高維度的空間,讓原本線性不可分的資料變得可分。SVM 在小資料集和高維度資料上表現好,但在大資料集上訓練時間很長(計算複雜度大約是 O(n²) 到 O(n³))。
神經網路(Neural Network)模仿生物神經元的連接方式,能學習非常複雜的規律。深度學習就是使用很多層的神經網路。圖片辨識、語音辨識、自然語言處理的突破都來自深層神經網路。但神經網路是「大胃王」——需要大量資料和大量算力才能訓練好,且模型內部是黑盒子,難以解釋為什麼做出某個預測。
特徵工程
特徵工程是把原始資料轉換成模型能有效學習的形式。在深度學習普及之前,這是機器學習中最花時間也最需要領域知識的步驟。即使在深度學習時代,好的特徵工程仍然能大幅提升表格資料任務的表現。
常見的特徵工程方法:
數值特徵處理。標準化(Standardization)把特徵的均值調成 0、標準差調成 1。正規化(Normalization)把特徵值縮放到 0 到 1 之間。對數變換(Log Transform)把右偏的分布(例如收入、房價)變得更對稱。對 SVM 和邏輯迴歸這類對特徵尺度敏感的演算法,特徵縮放特別重要。決策樹和隨機森林不受特徵尺度影響,可以跳過這步。
類別特徵處理。One-Hot Encoding 把類別變成多個 0/1 欄位(例如「縣市」變成「是否台北」「是否台中」等欄位)。Label Encoding 把類別映射成數字(但暗示了不存在的順序關係,要小心使用)。Target Encoding 用每個類別對應的目標平均值來取代類別(例如把「台北」替換成台北的平均房價),效果好但有過擬合風險。
衍生特徵。從現有特徵組合或計算出新特徵。例如從「出生年月日」計算「年齡」、從「購買金額」和「購買次數」計算「平均客單價」、從「註冊日期」和「最後登入日期」計算「帳號閒置天數」。好的衍生特徵可能比換演算法的效果還大。
特徵選擇。太多特徵不一定好。不相關的特徵會增加雜訊和訓練時間。常用的方法有:相關係數篩選(和目標相關性太低的特徵移除)、特徵重要性排序(用隨機森林的 feature importance 來挑選重要特徵)、遞迴特徵消除(RFE,逐步移除最不重要的特徵直到表現不再提升)。
處理資料不平衡
在很多真實場景中,正反類別的比例差異很大:詐騙偵測中正常交易佔 99% 以上、製造業中良品佔 99%、罕見疾病診斷中健康個體佔絕大多數。這種資料不平衡會導致模型偏向預測多數類別——永遠猜「正常」就能有 99% 準確率,但這樣的模型毫無用處。
常見的處理方法:
過採樣(Oversampling):增加少數類別的樣本。SMOTE(Synthetic Minority Over-sampling Technique)是最常用的方法——它不是簡單複製少數類別的樣本,而是在少數類別的樣本之間「插值」,生成新的合成樣本。效果比單純複製好,但可能在少數類別的邊界上產生雜訊。
欠採樣(Undersampling):減少多數類別的樣本。簡單有效,但會丟失多數類別的資訊。Random Undersampling 隨機移除多數類別樣本。Tomek Links 移除靠近分類邊界的多數類別樣本,讓邊界更清晰。
類別權重(Class Weights):不改變資料本身,而是讓模型在訓練時對少數類別的錯誤給更高的懲罰。大部分的演算法都支援 class_weight 參數,設成 "balanced" 就會自動根據類別比例調整。這是最簡單的方法,通常可以作為第一個嘗試。
實務上的建議:先試 class_weight="balanced"(最簡單),效果不好再試 SMOTE,還不行再考慮組合方法(先 SMOTE 再 Tomek Links 清理邊界)。不要只看準確率——用 F1 Score 或 AUC-ROC 來評估不平衡資料的模型。
常見錯誤
資料洩漏(Data Leakage)是監督式學習中最常見也最危險的錯誤。資料洩漏是指訓練過程中意外使用了測試時不應該知道的資訊,導致模型在測試中表現很好,但在真實世界中表現很差。
常見的洩漏情境:
用未來的資料預測過去。例如用 12 月的銷售額特徵來預測 11 月的銷售量——在實際預測時你不會有未來的資料。
在拆分資料前做特徵工程。例如用整份資料(包含測試集)計算標準化的均值和標準差。正確做法是只用訓練集計算均值和標準差,然後用這些值去轉換測試集。
目標欄位的衍生特徵。例如用「是否有退貨紀錄」來預測「是否為詐騙訂單」——在實際應用中,你在下單時還不知道會不會退貨。
其他常見錯誤:
沒有打亂資料。如果資料是按時間或類別排序的,拆分後的訓練集和測試集分布可能不一致。在拆分前先隨機打亂資料。但時間序列資料例外——時間序列不能打亂,必須用時間順序拆分,否則就是用未來預測過去。
用測試集調參數。測試集應該只在最後評估一次。如果你用測試集的結果來調整超參數,等於把測試集當成訓練資料的一部分了。正確做法是用驗證集(或交叉驗證)來調參數。
忽略類別不平衡。用準確率來評估不平衡資料集的模型會得到誤導的高分。改用 F1、AUC-ROC 或 Precision-Recall 曲線。
過度調參。花太多時間微調超參數,得到的改善可能只有 0.1%,不如把時間花在特徵工程或收集更多資料上。
標註資料的成本
監督式學習最大的瓶頸是:需要大量標註過的資料。
簡單的標註(這封信是不是垃圾郵件)成本低,非專業人員就能做。外包給標註平台(如 Amazon Mechanical Turk、Scale AI、Labelbox),每筆大約 0.01 到 0.1 美元。1 萬筆簡單標註的成本大約在 100 到 1,000 美元。
專業的標註(這張 X 光片是否有腫瘤)需要領域專家,成本高昂。一張醫療影像的標註成本可能是幾十到幾百元台幣。如果需要幾萬張,成本就非常可觀。法律文件的標註需要律師、程式碼的品質標註需要資深工程師,這些都是高成本的專業標註。
標註品質直接影響模型品質。不同標註者對同一筆資料的判斷可能不一致(inter-annotator agreement),需要多人標註和品質審核機制。常見做法是每筆資料由 3 人標註,取多數決,一致率低於某個門檻的資料交由專家覆審。
降低標註成本的策略:
主動學習(Active Learning):讓模型自己挑選「最有價值」的資料來標註。模型對不確定的資料請人類標註,對有信心的資料自動標註。可以用 20-30% 的標註量達到全部標註 80-90% 的效果。
弱監督(Weak Supervision):用規則、啟發式或 LLM 來自動產生大量品質不高但數量多的標註。例如用 GPT-4 來標記情感分析的訓練資料。缺點是標註品質不如專家,且可能引入 AI 本身的偏見。Snorkel 是一個專門做弱監督的框架。
資料增強(Data Augmentation):對已有的標註資料做變換來產生更多訓練資料。圖片可以旋轉、翻轉、裁切;文字可以做同義詞替換、回翻譯(中文翻英文再翻回中文)。
工具與框架比較
| 工具 | 語言 | 適合場景 | 優點 | 缺點 | 費用 |
|---|---|---|---|---|---|
| scikit-learn | Python | 傳統 ML、原型開發 | API 統一、文件好、生態豐富 | 不支援 GPU、大資料慢 | 免費 |
| XGBoost | Python/R/Java | 表格資料、生產環境 | 準確度高、速度快 | 需要調參經驗 | 免費 |
| LightGBM | Python/R/C++ | 大資料集、高效訓練 | 記憶體效率高、訓練快 | 小資料集可能過擬合 | 免費 |
| CatBoost | Python/R | 含類別特徵的資料 | 類別特徵處理好、不易過擬合 | 社群較小 | 免費 |
| AutoML (Google) | Python | 自動化模型選擇和調參 | 不需要 ML 專業知識 | 成本較高、黑盒 | 按用量計費 |
| Azure AutoML | Python | 企業整合 | 與 Azure 生態整合好 | 成本較高 | 按用量計費 |
| H2O AutoML | Python/R/Java | 自動化 ML | 開源版免費、速度快 | 進階功能需付費版 | 開源版免費 |
| Amazon SageMaker | Python | AWS 生態整合 | AutoPilot 自動化、彈性算力 | 成本結構複雜 | 按用量計費 |
對於剛開始接觸監督式學習的人,建議從 scikit-learn 入門。它的 API 設計非常統一——所有演算法都用 fit() 訓練、predict() 預測、score() 評估。學會用 scikit-learn 後,轉到 XGBoost 或 LightGBM 只需要改幾行程式碼。
如果完全不想寫程式碼,Google AutoML、Azure AutoML 和 Amazon SageMaker AutoPilot 都提供拖拉式的介面。上傳 CSV 檔案,選擇要預測的欄位,系統自動完成特徵工程、模型選擇、超參數調優。費用依用量而定——Google AutoML Tables 的訓練費用大約每小時 19.32 美元,部署後每預測 1000 筆約 0.05 到 1.8 美元不等。
和其他學習方式的比較
非監督式學習(Unsupervised Learning):沒有正確答案,模型自己發現資料中的結構和規律。常見任務包括分群(Clustering,例如把客戶分成不同族群)和降維(Dimensionality Reduction,例如 PCA 把高維資料壓縮到可視化的 2-3 維)。應用場景:客戶分群(不知道有幾種客戶,讓模型自己分)、異常偵測(找出和大多數資料明顯不同的點)、資料探索(了解資料的結構)。
強化學習(Reinforcement Learning):透過和環境互動,根據獎勵訊號學習最佳策略。例如 AlphaGo 透過下棋的勝負回饋學會圍棋。和監督式學習的差異是:監督式學習每一步都有正確答案,強化學習只有在一連串動作之後才得到回饋。適合序列決策問題——遊戲 AI、機器人控制、推薦系統的排序。
自監督式學習(Self-supervised Learning):把未標註資料轉換成監督式學習的形式。例如 GPT 的預訓練是「給前面的文字,預測下一個詞」——答案從資料本身就能得到,不需要人工標註。BERT 的預訓練是把一些詞遮住,讓模型猜被遮住的詞。自監督式學習是目前大型語言模型和基礎模型(Foundation Model)的核心訓練方式。
遷移學習(Transfer Learning)和監督式學習的關係:遷移學習是把在一個任務上學到的知識轉移到另一個任務上。例如用 ImageNet 上預訓練的圖片辨識模型,微調後用來辨識醫療影像。預訓練階段通常用自監督式學習(大量無標註資料),微調階段用監督式學習(少量標註資料)。這個「預訓練加微調」的範式讓小團隊也能用少量標註資料做出好的模型。
安全與限制
訓練資料的偏見會被學進模型。如果訓練資料中某個族群的信用紀錄較少,模型對該族群的判斷就會比較不準。這在信用評分和履歷篩選等高風險場景中尤其需要注意。Amazon 在 2018 年就因為 AI 招聘工具偏見(從歷史資料學到偏好男性求職者)而放棄了該工具。
標註錯誤會誤導模型。大規模資料集中,一定比例的標註是錯的(通常 5-15%)。少量雜訊模型通常能容忍,但系統性的標註錯誤會導致模型學到錯誤的規律。例如如果標註者傾向把長信件標為垃圾郵件(因為懶得讀完),模型就會學到「長信件是垃圾郵件」這個錯誤的規律。
模型無法處理訓練中沒見過的類別。如果垃圾郵件的手法改變了(例如用 Unicode 替代字元繞過關鍵字偵測),模型可能無法辨認。這就是為什麼模型需要定期用新資料重新訓練。概念漂移(Concept Drift)——資料的分布隨時間改變——是生產環境中監督式學習模型最常見的退化原因。
隱私風險。訓練資料可能包含個人資料(如交易紀錄、醫療影像),需要確保資料收集和使用符合個資法規範。模型本身也可能透過成員推論攻擊(Membership Inference Attack)洩漏訓練資料中是否包含特定個人的資訊。
對抗樣本(Adversarial Examples)。經過精心設計的微小擾動可以讓模型做出完全錯誤的預測。例如在圖片上加入人眼看不出來的雜訊,就能讓模型把熊貓辨認成長臂猿。這在自動駕駛和安全檢測等場景中是潛在的安全威脅。
可解釋性。深度學習模型(如神經網路)的決策過程是黑盒子。在金融信貸審核、醫療診斷等需要解釋「為什麼拒絕」或「為什麼這樣判斷」的場景中,監管機構可能要求模型具有可解釋性。LIME 和 SHAP 是兩個常用的模型解釋工具。
常見問題
ChatGPT 和 Claude 是監督式學習訓練出來的嗎?
部分是。它們的訓練分兩個階段:第一階段的預訓練是自監督式學習(預測下一個 token),第二階段的對齊(RLHF/RLAIF)則使用了監督式學習(SFT,監督式微調)和強化學習。
需要多少資料才能訓練監督式學習模型?
取決於問題的複雜度和演算法。簡單的分類問題(如情感分析),幾百到幾千筆可能就夠。複雜的圖片辨識任務,通常需要幾千到幾萬筆。深度學習模型的參數越多,通常需要越多的資料。經驗法則是:特徵數的 10 倍以上是合理的起點(例如 20 個特徵至少需要 200 筆資料)。
監督式學習和規則引擎(Rule-based)怎麼選?
如果規則明確且固定(例如「金額超過 50 萬就標記」),用規則引擎更簡單可靠。如果規律複雜且難以用人工規則描述(例如垃圾郵件的特徵組合太多),監督式學習更適合。實務中兩者常搭配使用——先用規則處理明確的案例,不確定的再交給模型。
標註資料可以用 AI 自動產生嗎?
可以,這稱為弱監督(Weak Supervision)或用 LLM 標註。例如用 GPT-4 來標記情感分析的訓練資料。缺點是 AI 標註的品質不如專家標註,且可能引入 AI 本身的偏見。適合對精確度要求不極端高的場景。建議的做法是用 AI 標註大部分資料,再由人工抽樣審核 10-20%,確認品質在可接受的範圍。
台灣有什麼公開的標註資料集?
政府開放資料平台(data.gov.tw)有部分可用的資料。中研院的 CKIP 提供中文自然語言處理的標註資料。台大的醫療影像標註資料在學術研究中也有使用。另外,Kaggle 上有不少含台灣資料的公開資料集。Hugging Face 的 Datasets Hub 也有中文的 NLP 資料集。
什麼時候該用深度學習,什麼時候用傳統機器學習?
表格資料(CSV 格式的結構化資料)用 XGBoost 或 LightGBM 通常比深度學習好——訓練快、不需要 GPU、不容易過擬合、結果可解釋。圖片、語音、文字等非結構化資料用深度學習。如果資料量少於 1 萬筆,傳統機器學習通常是更好的選擇。
怎麼處理模型上線後效果變差的問題?
這通常是概念漂移(Concept Drift)——資料的分布隨時間改變了。解法是建立監控機制,持續追蹤模型的預測準確率。當準確率低於某個門檻時,用新的資料重新訓練模型。定期重新訓練的頻率取決於業務變化的速度——詐騙偵測可能每週需要更新,房價預測可能每季更新就夠。
監督式學習的模型可以解釋嗎?
取決於演算法。線性迴歸、邏輯迴歸、決策樹本身就是可解釋的——你可以看到每個特徵的權重或決策規則。隨機森林和 XGBoost 提供特徵重要性排序,告訴你哪些特徵對預測影響最大。神經網路是黑盒子,但可以用 LIME 或 SHAP 做事後解釋——它們會告訴你,對於某一筆預測,哪些特徵把結果推向了哪個方向。
相關文章
參考資料
- Andrew Ng, "Machine Learning" (Stanford CS229)
- Scikit-learn Documentation: Supervised Learning
- 台灣 AI 實驗室公開資源
- Chen & Guestrin, "XGBoost: A Scalable Tree Boosting System" (2016)
- Ke et al., "LightGBM: A Highly Efficient Gradient Boosting Decision Tree" (2017)
- Chawla et al., "SMOTE: Synthetic Minority Over-sampling Technique" (2002)
- Lundberg & Lee, "A Unified Approach to Interpreting Model Predictions" (SHAP, 2017)