有沒有辦法用提升樹進行 k 折交叉驗證?有沒有辦法使用 boosted tree 平台進行 k 折交叉驗證?
雖然我知道這可以在模型篩選中完成,但我需要對提供最大效能的 k 倍進行超級調整。那麼,有沒有一種方法可以使用增強樹預測模型進行 k 倍交叉驗證,同時還可以對其他參數進行超調,而不是使用模型篩選?
感謝您抽空回覆我。
尼莎
進階統計建模預測建模和機器學習回覆:有沒有辦法用提升樹進行 k 折交叉驗證?如果您想使用 K 折疊和提升樹,我會嘗試使用 XGBoost 應用程式。
JMP Pro 的 XGBoost 插件 - JMP 用戶社區
史蒂夫
回覆:有沒有辦法用提升樹進行 k 折交叉驗證?嗨@NishaKumar2023 ,
您可以在調整超參數時使用 K 折交叉驗證,但它並未完全按照您的預期工作。這是方法論:
- 建立 K 倍驗證柱(固定或公式,取決於您的目標和重現性需求): 啟動 Make Validation Column Platform (jmp.com)
透過使用分層,確保折疊中的資料分割具有代表性和平衡性,或透過使用分組(例如,同一折疊中的相同 ID)尊重資料的約束/重複。
- 開啟或建立您想要啟動的提升樹(或任何其他平台)的調整資料表。我在副本中添加了提升樹的範例,但您可以在這篇文章中找到@SDF1提供的其他調整表: Malfunction in Bootstrap Forest with Tuning Design Table?
- 啟動提升樹(或任何其他建模平台)時,指定您的輸入、對模型的回應,並使用驗證面板中的 K 折驗證列(此處位於 Mushroom JMP 資料集):

- 彈出一個新窗口,您必須選取“使用調優表”,然後選擇已開啟的調優表:

- 然後,您將獲得最佳調整模型提供的結果:

請注意,此方法不適合 K 折交叉驗證,因為使用調整表表示資料僅分為 3 組:
- 訓練集:用於模型的實際訓練,
- 驗證集:用於模型最佳化(例如超參數微調、特徵/閾值選擇…)和模型選擇,
- 測試集:用於對新/未見資料的所選模型進行泛化和預測效能評估。
因此,如果您在步驟 1 中指定 5 折交叉驗證,則只有前 3 折將用作訓練、驗證和測試集,而不是真正用作 5 折交叉驗證技術。要像您打算做的那樣進行交叉驗證,您需要一個嵌套交叉驗證:內部交叉驗證用於調整超參數,外部交叉驗證用於評估找到的超參數值的穩健性,僅在模型篩選平台中可用,不接受超參數調整表調優(因為該平台的目標是在各種模型類型中篩選最有前途的演算法,而不是對它們進行微調):

據我所知,這在 JMP 中是不可能(直接)實現的。
但您仍然可以在「預設」Boosted Tree 上使用K 折交叉驗證,或嘗試使用其他驗證技術,按照上述方法(但建立具有3 組的正常公式驗證列)並在調整後的模型上使用模擬來評估其穩健性與未調整的相比的好處:

您可以看到,在大多數情況下,預設的超參數值運作得很好,而且超參數調整對效能可變性有更多幫助(與「相比,RASE、R 平方等效能值在調整後的演算法上具有更窄的範圍”)預設值”一)比最大或平均演算法性能。
您可以在此處查看有關此主題的類似帖子和解決方案,以了解驗證技術和模擬的使用: 已解決:回复:提升樹 - 調整表設計 - JMP 用戶社區
嵌套交叉驗證通常不是我推薦的第一個選項,因為它需要大量計算,在內循環的每個折疊上獨立微調演算法,然後計算每個驗證折疊的性能外循環。
在沒有大量資料的情況下,K 折交叉驗證是一種有用的技術,但嵌套交叉驗證仍然需要相當大的量才能正確進行資料分割:例如,如果將內循環分割為 4 倍,並且外層循環有5 個折疊,需要在資料集中創建20 個折疊/組!
最後,交叉驗證更多的是一種調整技術,而不是一種評估模型穩健性的驗證技術,正如 Cassie Kozyrkov 在本影片中精彩描述的那樣: https://youtu.be/zqD0lQy_w40 ?si=lja79_aik0KO -jbB
希望這個回答對你有幫助
回覆:有沒有辦法用提升樹進行 k 折交叉驗證?@shampton82非常感謝,這使我能夠創建 k 折疊 (val) 列並運行提升樹!
回覆:有沒有辦法用提升樹進行 k 折交叉驗證?非常感謝@Victor_G !我發現你的解釋非常有幫助,特別是對於超級調整的下一步,我能夠透過 xgboost 建立 k 折疊 val 列並運行提升樹,但我將提供方向和資源來幫助接下來的幾個步驟。謝謝你!