Predictive-Models

我可以(合理地)僅根據先前模型預測不佳的觀察結果訓練第二個模型嗎?

  • May 5, 2021

假設我在構建預測模型時犯了以下罪行:

  1. 我將我的數據集分成四個子集:三個用於訓練

(Train_A、Train_B 和 Train_C),一個用於驗證。 2. 我在 Train_A 上訓練了一個初始模型 (Model_A)。因為目標是最大化樣本外預測的準確性,所以我使用了諸如交叉驗證之類的偏差方差平衡技術。 3. 我在 Train_B 上從 Model_A 生成預測並記錄預測錯誤。 4. 接下來,我在 Train_B 上訓練第二個模型 (Model_B),**但我根據來自 Model_A 的預測誤差的大小來權衡觀察結果。**換句話說,Model_B 被告知要最專注於學習預測 Model_A 非常不擅長預測的觀察結果。同樣,目標是樣本外的準確性,因此使用了交叉驗證等技術。 5. 我從 Train_C 上的 Model_A 和 Model_B 生成預測。這些用於探索結合來自兩個模型的預測(例如,加權平均)以(希望)提高樣本外預測準確性的最佳方式。 6. 在確定了權衡來自 Model_A 和 Model_B 的預測的最佳方法之後,我使用驗證集估計了樣本外的準確度。

主要問題:我該死嗎?**這種方法是否天生且不可恢復地容易過度擬合?**或者,有沒有辦法使用 Model_A 的錯誤來告知 Model_B 如何以 Model_B 的優勢解決 Model_A 的弱點的方式進行訓練?

次要問題:在從這種方法中提取價值方面是否有更好/更差的特定技術或算法?例如,如果有一些 NN 技術天生就可以做這種事情,因此我不會感到驚訝,因此,它們根本不會從這種方法中受益,而相比之下不太靈活的東西(如正則化回歸)可能會受益匪淺. 對於希望採用這種方法的人,您還會提供哪些其他想法或建議?

謝謝!

[編輯:我覺得我走進了一家 McMenamins 並向調酒師提出了微型釀酒廠的想法,哈哈!感謝大家非常友好和有益的評論!]

正如評論中所注意到的,您重新發現了boosting。這種方法沒有錯,但通常使用已經實現並由其他人經過實戰測試的方法比從頭開始更容易、更安全。如果您真的想使用您的方法,我鼓勵您首先使用一些開箱即用的 boosting 實現(AdaBoost、XGBoost、CatBoost 等)將其用作基準。

引用自:https://stats.stackexchange.com/questions/522874

comments powered by Disqus