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