集成學(xué)習(xí)與個(gè)體學(xué)習(xí)器
- 集成學(xué)習(xí)是機(jī)器學(xué)習(xí)中常用的一種方法,常用的集成學(xué)習(xí)方法有boosting,bagging以及隨機(jī)森林凌受,前者基學(xué)習(xí)器相互之間有著較大關(guān)聯(lián)的一種集成學(xué)習(xí)方法宛蚓,后兩者是基學(xué)習(xí)器之間較為獨(dú)立的集成學(xué)習(xí)方法嗤详。通常較好的集成學(xué)習(xí)算法的基學(xué)習(xí)器有著“好而不同”的特點(diǎn)幌衣,即在我們構(gòu)建基學(xué)習(xí)的過(guò)程中希望我們得到的基學(xué)習(xí)器能夠有較高的準(zhǔn)確率并且能夠保證不同的學(xué)習(xí)器之間有著不同的結(jié)果,但是這兩項(xiàng)指標(biāo)在某種程度上是矛盾的碗殷,所以我們?cè)跇?gòu)建基學(xué)習(xí)的過(guò)程中并不能完全做到“好而不同”。
- 個(gè)體學(xué)習(xí)器是指集成學(xué)習(xí)中被集成的單個(gè)學(xué)習(xí)器速缨。常見的學(xué)習(xí)器有以下兩種:1.C4.5決策樹算法 2.BP神經(jīng)網(wǎng)絡(luò)亿扁。我們將用同種算法集成的學(xué)習(xí)器稱為“同質(zhì)”學(xué)習(xí)器,學(xué)習(xí)算法稱為“基學(xué)習(xí)算法”鸟廓,不同的算法集成的學(xué)習(xí)器稱為“異質(zhì)”學(xué)習(xí)器从祝。個(gè)體學(xué)習(xí)器應(yīng)該采用不同的數(shù)據(jù)集訓(xùn)練,以達(dá)到個(gè)體學(xué)習(xí)器之間相互獨(dú)立的條件引谜,但是在現(xiàn)實(shí)生活中數(shù)據(jù)與數(shù)據(jù)之間并不能保證數(shù)據(jù)集的完全獨(dú)立牍陌,所以訓(xùn)練好的學(xué)習(xí)器只能保證大體獨(dú)立,集成后的學(xué)習(xí)器的結(jié)果由測(cè)試數(shù)據(jù)集來(lái)度量學(xué)習(xí)器的好壞员咽。
Boosting & bagging
- Boosting算法是一族分類器之間有強(qiáng)關(guān)聯(lián)的一種算法毒涧,由較弱的分類器逐漸訓(xùn)練成精準(zhǔn)度較高的強(qiáng)分類器。在Boosting算法中贝室,最有名的算法叫Adaboost算法契讲。其基本思想是對(duì)于每個(gè)分類器設(shè)定一個(gè)相同的權(quán)重,之后再對(duì)每個(gè)分類器進(jìn)行訓(xùn)練滑频,得到分類器的誤差捡偏,對(duì)于誤差較大的分類器增加它的權(quán)重值,而對(duì)于誤差較小的分類器減小他們的權(quán)重值峡迷,之后再重新訓(xùn)練直到最終的損失函數(shù)達(dá)到收斂银伟。
1.為每一個(gè)分類器設(shè)定權(quán)重值Di = 1/N
2.設(shè)定訓(xùn)練次數(shù)m = 1,2,3,4......M
a.使用具有Dm的訓(xùn)練集進(jìn)行訓(xùn)練你虹,得到基本分類器Gm(x)
b.計(jì)算這次迭代的誤差em=∑Wmi*I(Gm(xi)!=Yi)
c.計(jì)算Gm(x)的系數(shù)(話語(yǔ)權(quán))αm=1/2 * log((1-em)/em)
d.更新權(quán)重值
3.構(gòu)建基本分類器的線性組合
G(x)=sign(∑αmGm(x))
- Bagging算法是一種分類器之間沒有較大關(guān)聯(lián)的增強(qiáng)算法,分類器之間的結(jié)果可以近似看做獨(dú)立的彤避。它的主要思想是“投票”傅物,訓(xùn)練T個(gè)分類器,T個(gè)分類器分別投票琉预,選出最終的結(jié)果董饰。算法流程如下圖所示。
1.設(shè)定需要的分類器個(gè)數(shù)T
2.開始迭代t = 1,2,3,4....T
a.對(duì)樣本集進(jìn)行有放回采樣圆米,共采取m個(gè)尖阔。
b.對(duì)這m個(gè)樣本進(jìn)行訓(xùn)練得到分類器Gt(x)。
3.對(duì)這m個(gè)分類器進(jìn)行線性組合榨咐,最終結(jié)果是
G(x)= argmax ∑ Gt(x)
隨機(jī)森林的思想與推廣
- 隨機(jī)森林(Random forest)是一種基于決策樹的分類算法介却。首先決策樹用了CART決策樹作為弱學(xué)習(xí)器。同時(shí)采用了bagging的思想块茁,由于集成學(xué)習(xí)要求分類器之間有“好而不同”的特征齿坷,所以在決策樹決定最佳分類節(jié)點(diǎn)的時(shí)候并不是在所有特征中選取一個(gè)最佳特征,而是在待選取的Nsub個(gè)特征中選取一個(gè)数焊,這樣就極大的增加了分類器的泛化程度永淌,由于是集成學(xué)習(xí)也可以極大的增加結(jié)果精確性。最終的結(jié)果由T個(gè)分類器投票決定佩耳。
首先設(shè)定弱分類器的的個(gè)數(shù)T遂蛀,以及訓(xùn)練數(shù)據(jù)集大小m
1.對(duì)于t=1,2,3,4......T
a.對(duì)待訓(xùn)練數(shù)據(jù)進(jìn)行t第t次有放回的抽樣,抽取m個(gè)干厚。
b.對(duì)這m個(gè)數(shù)據(jù)按照上面所說(shuō)的方式進(jìn)行訓(xùn)練得到?jīng)Q策樹分類器Gt(x)李滴。
2.對(duì)這T個(gè)分類器進(jìn)行線性疊加,如果是分類則返回其中最多的那個(gè)蛮瞄,如果是回歸所坯,則返回所以分類器的加權(quán)平均。
- 隨機(jī)森林的推廣(暫時(shí)還沒看)
1.extra trees
2.Totally Random Trees Embedding
3.Isolation Forest
隨機(jī)森林的優(yōu)缺點(diǎn)
- 優(yōu)點(diǎn)
1.訓(xùn)練可以并行的進(jìn)行挂捅,不想boosting需要串行芹助,能夠極大的加快訓(xùn)練的速度。
2.由于是選擇特征進(jìn)行分類闲先,所以可以分類較高維的數(shù)據(jù)状土。
3.訓(xùn)練后可以給出各個(gè)維度的重要程度。
4.RF相對(duì)Adaboost實(shí)現(xiàn)相對(duì)簡(jiǎn)單伺糠。
5.方差小蒙谓,泛化能力強(qiáng),對(duì)特征缺失不敏感退盯。
- 缺點(diǎn)
1.在噪點(diǎn)較多的數(shù)據(jù)集上容易過(guò)擬合彼乌。
2.取值劃分比較多的特征容易對(duì)RF的決策產(chǎn)生更大的影響泻肯,從而影響擬合的模型的效果渊迁。
sklearn中的參數(shù)
- 在sklearn機(jī)器學(xué)習(xí)包中慰照,隨機(jī)森林在集成學(xué)習(xí)模塊,具體在sklearn.ensemble.RandomForestClassifier()中琉朽,主要參數(shù)如下所示毒租。
n_estimators:這個(gè)參數(shù)定義了隨機(jī)森林的分類器個(gè)數(shù)。
criterion:這個(gè)參數(shù)定義了在構(gòu)建每個(gè)分類器時(shí)箱叁,選取待選取節(jié)點(diǎn)特征的指標(biāo)墅垮。
max_depth:這個(gè)參數(shù)定義了在構(gòu)建決策樹時(shí),樹最大的深度耕漱。
booststrap:這個(gè)參數(shù)表示在構(gòu)建樹時(shí)是否使用自舉樣本算色。
oob_score:這個(gè)參數(shù)表示是否用袋外數(shù)據(jù)來(lái)估計(jì)某個(gè)分類器的好壞。默認(rèn)為否螟够。
隨機(jī)森林的使用場(chǎng)景
- 嚴(yán)格來(lái)說(shuō)灾梦,隨機(jī)森林其實(shí)算是一種集成算法。它首先隨機(jī)選取不同的特征(feature)和訓(xùn)練樣本(training sample)妓笙,生成大量的決策樹若河,然后綜合這些決策樹的結(jié)果來(lái)進(jìn)行最終的分類。
隨機(jī)森林在現(xiàn)實(shí)分析中被大量使用寞宫,它相對(duì)于決策樹萧福,在準(zhǔn)確性上有了很大的提升,同時(shí)一定程度上改善了決策樹容易被攻擊的特點(diǎn)辈赋。
適用情景:
1.數(shù)據(jù)維度相對(duì)低(幾十維)鲫忍,同時(shí)對(duì)準(zhǔn)確性有較高要求時(shí)。
2.因?yàn)椴恍枰芏鄥?shù)調(diào)整就可以達(dá)到不錯(cuò)的效果钥屈,基本上不知道用什么方法的時(shí)候都可以先試一下隨機(jī)森林饲窿。