在envi做随机森林_随机森林原理介绍与适用情况(综述篇)
一句話介紹
隨機森林是一種集成算法(Ensemble Learning),它屬于Bagging類型,通過組合多個弱分類器,最終結(jié)果通過投票或取均值,使得整體模型的結(jié)果具有較高的精確度和泛化性能。其可以取得不錯成績,主要歸功于“隨機”和“森林”,一個使它具有抗過擬合能力,一個使它更加精準。
Bagging結(jié)構(gòu)Bagging
Bagging也叫自舉匯聚法(bootstrap aggregating),是一種在原始數(shù)據(jù)集上通過有放回抽樣重新選出k個新數(shù)據(jù)集來訓練分類器的集成技術(shù)。它使用訓練出來的分類器的集合來對新樣本進行分類,然后用多數(shù)投票或者對輸出求均值的方法統(tǒng)計所有分類器的分類結(jié)果,結(jié)果最高的類別即為最終標簽。此類算法可以有效降低bias,并能夠降低variance。
【自助法】它通過自助法(bootstrap)重采樣技術(shù),從訓練集里面采集固定個數(shù)的樣本,但是每采集一個樣本后,都將樣本放回。也就是說,之前采集到的樣本在放回后有可能繼續(xù)被采集到。【OOB】在Bagging的每輪隨機采樣中,訓練集中大約有36.8%的數(shù)據(jù)沒有被采樣集采集中。對于這部分沒采集到的數(shù)據(jù),我們常常稱之為袋外數(shù)據(jù)(Out Of Bag,簡稱OOB)。這些數(shù)據(jù)沒有參與訓練集模型的擬合,因此可以用來檢測模型的泛化能力。
【隨機性】對于我們的Bagging算法,一般會對樣本使用boostrap進行隨機采集,每棵樹采集相同的樣本數(shù)量,一般小于原始樣本量。這樣得到的采樣集每次的內(nèi)容都不同,通過這樣的自助法生成k個分類樹組成隨機森林,做到樣本隨機性。
【輸出】Bagging的集合策略也比較簡單,對于分類問題,通常使用簡單投票法,得到最多票數(shù)的類別或者類別之一為最終的模型輸出。對于回歸問題,通常使用簡單平均法,對T個弱學習器得到的回歸結(jié)果進行算術(shù)平均得到最終的模型輸出。
隨機森林
隨機森林(Random Forest,RF)是Bagging算法的一種,其實在介紹完Bagging算法之后,隨機森林幾乎是呼之欲出的,RF相對于Bagging只是對其中一些細節(jié)做了自己的規(guī)定和設計。
【弱分類器】首先,RF使用了CART決策樹作為弱學習器。換句話說,其實我們只是將使用CART決策樹作為弱學習器的Bagging方法稱為隨機森林。【隨機性】同時,在生成每棵樹的時候,每個樹選取的特征都僅僅是隨機選出的少數(shù)特征,一般默認取特征總數(shù)m的開方。而一般的CART樹則是會選取全部的特征進行建模。因此,不但特征是隨機的,也保證了特征隨機性。
【樣本量】相對于一般的Bagging算法,RF會選擇采集和訓練集樣本數(shù)N一樣個數(shù)的樣本。
【特點】由于隨機性,對于降低模型的方差很有作用,故隨機森林一般不需要額外做剪枝,即可以取得較好的泛化能力和抗過擬合能力(Low Variance)。當然對于訓練集的擬合程度就會差一些,也就是模型的偏倚會大一些(High Bias),僅僅是相對的。
CART樹
隨機森林的弱分類器使用的是CART數(shù),CART決策樹又稱分類回歸樹。當數(shù)據(jù)集的因變量為連續(xù)性數(shù)值時,該樹算法就是一個回歸樹,可以用葉節(jié)點觀察的均值作為預測值;當數(shù)據(jù)集的因變量為離散型數(shù)值時,該樹算法就是一個分類樹,可以很好的解決分類問題。
但需要注意的是,該算法是一個二叉樹,即每一個非葉節(jié)點只能引伸出兩個分支,所以當某個非葉節(jié)點是多水平(2個以上)的離散變量時,該變量就有可能被多次使用。同時,若某個非葉節(jié)點是連續(xù)變量時,決策樹也將把他當做離散變量來處理(即在有限的可能值中做劃分)
特征選擇
特征選擇目前比較流行的方法是信息增益、增益率、基尼系數(shù)和卡方檢驗。這里主要介紹基于基尼系數(shù)(GINI)的特征選擇,因為隨機森林采用的CART決策樹就是基于基尼系數(shù)選擇特征的。
基尼系數(shù)的選擇的標準就是每個子節(jié)點達到最高的純度,即落在子節(jié)點中的所有觀察都屬于同一個分類,此時基尼系數(shù)最小,純度最高,不確定度最小。
對于一般的決策樹,假如總共有K類,樣本屬于第k類的概率為:pk,則該概率分布的基尼指數(shù)為:
GINI系數(shù)基尼指數(shù)越大,說明不確定性就越大;基尼系數(shù)越小,不確定性越小,數(shù)據(jù)分割越徹底,越干凈。
對于CART樹而言,由于是二叉樹,可以通過下面的表示:
CART樹GINI系數(shù)在我們遍歷每個特征的每個分割點時,當使用特征A=a,將D劃分為兩部分,即D1(滿足A=a的樣本集合),D2(不滿足A=a的樣本集合)。則在特征A=a的條件下D的基尼指數(shù)為:
節(jié)點GINI系數(shù)Gini(D):表示集合D的不確定性。
Gini(A,D):表示經(jīng)過A=a分割后的集合D的不確定性。
隨機森林中的每棵CART決策樹都是通過不斷遍歷這棵樹的特征子集的所有可能的分割點,尋找Gini系數(shù)最小的特征的分割點,將數(shù)據(jù)集分成兩個子集,直至滿足停止條件為止。
抗過擬合
首先,正如Bagging介紹中提到的,每個樹選取使用的特征時,都是從全部m個特征中隨機產(chǎn)生的,本身已經(jīng)降低了過擬合的風險和趨勢。模型不會被特定的特征值或者特征組合所決定,隨機性的增加,將控制模型的擬合能力不會無限提高。
第二,與決策樹不同,RF對決策樹的建立做了改進。對于普通的決策樹,我們會在節(jié)點上所有的m個樣本特征中選擇一個最優(yōu)的特征來做決策樹的左右子樹劃分。但是RF的每個樹,其實選用的特征是一部分,在這些少量特征中,選擇一個最優(yōu)的特征來做決策樹的左右子樹劃分,將隨機性的效果擴大,進一步增強了模型的泛化能力。
假設每棵樹選取msub個特征,msub越小,此時模型對于訓練集的擬合程度會變差,偏倚增加,但是會泛化能力更強,模型方差減小。msub越大則相反。在實際使用中,一般會將msub的取值作為一個參數(shù),通過開啟oob驗證或使用交叉驗證,不斷調(diào)整參數(shù)以獲取一個合適的msub的值。
優(yōu)點總結(jié)
參考目錄
- [1] https://www.cnblogs.com/pinard/p/6156009.html
- [2] https://www.cnblogs.com/maybe2030/p/4585705.html
- [3] https://www.cnblogs.com/liuwu265/p/4688403.html
- [4] http://blog.csdn.net/qq_30189255/article/details/5153244
鏈接:https://www.jianshu.com/p/a779f0686acc
總結(jié)
以上是生活随笔為你收集整理的在envi做随机森林_随机森林原理介绍与适用情况(综述篇)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hyperf自定义注解类_swoole学
- 下一篇: 风格迁移应用_[风格迁移][超分][EC