數據競賽——5

Stacking

Stacking:表示學習指的是模型從原始數據中自動抽取有效特徵的過程。

Stacking先從初始數據集訓練出初級學習器,將初級學習器的輸出當作特徵構成新數據集,利用新數據集再訓練次級學習器(meta-learner)。

Stacking的框架結構與運行過程如下:

假設是五折的stacking,我們有一個train數據集和一個test數據集,那麼一個基本的stacking框架會進行如下幾個操作:
1、選擇基模型。我們可以有xgboost,lightGBM,RandomForest,SVM,ANN,KNN,LR等等你能想到的各種基本算法模型。
2、把訓練集分爲不交叉的五份。我們標記爲train1到train5。
3、從train1開始作爲預測集,使用train2到train5建模,然後預測train1,並保留結果;
然後,以train2作爲預測集,使用train1,train3到train5建模,預測train2,並保留結果;如此進行下去,直到把train1到train5各預測一遍;
4、把預測的結果按照train1到trian5的位置對應填補上,得到對train整個數據集在第一個基模型的一個stacking轉換。
5、在上述建立的五個模型過程中,每個模型分別對test數據集進行預測,並最終保留這五列結果,然後對這五列取平均,作爲第一個基模型對test數據的一個stacking轉換。
6、選擇第二個基模型,重複以上2-5操作,再次得到train整個數據集在第二個基模型的一個stacking轉換。
7、以此類推。有幾個基模型,就會對整個train數據集生成幾列新的特徵表達。同樣,也會對test有幾列新的特徵表達。
8、一般使用LR作爲第二層的模型進行建模預測。

目前訓練出的model的測試的最好結果如下圖所示:
在這裏插入圖片描述

參考文獻
[1]: https://blog.csdn.net/winycg/article/details/84032459
[2]: https://blog.csdn.net/wstcjf/article/details/77989963
[3]: https://zhuanlan.zhihu.com/p/32896968
[4]: https://zhuanlan.zhihu.com/p/27493821

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章