天天看點

[機器學習與資料分析] 內建學習結合政策

        內建算法就是訓練一堆基學習器,然後通過某種政策把各個基學習器的結果進行合成,進而得到內建學習器的結果。

優點

1)提高泛化性能 ​ 2)降低進入局部最小點的風險 ​ 3)擴大假設空間

平均法

        簡單平均、權重平均:對于數值類的回歸預測問題,通常使用的結合政策是平均法,也就是說,對于若幹個弱學習器的輸出進行平均得到最終的預測輸出。

對數值型(連續)輸出

[機器學習與資料分析] 內建學習結合政策

,最常見的結合政策為平均法。

1)簡單平均法(simple averaging)

[機器學習與資料分析] 內建學習結合政策

2)權重平均法(weighted averaging)

[機器學習與資料分析] 內建學習結合政策

其中

[機器學習與資料分析] 內建學習結合政策

為權重,通常

[機器學習與資料分析] 內建學習結合政策

要求:

[機器學習與資料分析] 內建學習結合政策

注:權重平均法的權重一般從訓練資料中學習而得,對規模比較大額內建來說,要學習的權重比較多,較容易導緻過拟合,是以權重平均法不一定優于簡單平均法。
    一般而言,在個體學習器性能相差較大時宜使用權重平均法,而在個體學習器性能相近時宜使用簡單平均法。
      

投票法

對分類來說,學習器

[機器學習與資料分析] 內建學習結合政策

将從類别集合中預測出一個類别标記,最常用的是投票法。

1)絕對多數投票法:某标記超過半數将預測結果為該标記,否則拒絕。

[機器學習與資料分析] 內建學習結合政策

2)相對多數投票法:預測為得票最多的标記,若同時有多個标記的票最高,從中随機選取一個。

[機器學習與資料分析] 內建學習結合政策

3)權重投票法:提供了預測結果,與權重平均法類似。

[機器學習與資料分析] 內建學習結合政策

學習法

        當資料很多時,一種更為強大的結合政策是使用“學習法”,即通過另一個學習器來結合。其中典型代表為Stacking。在Stacking中把個體學習器稱為初級學習器,用于結合的學習器稱為次學習器或者元學習器。

        Stacking本身就是一種出名的內建學習方法,且有不少內建學習方法可以認為是其變體或者特例,Stacking也可以認是一種結合政策,此處同周志華的西瓜書一樣,把其看成一種結合政策。

        Stacking的主要思想為:先從初始資料集訓練出初級學習器,然後“生成”一個新的資料集用于訓練次級學習器。生成的新資料中,初級學習器的輸出被當做樣例輸入特征,而初始樣本的标記仍被當做樣例标記。

        假設初級學習器有M個,那麼對于一個原始資料集中的樣本(x; y),通過這M個初級學習器有M個輸出{h1(x),h2(x),...,hM(x)},把{h1(x),h2(x),...,hM(x); y}作為新資料的一個樣本,是以一個初級學習器的輸出作為新資料集中對應樣本的一個特征,而其标記為原始資料中該樣本的标記。

算法描述如下圖,假定初級學習器使用不同的算法,如LR、RF、SVM、GBDT等。

[機器學習與資料分析] 內建學習結合政策

1)通過交叉驗證産生次級學習器的訓練樣本;

2)将初級學習器的輸出類機率作為次級學習器的輸入屬性,用多響應線性回歸作為次基學習算法效果較好;

        在訓練階段,次級學習器(用來結合結果的學習器)的訓練資料集是利用初級學習器來産生的,若直接用初級學習器的訓練集來産生訓練資料集,則很有可能會出現過拟合,也就是過拟合風險較大;是以一般在使用Stacking時,采用交叉驗證或留一法的方式,用訓練初級學習器未使用的樣本來産生次級學習器的訓練樣本。

以k=5折交叉驗證作為例子:

[機器學習與資料分析] 內建學習結合政策

        首先把整個資料集分成量訓練集(Training Data)和測試集(Test Data)兩部分,然後把訓練資料集進行 k 折,此處 k=5,即把訓練資料分成5份,在進行第 j 折時,使用其餘的四份進行初級學習器的訓練,得到一個初級學習器,并用該初始學習器把該折 (即留下用來驗證的) 資料進行預測,進行完所有折數,把預測輸出作為新資料集的特征,即次級學習器的訓練資料集,其中标記沒變,用該新資料集訓練次級學習器,進而得到一個完整的Stacking。最後用原始資料的測試集來對該Stacking進行測試評估。

        次級學習器的輸入屬性表示和次級學習算法的選擇對Stacking內建的泛化性能有很大影響。有研究表明,将初級學習器的輸出類機率做為次級學習器的輸入屬性,用多響應線性回歸(Multi-reponse Linear Regression,簡稱MLR)作為次級學習器算法效果更好,在MLR中使用不同的屬性集更佳。

        注:MLR是基于線性回歸的分類器,其對每個類分别進行線性回歸,屬于該類的訓練樣例所對應的輸出為1,其他類置0;測試示例将被分給輸出值最大的類。

繼續閱讀