XGBoost 在模型篩選測試集上的統計效能你好,
我正在使用模型篩選和嵌套交叉驗證來比較多個機器學習模型對某種疾病的分類結果。 XGBoost 在 ROC-AUC 和誤分類率方面在測試集上表現最佳。但是,當我想透過執行決策閾值分析來更詳細地查看其他統計數據時,我得到了所有其他模型的所有性能數據(F1 分數、MCC、靈敏度、規格等),但沒有測試集中 XGBoost 的數據。這是為什麼呢?我也想報告這些統計數據。請問有什麼技巧可以讓我取得 XGBoost 模型測試集的這些統計資料嗎?
問候,
週一
基礎資料分析與建模預測模型和機器學習回覆:XGBoost 在模型篩選測試集上的統計效能你好@魯 ,
只是為了澄清,決策閾值調整應該在驗證集上進行,而不是在測試集上進行。
以下是有關所用術語及其用法的一些提醒:
- 訓練集 :用於模型的實際訓練,
- 驗證集 :用於模型最佳化(例如超參數微調、特徵/閾值選擇等)和模型選擇,
- 測試集 :用於對所選模型在新/未見資料上的泛化和預測性能評估。
驗證集的目的是幫助比較和選擇模型,以及微調超參數或決策閾值。
在模型訓練和微調期間不應以任何方式使用測試集,因為它作為模型的最終公正「驗證」和模型性能的最終評估。
您可以在以下對話中閱讀有關驗證集和測試集之間的區別的更多資訊:
如果我們在 JMP pro 中將模型分別應用於測試資料和訓練資料時,仍然在輸出中看到「訓練」和「驗證」結果,那麼為了只獲得測試和訓練資料的結果,我們該怎麼做呢? 交叉驗證 - 驗證列方法
……
關於您的特定問題,如果我沒有記錯的話,XGBoost 僅透過@russ_wolfinger創建的插件可用於 JMP Pro 版本,因此由於它是透過插件添加的功能,因此所有模型調整選項可能不可用(例如決策閾值。您可以在JMP 願望清單上創建願望,或在專用於XGBoost 插件的頁面上撰寫有關此情況的評論。
但是,如果 XGBoost 是表現最佳的模型,您可以:
- 首先將測試集與訓練/驗證資料分開!這樣,模型在任何步驟都不會看到測試數據,並且只有在模型具有固定的超參數和決策閾值後才會使用測試數據。
- 在您的訓練/驗證資料集上建立K 折驗證列。
- 啟動 XGBoost 平台(從外掛選單),指定 K-folds 欄位驗證:

- 執行XGBoost訓練,並調整驗證集上的決策閾值:

- 儲存預測公式並評估測試集上的效能。
希望這個答案能對你有幫助,
回覆:XGBoost 在模型篩選測試集上的統計效能感謝@Victor_G的精彩回复
@魯 ,想提一下,對於模型篩選,我們在 19 版中修復了一個洩漏問題——現在可以通過 Early Adopter 版本獲取,並將在幾週後正式投入生產。建議您在獲取 19 版後重新運行。我相信 XGBoost 測試結果應該會出現,並且正如@Victor_G敏銳指出的那樣,始終使用測試集拆分來比較模型。
注意:XGBoost 和 Torch 與其他 JMP 平台不同,它們僅使用雙向拆分(訓練和驗證),但在訓練期間不會窺視驗證拆分,因此驗證結果不會洩漏。它們的設定旨在進行完整的 K 折交叉驗證,並保存超出折疊範圍的預測,而不是進行單一的三向分割。
一些額外的建議:
1. 嘗試 XGBoost 中的「自動調整」選項,使用@Victor_G所描述的獨立設定。 (插件中還附帶一個實用程式「製作 K 倍列」。)您很可能可以獲得更好的折疊外性能。
2. Torch 深度學習神經網路也絕對值得一試,為了獲得絕對的最佳效能,可以將它們與 XGBoost 結合使用。
回覆:XGBoost 在模型篩選測試集上的統計效能感謝 Victor 和 Ross 精彩的回覆。我已經迫不及待想看看 19 版模型篩選平台在不久的將來會帶來哪些「新功能」!
問候,
遊戲