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]:
[2]:
[3]:
[4]:
資料競賽技巧
線上結果加權 通過每個模型的線上成績進行加權,線上分數高的權重就高,線上成績相對低的權重就低,最終將加權的結果作為最終的結果 需保證所有的結果的 權重之和為1 data.groupby col id nunique data.groupby col day min data.groupby col ...
資料競賽 3
lightgbm light gradient boosting machine,是乙個實現gbdt gradient boosting decision tree 演算法的框架,支援高效率的並行訓練,並且具有以下優點 更快的訓練速度 更低的記憶體消耗 更好的準確率 分布式支援,可以快速處理海量資料...
挑戰程式設計競賽學習筆記5
不僅要熟練掌握基礎演算法,豐富的想象力亦是非常重要的。二分查詢的複雜度是o logn 的,即便n變得很大,對數時間的演算法依然非常快速。如果把最開始的問題中的n的限制條件改為1 n 1000,最初的四重迴圈o n的4次方 複雜度的演算法顯然不夠,必須改進演算法。for int a 0 a上為最初程式...