15.3 剪枝优化
15.3 剪枝優(yōu)化
-
規(guī)則生成本質(zhì)上是一個(gè)貪心搜索的過(guò)程,需要一定的機(jī)制緩解過(guò)擬合的風(fēng)險(xiǎn),最常見(jiàn)的做法是剪枝(pruning)。與決策樹(shù)相似,剪紙可以發(fā)生在規(guī)則生長(zhǎng)過(guò)程中,即預(yù)剪枝。也可以發(fā)生在規(guī)則產(chǎn)生后,即后剪枝。通常是基于某種性能度量指標(biāo)來(lái)評(píng)估增/刪邏輯文字前后的規(guī)則性能,或增/刪規(guī)則前后的規(guī)則集性能,從而判斷是否要進(jìn)行剪枝。
-
剪枝還可以借助統(tǒng)計(jì)顯著性檢驗(yàn)來(lái)進(jìn)行,例如CN2算法在預(yù)剪枝的過(guò)程時(shí),假設(shè)用規(guī)則集來(lái)進(jìn)行預(yù)測(cè)必須顯著優(yōu)于直接基于訓(xùn)練樣例集后驗(yàn)概率分布進(jìn)行預(yù)測(cè),為了便于計(jì)算。CN2使用了似然率統(tǒng)計(jì)量(LRS)。令m+,m-分別表示訓(xùn)練樣例集中的正,反例數(shù)目,m+,m-分別表示規(guī)則(集合——覆蓋的正反例數(shù)目,則有
-
這實(shí)際上是一種信息量指標(biāo),衡量了規(guī)則集覆蓋樣例的分布和訓(xùn)練集經(jīng)驗(yàn)分布的差別:LRS越大,說(shuō)明采用規(guī)則集進(jìn)行預(yù)測(cè)和直接使用訓(xùn)練集正,反例比率進(jìn)行猜測(cè)的差別越大。LRS越小,說(shuō)明規(guī)則集的效果越可能是偶然現(xiàn)象,在數(shù)據(jù)量比較大的現(xiàn)實(shí)任務(wù)中,通常設(shè)置為L(zhǎng)RS很大(例如0.99)時(shí),CN2算法才停止規(guī)則集生長(zhǎng)
-
規(guī)則學(xué)習(xí)中常稱為生長(zhǎng)集,和剪枝條。
-
后剪枝最常用的策略是減錯(cuò)剪枝(REP),其基本的做法是:將樣例集合劃分為訓(xùn)練集和驗(yàn)證集,從訓(xùn)練集上學(xué)得規(guī)則R后進(jìn)行多輪剪枝,在每一輪窮舉所有可能的剪枝操作,包括刪除規(guī)則中的某個(gè)文字,刪除規(guī)則中結(jié)尾文字,刪除規(guī)則尾部多個(gè)文字,刪除整條規(guī)則等。然后用驗(yàn)證集對(duì)剪枝產(chǎn)生的所有候選規(guī)則集進(jìn)行評(píng)估,保留最好的那個(gè)規(guī)則集進(jìn)行下一輪的剪枝,如此繼續(xù),直到無(wú)法通過(guò)剪枝提高驗(yàn)證集上的性能為止。
-
REP剪枝通常很有效果,但是他的復(fù)雜度是 O(m^4),m為馴良樣本的數(shù)量。IREP,負(fù)責(zé)都是m (log m)^2,其做法是:在生成每條規(guī)則前,先將當(dāng)前樣例集劃分為訓(xùn)練集和驗(yàn)證集,在訓(xùn)練集上生成一條規(guī)則R,立即在驗(yàn)證集上對(duì)其進(jìn)行REP剪枝,得到規(guī)則 R’,將R‘覆蓋的樣例去掉,在更新后的樣例集合上重復(fù)上述的操作。顯然,REP是針對(duì)規(guī)則集進(jìn)行剪枝,而IREP僅僅對(duì)于單挑規(guī)則進(jìn)行剪枝,因此后者比前者更加高效
-
若將剪枝機(jī)制和其他一些后處理手段結(jié)合起來(lái)對(duì)規(guī)則集進(jìn)行優(yōu)化,則往往可以獲得很好的效果,以著名的規(guī)則學(xué)習(xí)算法RIPPER為例,其泛化性能超過(guò)很多決策樹(shù)算法,而且學(xué)習(xí)速度也比大多數(shù)決策樹(shù)算法更快,奧妙就在于將剪枝和后處理優(yōu)化相結(jié)合
-
RIPPER算法描述如下,它先使用了IREP剪枝機(jī)制生成了規(guī)則集R,IREP是IREP的改進(jìn),主要是以m+和m- 取代了IREP使用的準(zhǔn)確率作為規(guī)則性能度量指標(biāo),在剪枝的時(shí)候刪除規(guī)則尾部的多個(gè)文字,并且在最終得到規(guī)則集之后再進(jìn)行一次IREP剪枝。RIPPER中的后處理機(jī)制是為了在剪枝的基礎(chǔ)上進(jìn)一步提升性能,對(duì)R中的每條規(guī)則Ri,RIPPER為它產(chǎn)生兩個(gè)變體:
-
R’:基于Ri的覆蓋的樣例,用IREP*重新生成一條規(guī)則R‘,該規(guī)則稱為替換規(guī)則
-
R’’:對(duì)Ri增加文字進(jìn)行特化,然后再用IREP*剪枝生成一條規(guī)則Ri’’,該規(guī)則稱為修訂規(guī)則
-
接下來(lái),將R‘i和R’‘i分別與R中除Ri之外的規(guī)則放在一起,組成了規(guī)則集R’和R’’,然后將他們和R一起進(jìn)行比較,選擇最優(yōu)的規(guī)則集保留下來(lái),這就是第四行算法所作的操作
-
為什么RIPPER的優(yōu)化策略有效呢?原因很簡(jiǎn)單:最初生成R的時(shí)候,規(guī)則是按序生成的、每條規(guī)則都沒(méi)有對(duì)其后產(chǎn)生的規(guī)則加以考慮,這樣的貪心算法本質(zhì)常常導(dǎo)致算法陷入局部最優(yōu)。RIPPER的后處理優(yōu)化過(guò)程將R中的所有規(guī)則放在一起重新加以優(yōu)化,恰恰是通過(guò)全局的考慮來(lái)緩解貪心算法的局部性,從而往往能夠得到更好的效果。
總結(jié)
- 上一篇: Linux 查看电脑基本配置
- 下一篇: LNMP 环境遇到的权限问题