-
當前位置:首頁 > 創(chuàng)意學院 > 技術(shù) > 專題列表 > 正文
隨機森林基于什么算法(隨機森林屬于什么算法)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于隨機森林基于什么算法的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、隨機森林預測結(jié)果應該出來啥
隨機森林基于決策樹,隨機森林既對數(shù)據(jù)隨機抽樣N次,訓練N顆決策樹最后對結(jié)果求平均值,所以想了解隨機森林,只需了解決策樹即可。
從直觀角度來解釋,每棵決策樹都是一個分類器(假設現(xiàn)在針對的是分類問題),那么對于一個輸入樣本,N棵樹會有N個分類結(jié)果。而隨機森林集成了所有的分類投票結(jié)果,將投票次數(shù)最多的類別指定為最終的輸出,這就是一種最簡單的 Bagging 思想。
決策樹基于觀測到的數(shù)據(jù)的概率,直觀的建立起決策規(guī)則,是一種簡單、非線性、符合認知的無參數(shù)分類(回歸)的方法。
隨機森林有一個重要的優(yōu)點就是,沒有必要對它進行交叉驗證或者用一個獨立的測試集來獲得誤差的一個無偏估計。它可以在內(nèi)部進行評估,也就是說在生成的過程中就可以對誤差建立一個無偏估計。
我們知道,在構(gòu)建每棵樹時,我們對訓練集使用了不同的bootstrap sample(隨機且有放回地抽取)。所以對于每棵樹而言(假設對于第k棵樹),大約有1/3的訓練實例沒有參與第k棵樹的生成,它們稱為第k棵樹的oob樣本。
而這樣的采樣特點就允許我們進行oob估計,它的計算方式如下:對每個樣本,計算它作為oob樣本的樹對它的分類情況(約1/3的樹);然后以簡單多數(shù)投票作為該樣本的分類結(jié)果;最后用誤分個數(shù)占樣本總數(shù)的比率作為隨機森林的oob誤分率。
oob誤分率是隨機森林泛化誤差的一個無偏估計,它的結(jié)果近似于需要大量計算的k折交叉驗證。
介紹
作為新興起的、高度靈活的一種機器學習算法,隨機森林(Random Forest,簡稱RF)擁有廣泛的應用前景,從市場營銷到醫(yī)療保健保險,既可以用來做市場營銷模擬的建模,統(tǒng)計客戶來源,保留和流失,也可用來預測疾病的風險和病患者的易感性。
最初,我是在參加校外競賽時接觸到隨機森林算法的。最近幾年的國內(nèi)外大賽,包括2013年百度校園電影推薦系統(tǒng)大賽、2014年阿里巴巴天池大數(shù)據(jù)競賽以及Kaggle數(shù)據(jù)科學競賽,參賽者對隨機森林的使用占有相當高的比例。
二、什么是隨機森林
Bagging是 bootstrap aggregating 。思想就是從總體樣本當中 隨機取一部分樣本進行訓練,通過多次這樣的結(jié)果,進行投票獲取平均值作為結(jié)果輸出 ,這就極大可能的 避免了不好的樣本數(shù)據(jù),從而提高準確度 。因為有些是不好的樣本,相當于噪聲,模型學入噪聲后會使準確度不高。Bagging降低 Variance ,因此采用的都是強學習器。
舉個例子 :
假設有1000個樣本,如果按照以前的思維,是直接把這1000個樣本拿來訓練,但現(xiàn)在不一樣,先抽取800個樣本來進行訓練,假如噪聲點是這800個樣本以外的樣本點,就很有效的避開了。重復以上操作,提高模型輸出的平均值。
Random Forest(隨機森林)是 一種基于樹模型的Bagging的優(yōu)化版本 ,一棵樹的生成肯定還是不如多棵樹,因此就有了隨機森林,解決 決策樹泛化能力弱的 特點。(可以理解成三個臭皮匠頂過諸葛亮)
而同一批數(shù)據(jù),用同樣的算法只能產(chǎn)生一棵樹,這時Bagging策略可以 幫助我們產(chǎn)生不同的數(shù)據(jù)集 。 Bagging 策略來源于bootstrap aggregation:從樣本集(假設樣本集N個數(shù)據(jù)點)中重采樣選出Nb個樣本(有放回的采樣,樣本數(shù)據(jù)點個數(shù)仍然不變?yōu)镹),在所有樣本上,對這n個樣本建立分類器(ID3C4.5CARTSVMLOGISTIC), 重復以上兩步m次,獲得m個分類器 ,最后根據(jù)這m個分類器的投票結(jié)果,決定數(shù)據(jù)屬于哪一類。
每棵樹的按照如下規(guī)則生成:
一開始我們提到的隨機森林中的“隨機”就是指的這里的兩個隨機性。兩個隨機性的引入對隨機森林的分類性能至關(guān)重要。由于它們的引入,使得隨機森林 不容易陷入過擬合,并且具有很好得抗噪能力 (比如:對缺省值不敏感)。
總的來說就是隨機選擇樣本數(shù),隨機選取特征,隨機選擇分類器,建立多顆這樣的決策樹,然后通過這幾課決策樹來投票,決定數(shù)據(jù)屬于哪一類( 投票機制有一票否決制、少數(shù)服從多數(shù)、加權(quán)多數(shù) )
減小 特征選擇個數(shù)m,樹的相關(guān)性和分類能力也會相應的降低 ;增大m,兩者也會隨之增大。所以關(guān)鍵問題是 如何選擇最優(yōu)的m (或者是范圍),這也是隨機森林唯一的一個參數(shù)。
優(yōu)點:
缺點:
根據(jù)隨機森林創(chuàng)建和訓練的特點,隨機森林對缺失值的處理還是比較特殊的。
其實,該缺失值填補過程類似于推薦系統(tǒng)中采用協(xié)同過濾進行評分預測,先計算缺失特征與其他特征的相似度,再加權(quán)得到缺失值的估計,而隨機森林中計算相似度的方法(數(shù)據(jù)在決策樹中一步一步分類的路徑)乃其獨特之處。
OOB :
上面我們提到,構(gòu)建隨機森林的關(guān)鍵問題就是 如何選擇最優(yōu)的m ,要解決這個問題主要依據(jù)計算 袋外錯誤率oob error(out-of-bag error) 。
bagging方法中Bootstrap每次約有 1/3的樣本不會出現(xiàn)在Bootstrap所采集的樣本集合中 ,當然也就沒有參加決策樹的建立,把這1/3的數(shù)據(jù)稱為 袋外數(shù)據(jù)oob(out of bag) ,它可以用于 取代測試集誤差估計方法 。
袋外數(shù)據(jù)(oob)誤差的計算方法如下:
優(yōu)缺點 :
這已經(jīng)經(jīng)過證明是 無偏估計的 ,所以在隨機森林算法中 不需要再進行交叉驗證或者單獨的測試集來獲取測試集誤差 的無偏估計。
三、分類算法 - 隨機森林
上次我寫了決策樹算法,決策樹可以解決分類問題,也有CART算法可以解決回歸問題,而隨機森林也和決策樹非常類似,采用了CART算法來生成決策樹,因此既可以解決分類問題,也可以解決回歸問題。從名字中可以看出,隨機森林是用隨機的方式構(gòu)建的一個森林,而這個森林是由很多的相互不關(guān)聯(lián)的決策樹組成。實時上隨機森林從本質(zhì)上屬于機器學習的一個很重要的分支叫做集成學習。集成學習通過建立幾個模型組合的來解決單一預測問題。它的工作原理是生成多個分類器/模型,各自獨立地學習和作出預測。這些預測最后結(jié)合成單預測,因此優(yōu)于任何一個單分類的做出預測。
所以理論上,隨機森林的表現(xiàn)一般要優(yōu)于單一的決策樹,因為隨機森林的結(jié)果是通過多個決策樹結(jié)果投票來決定最后的結(jié)果。簡單來說,隨機森林中每個決策樹都有一個自己的結(jié)果,隨機森林通過統(tǒng)計每個決策樹的結(jié)果,選擇投票數(shù)最多的結(jié)果作為其最終結(jié)果。我覺得中國一句諺語很形象的表達了隨機森林的運作模式,就是“三個臭皮匠,頂個諸葛亮”。
我有一批100條的數(shù)據(jù),通過顏色、長度、甜度、生長地方和水果類別,那么我要預測在某種顏色、長度、甜度和生長地方的水果究竟是什么水果,隨機森林要怎么做呢?
這里的抽樣是指的在這批水果中,有放回地抽樣,比如我要生成3個決策樹來預測水果種類,那么每棵樹要抽樣50條數(shù)據(jù)來生成,每棵樹抽取數(shù)據(jù)后數(shù)據(jù)要放回,下一棵樹抽取數(shù)據(jù)仍然要從100條數(shù)據(jù)里面抽取。這種方法就叫做 bootstrap重采樣技術(shù) 。
每棵樹利用抽取的樣本生成一棵樹,值得注意的是,由于采用的是CART算法,因此生成的是二叉樹,并且可以處理連續(xù)性數(shù)據(jù)。如果每個樣本的特征維度為M,像以上提到的數(shù)據(jù),樣本特征維度5,指定一個常數(shù)m<<M,隨機地從5個特征中選取m個特征子集 (這一點非常重要,這也是隨機森林的隨機這個名字的來源,因此這樣才能保證生成的決策樹不同) ,每次樹進行分裂時,從這m個特征中選擇最優(yōu)的,并且每棵決策樹都最大可能地進行生長而不進行剪枝。
此時,一顆茂盛的決策樹就生成了。
根據(jù)3顆決策樹的結(jié)果,如果是連續(xù)型的數(shù)據(jù)最終需要求均值獲得結(jié)果,如果是分類型的數(shù)據(jù)最后求眾數(shù)獲得結(jié)果。
1)正如上文所述,隨機森林算法能解決分類與回歸兩種類型的問題,并在這兩個方面都有相當好的估計表現(xiàn)
2)隨機森林對于高維數(shù)據(jù)集的處理能力令人興奮,它可以處理成千上萬的輸入變量,并確定最重要的變量,因此被認為是一個不錯的降維方法。此外,該模型能夠輸出變量的重要性程度,這是一個非常便利的功能
3)在對缺失數(shù)據(jù)進行估計時,隨機森林是一個十分有效的方法。就算存在大量的數(shù)據(jù)缺失,隨機森林也能較好地保持精確性
4)當存在分類不平衡的情況時,隨機森林能夠提供平衡數(shù)據(jù)集誤差的有效方法
5)模型的上述性能可以被擴展運用到未標記的數(shù)據(jù)集中,用于引導無監(jiān)督聚類、數(shù)據(jù)透視和異常檢測
6)隨機森林算法中包含了對輸入數(shù)據(jù)的重復自抽樣過程,即所謂的bootstrap抽樣。這樣一來,數(shù)據(jù)集中大約三分之一將沒有用于模型的訓練而是用于測試,這樣的數(shù)據(jù)被稱為out of bag samples,通過這些樣本估計的誤差被稱為out of bag error。研究表明,這種out of bag方法的與測試集規(guī)模同訓練集一致的估計方法有著相同的精確程度,因此在隨機森林中我們無需再對測試集進行另外的設置。
1)隨機森林在解決回歸問題時并沒有像它在分類中表現(xiàn)的那么好,這是因為它并不能給出一個連續(xù)型的輸出。當進行回歸時,隨機森林不能夠作出超越訓練集數(shù)據(jù)范圍的預測,這可能導致在對某些還有特定噪聲的數(shù)據(jù)進行建模時出現(xiàn)過度擬合。
2)對于許多統(tǒng)計建模者來說,隨機森林給人的感覺像是一個黑盒子——你幾乎無法控制模型內(nèi)部的運行,只能在不同的參數(shù)和隨機種子之間進行嘗試。
四、隨機森林模型(RF)
集成學習通過構(gòu)建多個學習器,將結(jié)果進行整合,已獲得比單一學習器更好的泛化性能。目前集成學習方法分類兩類,一類的Boosting算法,學習器之間有較強的依賴關(guān)系,串行學習;另一類是Bagging算法,學習器之間無依賴關(guān)系,可以并行學習,隨機森林(Random Forest,RF)是典型的Bagging集成學習算法。
Bagging是“Bootstrap aggregation”的簡寫,代表一種自主采樣法:從原始數(shù)據(jù)集中,有放回地重采樣n個樣本,形成一個新的數(shù)據(jù)集;假設每個樣本的維度是a,,再隨機抽取k個特征訓練一個決策樹;以上兩步重復m次,就得到隨機森林模型(m個決策樹),最終通過投票的方式得到最終預測結(jié)果。
Bagging算法是一種集合模型訓練的框架,通過多次抽樣訓練多個弱學習器,集合弱學習器(弱學習器低偏差,高方差)的結(jié)果提高模型的泛化能力。如果弱學習器是決策樹,多個決策樹模型就構(gòu)成隨機森林,弱學習器還可以是其他學習器。
決策樹屬于非參數(shù)學習算法,可用于解決分類和回歸的問題?;貧w問題的結(jié)果是葉子結(jié)點的樣本平均值。
決策樹的構(gòu)建步驟主要分為三部分:
在隨機森林中計算某個特征X的重要性,方法如下:
(1)對于隨機森林中的每一棵樹,使用響應的(OOB)袋外數(shù)據(jù)計算分類誤差,記為errOOB1。
(2)隨機將袋外數(shù)據(jù)所有樣本的特征X加入噪聲(隨機改變特征X 的取值),再次計算分類誤差,記為errOOB2。
(3)假設隨機森林有N棵樹,特征X的重要性為 .。若給某個特征加入噪聲后,袋外數(shù)據(jù)的準確性大幅下降后,說明該特征重要程度比較高。
(如有不同見解,望不吝賜教!!!)
以上就是關(guān)于隨機森林基于什么算法相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
隨機生成幾位數(shù)字字母組合(隨機生成幾位數(shù)字字母組合的方法)