2015-12-10 54 views
3

我想弄清楚如何正確地創建迴歸合奏。我知道有各種選擇。我使用以下方法。 首先,我定義了線性迴歸,GBM等模型,然後對這些模型中的每一個運行GridSearchCV以瞭解最佳參數。在此之後,我想做出最終預測,同時考慮每個模型的單獨預測。 問題是如何正確地將各個預測合併成一個Y向量?它接近每個預測分配權重係數不適合迴歸問題。如果是,那麼如何獲得這樣的權重係數? 也許好的方法是使用個人預測作爲訓練集來訓練元模型?如何正確合併合奏中的模型輸出?

回答

1

聲明:我對培訓合奏沒有親身經歷,但我對這個話題也很感興趣。

  1. 我在培訓合奏中找到的大部分資源都涉及分類問題。除維基百科文章外,我發現的一篇好文章是:http://mlwave.com/kaggle-ensembling-guide/但是對於迴歸,文章只列出了,平均值爲。可以分配權重係數,例如,基於交叉驗證性能,對每個模型,預測仍然有意義:你只需要對係數進行歸一化,使它們總和爲1.0。
  2. 另一種選擇是做提高:你訓練你的模特一個接一個 每個succesive模型上的 以前的模型的誤差培訓。這意味着,如果第一個模型的預測值爲 爲高,則下一個模型將嘗試預測該樣本的負值(以使模型的預測總和爲 等於實際訓練目標)。在維基百科 這種短款可能有助於理解: https://en.wikipedia.org/wiki/Ensemble_learning#Boosting
  3. 據我已閱讀,裝袋(Bootstrap彙總)也 似乎迴歸工作。您只訓練每個模型只有一個 隨機子集的訓練數據。然後進行預測,您的平均值爲 (所有模型的權重相同)。有關如何對訓練數據進行採樣的詳細信息,請參見here
  4. 堆疊是你已經建議:使用元分類器與模型的輸出作爲數據。解釋和 細節如何實現此可以找到例如這裏: http://docs.rapidminer.com/studio/operators/modeling/classification_and_regression/meta/stacking.html

而且,隨着更多的信息交叉驗證一個相關的問題:https://stats.stackexchange.com/questions/18891/bagging-boosting-and-stacking-in-machine-learning