雖然GBDT和隨機森林都是決策樹的組合算法,但它們的訓練過程卻大不相同。?
GBDT訓練是壹次壹棵樹,壹棵樹接壹棵樹(串行),所以和隨機森林多棵樹並行計算相比,訓練時間會更長。?
在GBDT,相對於隨機森林(隨機森林中的樹木可以修剪不多),壹般選擇較淺的樹木(深度較小),會減少操作時間。?
隨機森林不太可能過擬合,森林裏的樹越多,過擬合的可能性越小。用統計學的語言來說,就是說包含的樹越多,預測結果的方差就會越小(預測結果經過多次後會更加穩定)。然而,GBDT恰恰相反。包含預測(即叠代次數越多)的樹往往會過度擬合。在統計語言中,GBDT叠代的增加減少了偏差(預測結果和訓練數據標簽之間的差異)。(離差和方差這兩個概念是不同的概念,見下圖)?
隨機森林參數相對更容易調試,因為隨著涉及的決策樹數量的增加,預測效果壹般單調地向好的方向變化。然而,GBDT不同。剛開始的時候,預測性能會隨著樹數的增加而變好,但是到了壹定程度之後,會隨著樹數的增加而變差。?
隨機森林算法
隨機森林是壹種監督學習算法。從它的名字可以看出,它創建了壹個森林,並以某種方式使其隨機。構造的“森林”是決策樹的集成,大部分時間是通過bagging方法訓練的。Bagging方法,即bootstrap aggregating,采用隨機選擇的訓練數據,然後構造分類器,最後將學習到的模型進行組合,以增加整體效果。
簡而言之,隨機森林建立了幾個決策樹,並將它們合並在壹起,以獲得更準確和穩定的預測。隨機森林的壹個優點是,它既可以用於分類問題,也可以用於回歸問題,而這恰恰構成了大多數機器學習系統需要面對的問題。
除了少數例外,隨機森林分類器使用所有決策樹分類器和bagging分類器的超級參數來控制整體結構。不用先構建壹個bagging分類器,然後傳遞給決策樹分類器,可以直接使用random forest分類器類,這樣更方便,對決策樹也更優化。需要註意的是,回歸問題也有壹個隨機森林回歸量與之對應。
隨機森林算法中樹木的生長會給模型帶來額外的隨機性。與決策樹不同的是,每個節點被劃分成最佳特征,使誤差最小。在隨機森林中,我們選擇隨機選擇的特征來構建最佳分割。因此,當妳在隨機森林中時,只考慮用於劃分節點的隨機子集,妳甚至可以通過在每個特征上使用隨機閾值來使樹更加隨機,而不是像正常的決策樹那樣尋找最佳閾值。這種工藝生產的品種繁多,通常可以獲得更好的型號。
隨機森林算法特征對機器學習算法的重要性
隨機森林算法的另壹個優點是,它可以很容易地測量每個特征對預測的相對重要性。Sklearn為此提供了壹個很好的工具,它通過查看使用該特征後森林中所有樹木的雜質減少了多少來衡量該特征的重要性。它會在訓練後自動計算每個特征的得分,並將結果標準化,使所有特征的重要性之和等於1。
決策樹和隨機森林的區別
隨機森林是壹組決策樹,但還是有壹些區別。
如果將帶有特征和標簽的訓練數據集輸入到決策樹中,它將制定壹些規則集進行預測。
例如,如果妳想預測某人是否會點擊壹個在線廣告,妳可以收集該廣告的過去點擊者以及可以描述其決策的特征。壹旦妳把這些特征和標簽放進決策樹,它就會生成節點和壹些規則,然後妳就可以預測廣告是否會被點擊。但是當決策樹通常通過計算信息增益和基尼指數來生成節點和規則時,相比之下,隨機森林是隨機的。
另壹個區別是“深度”決策樹經常會遇到過擬合問題。但是,隨機森林可以通過創建隨機特征子集並使用這些子集來構建更小的樹,然後形成子樹來構建。這種方法在大多數情況下可以防止過擬合。需要註意的是,這樣也會拖慢計算速度,而且取決於隨機森林中構造的樹的數量。
機器學習算法中隨機森林算法的重要超參數
隨機森林中的參數要麽用於增強模型的預測能力,要麽使模型更快。下面將討論sklearns內置的隨機森林函數中的超參數。
提高模型預測的準確性
首先,“n_estimators”超參數表示在最大投票或平均預測之前由算法建立的樹的數量。壹般來說,樹越多,性能越好,預測越穩定,但也會拖慢計算速度。
另壹個重要的超參數是“max_features”,它表示壹個隨機森林在單棵樹中可以擁有的最大特征數。Sklearn提供了幾個選項,在它們的文檔中有描述:
http://sci kit-learn . org/stable/modules/generated/sk learn . ensemble . randomforestclassifier . html
最後壹個重要的超參數是“min_sample_leaf”,顧名思義,它決定了葉子的數量。
加速模型計算。
“n_jobs”參數表示引擎允許的處理器數量。如果值為1,則只能使用壹個處理器。值-1表示沒有限制。
“random_state”表示隨機數種子,保證模型的輸出是可復制的。當它被賦予指定值並且模型訓練具有相同的參數和相同的訓練數據時,模型將總是產生相同的結果。
最後是“oob_score”(也叫oob抽樣),這是壹種隨機森林交叉驗證方法。在這次采樣中,大約有三分之壹的數據不是用於模型訓練,而是用於評估模型的性能。這些樣本稱為袋外樣本。它與壹取壹交叉驗證方法非常相似,但幾乎沒有額外的計算負擔。
優勢和劣勢分析
正如我之前提到的,隨機森林的壹個優點是它可以用於回歸和分類任務,並且很容易看到模型輸入特征的相對重要性。
隨機森林也被認為是壹種非常方便和易於使用的算法,因為它是默認的超參數,通常會產生良好的預測結果。超參數的數量沒有那麽多,它們所代表的意義直觀易懂。
機器學習的壹個重要問題是過擬合,但大多數情況下對於隨機森林分類器來說就沒那麽容易了。因為只要森林中有足夠多的樹,分類器就不會過度擬合模型。
隨機森林的主要局限是使用大量的樹會使算法變慢,無法進行實時預測。壹般來說,這些算法訓練速度快,預測慢。更準確的預測需要更多的樹,這將導致模型更慢。在大多數現實應用中,隨機森林算法足夠快,但必然會遇到高實時性要求,所以只能首選其他方法。
當然,隨機森林是壹個預測性的建模工具,而不是描述性的工具。換句話說,如果您正在尋找數據中關系的描述,建議首選其他方法。
應用領域
隨機森林算法可用於許多不同的領域,如銀行、股票市場、醫學和電子商務。在銀行領域,通常用於檢測比普通人更頻繁使用銀行服務的客戶,及時償還債務。同時,它還將被用於檢測想要詐騙銀行的客戶。在金融領域,可以用來預測股票未來的走勢。在醫療保健領域,它可以用於識別藥物成分的正確組合,並分析患者的病史以識別疾病。此外,在電子商務領域,可以使用隨機森林來確定客戶是否真的喜歡某個產品。