在集成學習中,結合策略也是影響集成模型性能的重要因素之一。傳統的結合策略有多數投票、加權平均等。Stacking的本質是設計合適的結合策略,達到比傳統結合策略更優的集成效果。首先,Stacking訓練一組基學習器,用以參與後續的集成構建。其次,算法將這些學習器的輸出和期望的樣本標籤視爲新的學習任務,通過機器學習或其他策略得到一個新的模型,其中模型的輸入爲基學習器的輸出,目的是通過構建的新模型使基學習器的輸出能夠更好的逼近理想輸出。Stacking着重於集成學習中的結合策略。
僞代碼如下所示:
Stacking |
|
輸入: |
訓練集D={(x1,y1), (x2,y2), ··· , (xm,ym)}; 基學習器訓練方法; 次級學習算法; 基學習器個數T; |
Step1: |
根據基學習器訓練方法訓練T個基學習器; |
Step2: |
對T個基學習器的輸出進行整合,將其作爲次級訓練集和D´; |
Step3: |
利用次級學習算法對新訓練集{ D´, Y}進行訓練,得到次級學習器H; // H可視爲各基學習器輸出的加權。 |
輸出: |
次級學習器H。 |
爲了更進一步說明,Stacking原理圖如下: