自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

集成學(xué)習(xí)方法

大數(shù)據(jù)
集成學(xué)習(xí)是機(jī)器學(xué)習(xí)算法中非常強(qiáng)大的工具,有人把它稱為機(jī)器學(xué)習(xí)中的“屠龍刀”,非常萬(wàn)能且有效,在各大機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘競(jìng)賽中使用非常廣泛。

 

[[172698]]

集成學(xué)習(xí)是機(jī)器學(xué)習(xí)算法中非常強(qiáng)大的工具,有人把它稱為機(jī)器學(xué)習(xí)中的“屠龍刀”,非常***且有效,在各大機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘競(jìng)賽中使用非常廣泛。它的思想非常簡(jiǎn)單,集合多個(gè)模型的能力,達(dá)到“三個(gè)臭皮匠,賽過(guò)諸葛亮”的效果。集成學(xué)習(xí)中概念是很容易理解的,但是好像沒(méi)有同一的術(shù)語(yǔ),很多書本上寫得也不一樣,越看越模糊。這里我把集成學(xué)習(xí)分為兩個(gè)大類,***大類稱為模型融合,與臺(tái)大機(jī)器學(xué)習(xí)技法課上的blending概念相似,模型融合其實(shí)是個(gè)再學(xué)習(xí)的過(guò)程。***步是訓(xùn)練出多個(gè)不同的強(qiáng)學(xué)習(xí)器,然后考慮如何將這多個(gè)學(xué)習(xí)器組合起來(lái),更進(jìn)一步提高性能。第二大類稱為機(jī)器學(xué)習(xí)元算法,這類算法本身就是多模型組合的結(jié)果,只是元算法中的基算法(base_algorithm一般會(huì)比較弱),稱為弱模型的組合,例如RF、GDBT。

一、模型融合

實(shí)際中,我們總可以根據(jù)實(shí)際問(wèn)題,訓(xùn)練出多個(gè)功能強(qiáng)大學(xué)習(xí)器,為了進(jìn)一步提高學(xué)習(xí)器的能力,可以嘗試將這些學(xué)習(xí)組合起來(lái),這個(gè)過(guò)程就是模型融合。一般來(lái)說(shuō)模型能在一定程度上提高性能,有時(shí)使模型的預(yù)測(cè)能力更加強(qiáng)大,有時(shí)增加模型的泛化能力,顯而易見的壞處是多模型的學(xué)習(xí)加上再學(xué)習(xí)的過(guò)程會(huì)增加計(jì)算的代價(jià)。模型融合在競(jìng)賽中十分常見,屢試不爽,融合方法恰當(dāng),一般能提高成績(jī)。

1.1 常用的獲得不同模型的方法

由于不同的訓(xùn)練模型得到不同的模型,例如處理分類的LR、SVM、RF等

由于同一訓(xùn)練模型調(diào)節(jié)不同參數(shù)獲得不同的模型,例如GDBT中迭代次數(shù),每個(gè)樹的復(fù)雜度等

有些算法本身就有一定的隨機(jī)性,如PLA

由于訓(xùn)練數(shù)據(jù)不同得到不同的模型,如交叉驗(yàn)證、隨機(jī)抽樣

上面這些生成不同模型可以組合生成更多不同的模型,比較常用的是最前面的兩個(gè)

1.2 模型融合的方法

通過(guò)驗(yàn)證(validation)的方式,從***步中訓(xùn)練出的多個(gè)模型中挑選***的模型,作為最終的模型。這種方式必須要驗(yàn)證,不同使Ein最小,否則很容易過(guò)擬合。

統(tǒng)一融合(Uniform blending),分類時(shí)使用一人一票的投票方式,回歸時(shí)使用多個(gè)模型的平均值。這種方式的優(yōu)點(diǎn)是一般泛化能力會(huì)得到加強(qiáng),但是只能保證比那些模型中最差的模型要好,不能保證能得到比那些不同模型中的***的模型要好

線性融合(Linear blending),二次學(xué)習(xí),使用線性模型將***步中學(xué)習(xí)到的學(xué)習(xí)器組合起來(lái),用得好可以提高模型性能,但是要注意有過(guò)擬合的風(fēng)險(xiǎn)。

堆融合(Any blending、stacking),任何其它非線性模型將那些學(xué)習(xí)器組合起來(lái),有過(guò)擬合的風(fēng)險(xiǎn),注意驗(yàn)證。

模型融合在實(shí)際中十分常見,下面是臺(tái)大在2011KDDCup獲得冠軍時(shí)使用的模型融合方法,先用了any blending (stacking)處于領(lǐng)先群的位置,***的linear blend使得臺(tái)大獲得冠軍。

二、機(jī)器學(xué)習(xí)元算法

機(jī)器學(xué)習(xí)元算法分為兩類:Averaging methods 和 Boosting methods

Averaging methods 核心是引入隨機(jī)(對(duì)樣本、特征屬性隨機(jī)取樣)學(xué)習(xí)產(chǎn)生多個(gè)獨(dú)立的模型,然后平均所有模型的預(yù)測(cè)值。一般而言,這種方法,會(huì)減小方差(variance),不太會(huì)過(guò)擬合。主要包括bagging、RF。

Boosting methods 逐步加強(qiáng)方法,該方法集合學(xué)習(xí)多個(gè)模型,提高模型的準(zhǔn)確率。不同的是,它是基于前面模型的訓(xùn)練結(jié)果(誤差),生成新的模型,從而減小偏差(bias)。一般而言,這種方法會(huì)比上者的準(zhǔn)確率高一點(diǎn),但是也不是絕對(duì)的。它的缺點(diǎn)是有過(guò)擬合的風(fēng)險(xiǎn),另外,由于它每個(gè)模型是“序列化”(有前后關(guān)系)產(chǎn)生的,不易并行化。它的代表是AdaBoost、GDBT。

2.1 Bagging

Bagging 在原始樣本中隨機(jī)抽樣獲取子集,用隨機(jī)抽樣的子集訓(xùn)練基學(xué)習(xí)器(base_estimator),然后對(duì)每個(gè)基學(xué)習(xí)器的結(jié)果求平均,最終得到的預(yù)測(cè)值。隨機(jī)獲取樣本子集的方法有很多中,最常用的是有放回抽樣的booststrap,也可以是不放回的抽樣?;鶎W(xué)習(xí)器可以是相同的模型,也可以是不同的,一般使用的是同一種基學(xué)習(xí)器,最常用的是DT決策樹。由于bagging提供了一種降低方差(variance)的方式,所以一般會(huì)使用比較強(qiáng)、復(fù)雜的基學(xué)習(xí)器模型(e.g.fully developed decision trees),作為對(duì)比在boosting方法中會(huì)使用非常弱的基學(xué)習(xí)器模型(e.g. shallow decision trees)。在sklearn中實(shí)現(xiàn)了基于bagging的分類和回歸方法,主要設(shè)置參數(shù)為基學(xué)習(xí)器的類型、迭代次數(shù)(子模型的個(gè)數(shù))、獲取訓(xùn)練子集的方式。由于bagging訓(xùn)練每個(gè)模型可以并行,還可以設(shè)置n_jobs訓(xùn)練模型使用的多少個(gè)cpu核。

2.2 隨機(jī)森林(RF)

RF在實(shí)際中使用非常頻繁,其本質(zhì)上可bagging并無(wú)不同,只是RF更具體一些。一般而言可以將RF理解為bagging和DT(CART)的結(jié)合。RF中基學(xué)習(xí)器使用的是CART樹,由于算法本身能降低方差(variance),所以會(huì)選擇完全生長(zhǎng)的CART樹。抽樣方法使用bootstrap,除此之外,RF認(rèn)為隨機(jī)程度越高,算法的效果越好。所以RF中還經(jīng)常隨機(jī)選取樣本的特征屬性、甚至于將樣本的特征屬性通過(guò)映射矩陣映射到隨機(jī)的子空間來(lái)增大子模型的隨機(jī)性、多樣性。RF預(yù)測(cè)的結(jié)果為子樹結(jié)果的平均值。RF具有很好的降噪性,相比單棵的CART樹,RF模型邊界更加平滑,置信區(qū)間也比較大。一般而言,RF中,樹越多模型越穩(wěn)定。

2.3 AdaBoost

AdaBoost 是一種Boosting方法,與Bagging不同的是,Adaboost中不同的子模型必須是串行訓(xùn)練獲得的,每個(gè)新的子模型都是根據(jù)已訓(xùn)練出的模型性能來(lái)進(jìn)行訓(xùn)練的,而且Boosting算法中基學(xué)習(xí)器為弱學(xué)習(xí)。弱學(xué)習(xí)器可以理解為只比隨機(jī)猜測(cè)好一點(diǎn),在二分類情況下,錯(cuò)誤率略低0.5即可,實(shí)際中常使用 small decision trees。AdaBoost中每個(gè)訓(xùn)練樣本都有一個(gè)權(quán)重,這些權(quán)重構(gòu)成了一個(gè)向量W,初始值都為為Wi=1/N。

Adaboost中每次迭代生成新的子模型使用的訓(xùn)練數(shù)據(jù)都相同,但是樣本的權(quán)重會(huì)不一樣。AdaBoost會(huì)根據(jù)當(dāng)前的錯(cuò)誤率,增大錯(cuò)誤樣本權(quán)重,減小正確樣本權(quán)重的原則更新每個(gè)樣本的權(quán)重。不斷重復(fù)訓(xùn)練和調(diào)整權(quán)重,直到訓(xùn)練錯(cuò)誤率或弱學(xué)習(xí)器的個(gè)數(shù)滿足用戶指定的值為止。Adaboost的最終結(jié)果為每個(gè)弱學(xué)習(xí)器加權(quán)的結(jié)果。使用sklearn中的Adaboot時(shí),主要調(diào)節(jié)的參數(shù)有n_estimator(多少棵樹)、max_depth(每棵樹的深度。復(fù)雜度)或者min_samples_leaf(最少的葉子節(jié)點(diǎn))。

2.4 GDBT

GDBT也是一種Boosting方法,每個(gè)子模型是根據(jù)已訓(xùn)練出的學(xué)習(xí)器的性能(殘差)訓(xùn)練出來(lái)的,子模型是串行訓(xùn)練獲得,不易并行化。GDBT使用非常廣泛的,能分類,能回歸預(yù)測(cè)。GDBT基于殘差學(xué)習(xí)的算,沒(méi)有AdaBoost中的樣本權(quán)重的概念。GDBT結(jié)合了梯度迭代和回歸樹,準(zhǔn)確率非常高,但是也有過(guò)擬合的風(fēng)險(xiǎn)。GDBT中迭代的殘差的梯度,殘差就是目前結(jié)合所有得到的訓(xùn)練器預(yù)測(cè)的結(jié)果與實(shí)際值的差值,不理解可以參考另一篇博客,里面有一個(gè)實(shí)例介紹如何基于殘差來(lái)學(xué)習(xí)預(yù)測(cè)人的年齡。GDBT的使用也非常的簡(jiǎn)單,主要調(diào)節(jié)的參數(shù)有確定需要多少棵樹(n_estimator)、每棵樹的復(fù)雜度(max_depth,max_leaf_node)、損失函數(shù)(loss)以及學(xué)習(xí)率(learning_rating)。為了防止過(guò)擬合一般學(xué)習(xí)率會(huì)選小一點(diǎn)的(<0.1),learning_rate會(huì)影響n_estimator,需要權(quán)衡,選擇***的組合參數(shù)。

責(zé)任編輯:趙寧寧 來(lái)源: 36大數(shù)據(jù)
相關(guān)推薦

2009-09-08 09:25:46

思科認(rèn)證學(xué)習(xí)方法思科認(rèn)證

2010-05-04 17:48:53

2009-09-16 10:16:29

CCNA學(xué)習(xí)方法CCNA

2009-06-17 15:06:39

Java 學(xué)習(xí)方法

2009-10-15 11:24:00

CCNA學(xué)習(xí)方法CCNA

2009-09-28 10:40:28

.NET學(xué)習(xí)

2009-09-16 08:51:28

CCNP學(xué)習(xí)方法

2009-09-09 17:41:54

CCNP學(xué)習(xí)方法

2009-09-04 09:37:49

思科認(rèn)證CCNA學(xué)習(xí)方法

2010-03-17 16:59:54

Linux學(xué)習(xí)方法

2011-07-10 15:07:37

2011-05-16 14:07:58

J2EE

2009-08-26 09:20:12

思科認(rèn)證CCNP思科認(rèn)證CCNP學(xué)習(xí)方

2010-07-14 16:29:47

IT認(rèn)證

2017-11-27 15:24:02

Linux學(xué)習(xí)方法優(yōu)勢(shì)

2009-12-14 14:01:29

Linux學(xué)習(xí)方法

2009-09-28 13:23:00

CCNA學(xué)習(xí)方法CCNA

2009-06-12 15:16:53

Hibernate學(xué)習(xí)

2010-04-20 11:41:55

Oracle數(shù)據(jù)庫(kù)

2012-08-06 09:04:01

決策樹建模
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)