您好,登錄后才能下訂單哦!
小編給大家分享一下DM集成學習的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
在解決分類問題時,假如分類模型不夠強大,對樣本的分類結(jié)果就不會很理想。這時如果我們多找一些分類模型,讓它們一起做決策,模型強度會不會高一點呢?
集成學習就是把多種分類器按策略組合起來,并根據(jù)所有分類器的分類結(jié)果做出最后的判斷。
如下圖,三種分類器的分類結(jié)果都有一點點錯誤,如果把三類組合在一起就可以完美地把所有形狀都區(qū)分開,而且分割曲線也較為平滑。
集成學習屬于監(jiān)督學習中的分類問題,分為boosting和bagging兩大類。
一、Bagging
如何得到不同的分類器呢?我們可以調(diào)整同一訓練模型的不同參數(shù),或者使用不同的訓練樣本訓練不同的模型。
有放回的采樣(Bootstrap Samples):
每次拿出一個小球,記錄之后放回。這樣既保留了數(shù)據(jù)規(guī)律,又得到了不同的訓練樣本。
Bagging算法框架如下圖:
根據(jù)有放回采樣(選出F%的樣本)訓練出T個分類器,分別對測試樣本進行分類,然后投票決定測試樣本到底屬于哪類。
少數(shù)服從多數(shù),所有分類器的地位完全等同。
二、基于決策樹的Bagging:RandomForests,RF
n個樣本,有放回的取出n個樣本,取n次。當n趨近于無窮的時候,大概有2/3的樣本被選過。
剩下的1/3(out of bag,OOB)正好可以去做測試。
隨機森林:
樹的數(shù)量為500較為合適(滿足要求即可)。為了生成不同的樹,首先對樣本用有放回的采樣隨機選取出樣本,使用不同的屬性對樹進行分層。
樣本屬性數(shù)量,我們隨機選取個屬性對樹進行劃分。這樣可以有效加快樹的建立過程。
三、Boosting
Boosting中分類器的生成過程并不是平行的,下一個分類器的生成是根據(jù)上一個分類器中分類對錯情況來決定的。
而且在boosting中又增加了一個分類器,把所有子分類器的輸出當作該判別器的輸入,而且對每條輸入都設置了權(quán)重。分類器對權(quán)重進行訓練、學習后得到分類結(jié)果。
Boosting框架如下圖所示:
Boosting偽代碼:
四、Adaboost
Adaboost算法是boosting中的一個門類,算法思想與boosting一致??梢宰C明,adaboost的誤差上界會隨著訓練的進行而越來越小。
Adaboost算法框架如下:
D1(i)表示每個樣本的權(quán)重,如果某些樣本之前被分錯了,它們的Dt+1(i)就會增大,之后分類器對這些樣本劃分時就會越關(guān)注。
表示樣本訓練誤差。由生成,同時也表示每個分類器的權(quán)重。
Adaboost算法中的參數(shù)設置很少,訓練過程幾乎全靠數(shù)據(jù)驅(qū)動。而且隨著迭代代數(shù)的增加,訓練并不會出現(xiàn)過擬合的情況。
但因為最終的分類結(jié)果由50(或更多)個分類模型組合得到,所以分類依據(jù)的可解釋性并不好。
如下圖為adaboost算法在matlab中的實現(xiàn)。將50個簡單的線性分類器組合起來,就能形成一條相對復雜的分割界面。
以上是“DM集成學習的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。