天天看點

組合分類器設計

轉載自:http://blog.csdn.net/app_12062011/article/details/50424776 現在為止我們也了解了不少機器學習相關的算法,實際上,每個算法都有自己的假設條件,不同的 歸納偏倚 會有不同的資料符合度。一般來說,我們可以針對同一個資料集使用多個機器學習算法,然後比較算法的契合度,基本就是準确率,然後選擇最合适的一個。但是也存在一些情況,所有單個算法都不能達到我們預期的準确率,此時我們就要考慮 組合學習 了。

組合學習,顧名思義,就是對于資料集同時使用多個機器學習算法,進而獲得算法優劣互補的一種複合算法。近來随着計算和存儲變得更為廉價,組合多個學習器的系統也随之流行。對于組合學習來說,有兩個基本的問題:

  1. 如何産生互補的基學習器;
  2. 為了最大化準确率,如何組合基學習器?

下面我們圍繞這兩個基本的問題對組合學習政策做一個簡單的介紹。

  • 産生差異基學習器
  • 模型組合方案
  • 投票法
  • 裝袋
  • 層疊泛華

一、産生差異基學習器

利用我們已知的算法,我們可以産生有差異的不同的學習器,主要有以下幾種方法:

  • 算法差異:主要針對同一個資料集采用不同的學習算法,比如參數學習與非參數學習,以此幫助我們擺脫單一決策;
  • 超參數差異:在實際的歸納偏倚中差異化超參數,比如多層感覺器中的隐藏單元數目、K-最近鄰中的K值、決策樹中的誤差門檻值等;
  • 輸入表示差異化:不同輸入表示的一個例子是語音識别單詞,我們可以采用聲學輸入,也可以采用視訊捕捉發音時的口形輸入,這樣就獲得了兩種不同的基學習器;
  • 訓練集差異化:可以使用訓練集的不同子集來訓練不同的基學習器,這可以通過在給定的樣本上随機抽取訓練集來實作,稱作裝袋(bagging);

需要注意的是,組合學習注重的是組合後的算法的準确率,而不是單個基學習器自身的準确率。

二、模型組合方案

在獲得差異化的基學習器後,有多種方案來組合這些學習器。主要有兩種:

  1. 多專家組合(multiexpert combination)
    • 全局方法(Global):并行架構,給定一個輸入,所有的基學習器産生一個輸出,然後使用所有的輸出獲得一個判斷,如投票和層疊;
    • 局部方法(Local):與全局方法不同的是,存在一個模型考察輸入,并選擇一個或幾個學習器來産生輸出,比如混合專家;
  2. 多級組合(multistage combination):這是一種順序方法,即一個學習器隻有在前一個學習器預測不夠準确的執行個體上進行訓練和檢驗。其基本思想是差異化的基學習器按照複雜度遞增排序,使得除非前一個更簡單的基學習器的結果置信度不夠,否則不使用複雜度更高的學習器。這樣的一個例子是級聯,如果所有前驅學習器的結果置信度都不夠,我們才使用下一個學習器,并且使用所有使得前一個學習器不夠好的執行個體作為新的訓練集。根本思想時以盡可能低的代價解釋大部分執行個體,并将其餘執行個體作為異常存儲。比如英語動詞大多情況下都是d/ed,但是也存在不規則的,比如go/went,對于不規則的我們隻需要投入最小的計算量即可。

三、投票法

組合多個學習器最常用的方法就是投票,原理就是多個學習器并行處理相同的輸入,然後對每個輸出“求和”,這裡的“求和”隻是代表一種運算,并不限于加法。基本的架構如圖:(W1、W2、W3代表學習器的權重)

組合分類器設計

常用的分類器“加法”有以下幾種:

  • 求和,Di的和;
  • 權重和:這是最為常用的,但是每個學習器的權重需要事先指定或者訓練學習得到,形式為DiWi的和;
  • 中位數:對離群點更魯棒;
  • 最值:最小和最大分别是悲觀和樂觀的估計;
  • 乘積:每個學習器都有否決權;

四、裝袋

裝袋(bagging)也是一種投票方法,其中基學習器通過在稍有差異的訓練集上訓練而有所不同。這裡主要采取“有放回”的自助法從同一個訓練集中随機抽取L個訓練集,然後使用不穩定的學習過程訓練L個基學習器,并在檢驗時取平均值。

五、層疊泛華

層疊泛化(stacked generalization)其實也是投票的一種擴充,因為投票系統的組合方式大多是線性的,而層疊泛化則不一定如此,組合方式可以是一個單獨的複雜的學習器。比如:

組合分類器設計

這裡的組合系統F(|φ* 可以是線性的,也可是非線性的,也可以是一個單獨的學習器,比如是一個多層感覺器,參數φ是連接配接權重。

在層疊泛化中,我們希望基學習器盡可能不同,使得它們可以互相補充。是以最好的基學習器都基于不同的學習算法。層疊泛化相較于傳統的投票模型,訓練過的規則更靈活并且具有更小的偏倚,但是卻增加了額外的參數,有引入方差的風險。

組合分類器設計(內建學習)補充

概念:個體學習器的某種結合方式。同質結合(個體學習器的類别相同):基學習器,相對的異質結合(個體學習器不同)元件學習器或個體學習器。

原則:好而不同:1、準确性,2、多樣性。核心:如何産生好而不同的個體學習器。

根據個體學習器的産生方式:1、個體學習器之間存在強依賴關系,必須串行生成的序列化方法(boosting);2、不存在強依賴,可同時生成的并行化方法(bagging,随機森林(但是随機森林加入了随機屬性選擇))

結合政策:好處:1、提高泛化能力;2、降低陷入局部最優解的風險;3、擴大假設空間,得到更好的近似。常見的結合政策:1、平均法(數值型):簡單平均法和權重平均法;2、投票法(并聯):絕對多數和相對多數權重投票。硬投票(使用類标記的),軟投票(實用類機率的);3、學習法:即通過另一個學習器來進行結合(個體學習器稱為初級學習器,用于結合的學習器稱為次級學習器或者元學習器)。

當各個分類器存在顯著不同時,分類器組合的作用更加明顯,如采用不同的特征,不同的訓練集合,這樣分類器之間就具有較強的互補性。由此想到,首先選擇n種差異性比較大的分類器(可由先前實驗的結果中去選擇,然後分别對各個分類器進行特征選擇,這樣的話不僅分類器的種類不同,而且使用的特征集也不同,這樣組合分類器的效果可能會更好)

組合分類器(LDA、極限學習機、RBF、貝葉斯、SVM)組合方式:1、每個成員分類器分别進行特征選擇,然後用成員分類器的結果+75維特征作為輸入  2、或者168維+成員分類器的結果混在一起進行特征選擇,不過後者不太可取,因為很有可能将成員分類器的結果就給踢掉了,不過也可以進行試驗,3、或者是将所有的分類器組合好以後再進行特征選擇,最後别忘了用你練出來的模型對全體資料進行預測,看一下結果。

繼續閱讀