隨機(jī)森林是一種監(jiān)督式算法,使用由眾多決策樹組成的一種集成學(xué)習(xí)方法,輸出是對(duì)問題最佳答案的共識(shí)。隨機(jī)森林可用于分類或回歸。
什么是隨機(jī)森林?
隨機(jī)森林是用于分類和回歸的一種主流集成學(xué)習(xí)方法。
集成學(xué)習(xí)方法結(jié)合了多種機(jī)器學(xué)習(xí) (ML) 算法,以獲得更好的模型 – 應(yīng)用于數(shù)據(jù)科學(xué)的群體智慧。此類學(xué)習(xí)方法基于這樣一種概念:一群對(duì)問題領(lǐng)域知之有限的人集思廣益,可以獲得比一個(gè)知識(shí)豐富的人更好的解決方案。
隨機(jī)森林是一組決策樹,是幾乎人人都熟悉的解決問題的比喻。決策樹通過針對(duì)數(shù)據(jù)集元素,詢問一系列回答是否的問題來得出答案。在下面的示例中,為了預(yù)測(cè)一個(gè)人的收入,決策會(huì)考慮變量(特征),例如此人是否有工作(是或否)以及此人是否有房子。在算法環(huán)境中,機(jī)器會(huì)不斷搜索特征,以允許將一組中的觀察結(jié)果按如下方式進(jìn)行分割,即結(jié)果組之間盡可能不同,而每個(gè)不同子組的成員之間盡可能相似。
隨機(jī)森林使用名為“bagging”的技術(shù),通過數(shù)據(jù)集和特征的隨機(jī)自助抽樣樣本并行構(gòu)建完整的決策樹。雖然決策樹基于一組固定的特征,而且經(jīng)常過擬合,但隨機(jī)性對(duì)森林的成功至關(guān)重要。
隨機(jī)性可確保單個(gè)樹之間的相關(guān)性較低,從而減少偏差風(fēng)險(xiǎn)。大量樹的存在也減少了過擬合問題,如果模型在訓(xùn)練數(shù)據(jù)中加入過多“噪聲”并因此做出糟糕決策,這種問題就會(huì)出現(xiàn)。
使用隨機(jī)森林模型,隨著模型中不相關(guān)樹的數(shù)量增加,做出正確預(yù)測(cè)的可能性也會(huì)增加。結(jié)果的質(zhì)量更高,因?yàn)樗鼈兎从沉舜蠖鄶?shù)樹做出的決策。此投票過程通過限制誤差來保護(hù)每個(gè)樹不互相傷害。即使有些樹錯(cuò)誤,也會(huì)有一些樹正確,因此這組樹集體朝正確的方向前行。雖然隨機(jī)森林模型在考慮許多特征時(shí)可能會(huì)運(yùn)行緩慢,但即使是使用有限數(shù)量特征的小模型也會(huì)產(chǎn)生非常好的結(jié)果。
隨機(jī)森林的工作原理是什么?
隨機(jī)森林中的每棵樹在稱為自助聚集 (bagging) 的過程中隨機(jī)對(duì)訓(xùn)練數(shù)據(jù)子集進(jìn)行抽樣。該模型適合這些較小的數(shù)據(jù)集,并匯總預(yù)測(cè)結(jié)果。通過有放回抽樣,可以重復(fù)使用同一數(shù)據(jù)的幾個(gè)實(shí)例,結(jié)果就是,這些樹不僅基于不同的數(shù)據(jù)集進(jìn)行訓(xùn)練,而且還使用不同的特性做出決策。
圖像來源:KDNuggets
用例
分類示例包括:
欺詐檢測(cè)
垃圾郵件檢測(cè)
文本情感分析
預(yù)測(cè)患者風(fēng)險(xiǎn)、敗血癥或癌癥
回歸示例包括:
預(yù)測(cè)欺詐數(shù)量
預(yù)測(cè)銷售額
為何選擇隨機(jī)森林?
隨機(jī)森林模型有五個(gè)主要優(yōu)點(diǎn):
非常適合回歸和分類問題?;貧w中的輸出變量是一個(gè)數(shù)字序列,例如某個(gè)街區(qū)的房價(jià)。分類問題的輸出變量通常是一個(gè)單一答案,例如房屋的售價(jià)是否高于或低于要價(jià)。
可以處理缺失值并保持高準(zhǔn)確性,即使由于 bagging 和有放回抽樣而缺失大量數(shù)據(jù)時(shí)也是如此。
算法由于輸出的是“多數(shù)規(guī)則”,使得模型幾乎不可能過擬合。
該模型可以處理包含數(shù)千個(gè)輸入變量的龐大數(shù)據(jù)集,因此成為降維的不錯(cuò)工具。
其算法可用于從訓(xùn)練數(shù)據(jù)集中識(shí)別非常重要的特征。
其也有一些缺點(diǎn):
隨機(jī)森林優(yōu)于決策樹,但其準(zhǔn)確性低于 XGBoost 等梯度提升樹集成。
隨機(jī)森林包含大量樹,因此速度比 XGBoost 慢。
梯度提升決策樹
梯度提升決策樹 (GBDT) 是一種決策樹集成學(xué)習(xí)算法,類似于用于分類和回歸的隨機(jī)森林。隨機(jī)森林和 GBDT 都構(gòu)建了由多個(gè)決策樹組成的模型。兩者的區(qū)別在于重建和組合的方式。
GBDT 使用一種稱為 boosting 的技術(shù),以迭代方式訓(xùn)練一組淺層決策樹,每次迭代都使用上一個(gè)模型的殘差擬合下一個(gè)模型。最終得到的預(yù)測(cè)結(jié)果是所有樹預(yù)測(cè)結(jié)果的加權(quán)總和。隨機(jī)森林 bagging 可大幅減少差異和過擬合,而 GBDT boosting 則可減少偏差和欠擬合。
XGBoost(極端梯度提升)是 GBDT 的領(lǐng)先、可擴(kuò)展的分布式變體。使用 XGBoost 時(shí),樹并行構(gòu)建,而非順序構(gòu)建。GBoost 遵循按層生長策略,掃描梯度值并使用這些部分和來評(píng)估訓(xùn)練集中每個(gè)可分割點(diǎn)的分割質(zhì)量。
XGBoost 因其廣泛的用例、可移植性、多樣化的語言支持以及云集成而廣受歡迎。
與 XGBoost 相比,隨機(jī)森林模型的準(zhǔn)確性可能會(huì)因兩個(gè)不同的誤差來源(偏差和方差)而下降:
梯度提升模型通過以低學(xué)習(xí)率進(jìn)行多輪提升來消除偏差和方差。
梯度提升模型超參數(shù)也有助于消除方差。
隨機(jī)森林模型使用樹深度和樹的數(shù)量消除偏差和方差。
隨機(jī)森林樹可能需要比梯度提升樹更深入。
更多數(shù)據(jù)可減少偏差和方差。
NVIDIA GPU 加速的
隨機(jī)森林、XGBOOST 和端到端數(shù)據(jù)科學(xué)
在架構(gòu)方面,CPU 僅由幾個(gè)具有大緩存內(nèi)存的核心組成,一次只可以處理幾個(gè)軟件線程。相比之下,GPU 由數(shù)百個(gè)核心組成,可以同時(shí)處理數(shù)千個(gè)線程。
基于 CUDA-X AI 創(chuàng)建的 NVIDIA RAPIDS開源軟件庫套件使您完全能夠在 GPU 上執(zhí)行端到端數(shù)據(jù)科學(xué)和分析流程。此套件依靠 NVIDIA CUDA 基元進(jìn)行低級(jí)別計(jì)算優(yōu)化,但通過用戶友好型 Python 接口實(shí)現(xiàn)了 GPU 并行化和高帶寬顯存速度。
借助 RAPIDS GPU DataFrame,數(shù)據(jù)可以通過一個(gè)類似 Pandas 的接口加載到 GPU 上,然后用于各種連接的機(jī)器學(xué)習(xí)和圖形分析算法,而無需離開 GPU。這種級(jí)別的互操作性可通過 Apache Arrow 等庫實(shí)現(xiàn),并且可加速端到端流程(從數(shù)據(jù)準(zhǔn)備到機(jī)器學(xué)習(xí),再到深度學(xué)習(xí))。
RAPIDS 的機(jī)器學(xué)習(xí)算法和數(shù)學(xué)基元遵循熟悉的類似于 scikit-learn 的 API。單塊 GPU 和大型數(shù)據(jù)中心部署均支持 XGBoost、隨機(jī)森林等主流工具。針對(duì)大型數(shù)據(jù)集,相較于同等功效的 CPU,這些基于 GPU 的實(shí)施方案能夠以 10 到 50 倍的速度更快地完成任務(wù)。
NVIDIA RAPIDS 團(tuán)隊(duì)與 DMLC XGBoost 組織建立了緊密的合作關(guān)系,而且 GPU 加速 XGBoost 現(xiàn)已包括無縫嵌入式 GPU 加速,可顯著加快模型訓(xùn)練速度并提高準(zhǔn)確性。對(duì)在配備 NVIDIA P100 加速器和 32 個(gè)英特爾至強(qiáng) E5-2698 CPU 核心的系統(tǒng)上運(yùn)行的 XGBoost 腳本進(jìn)行的測(cè)試表明,相較于在輸出質(zhì)量相同的非 GPU 系統(tǒng)上運(yùn)行相同的測(cè)試,速度提升了 4 倍。這一點(diǎn)尤為重要,因?yàn)閿?shù)據(jù)科學(xué)家通常會(huì)多次運(yùn)行 XGBoost,以便調(diào)整參數(shù)并找到出色的準(zhǔn)確性。
審核編輯:湯梓紅
-
NVIDIA
+關(guān)注
關(guān)注
14文章
5076瀏覽量
103719 -
算法
+關(guān)注
關(guān)注
23文章
4630瀏覽量
93352 -
隨機(jī)森林
+關(guān)注
關(guān)注
1文章
22瀏覽量
4286
原文標(biāo)題:NVIDIA 大講堂 | 什么是 隨機(jī)森林?
文章出處:【微信號(hào):NVIDIA_China,微信公眾號(hào):NVIDIA英偉達(dá)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論