tft每日頭條

 > 生活

 > 随機森林正确率

随機森林正确率

生活 更新时间:2025-02-10 23:58:02

【前言】:文章來自微信公衆号【機器學習煉丹術】

全文3155字,預計閱讀時間10min


文章目錄:

  • 1 随機森林
  • 2 Bagging
  • 3 神秘的63.2%
  • 4 随機森林 vs bagging
  • 5 投票策略
  • 6 随機森林的特點
    • 6.1 優點
    • 6.2 bias 與 variance
    • 6.3 随機森林降低偏差證明

為什麼現在還要學習随機森林?

随機森林中仍有兩個未解之謎(對我來說)。随機森林采用的bagging思想中怎麼得到的62.3% 以及 随機森林和bagging的方法是否有區别。

随機森林(Random Forest)就是通過集成學習的思想将多棵決策樹集成的一種算法。基本單元是決策樹。随機森林算法的提出也是為了改善決策樹容易存在過拟合的情況。

1 随機森林

習慣上,我們将衆多分類器(SVM、Logistic回歸、決策樹等)所組成的“總的分類器”,叫做随機森林。随機森林有兩個關鍵詞,一個是“随機”,一個是“森林”。森林就是成百上千棵樹,體現了集成的思想,随機将會在下面總結到。

2 bagging

Bagging,其實就是bootstrap aggregating的縮寫, 兩者是等價的,其核心就是有放回抽樣

【bagging具體步驟】

  1. 從大小為n的樣本集中有放回地重采樣選出n個樣本;(沒錯就是n個樣本抽取n個)
  2. 在所有屬性上,對這n個樣本建立分類器(ID3信息增益、C4.5信息增益率、CART基尼系數、SVM、Logistic回歸等)
  3. 重複以上兩步m次,即獲得了m個分類器;
  4. 将預測數據放在這m個分類器上,最後根據這m個分類器的投票結果,決定數據屬于哪一類。
3 神秘的63.2%

一般被大家知曉的是:随機森林中每一次采樣的比例是63.2%。 這個比例到底是怎麼确定的呢?

在某手的面試中,我被問到了這個相關的問題,奈何學藝不精,哎。後來苦苦研究15分鐘,終于得到答案,現在分享給大家。


bagging的最初的說法其實是:n個樣本從中有放回抽樣n次,這種條件下,勢必會有抽取到相同樣本的可能性,那麼抽取到不同樣本的期望值是多少呢?其實大家心裡可能會有答案了,沒錯就是0.632n

我們假設表示第k次抽樣抽取到不同樣本的概率。那麼則表示第k-1次抽樣抽取到不同樣本的概率。

  • 第k-1次抽樣到不同樣本的概率:
  • 第k-1次抽樣時,有個樣本還沒有被抽取
  • 第k次抽樣時,還有的樣本沒有抽取
  • 因此
  • ,第一次抽樣的數據一定不會重複

因此k次放回抽樣的不同樣本的期望值為:

利用等比數列的性質,得到:

當n足夠大,并且k=n的情況下,上面的公式等于

所以證明完畢,每一次bagging采樣重複抽取n次其實隻有63.2%的樣本會被采樣到。


4 随機森林 vs bagging

随機森林(Random Forest)在Bagging基礎上進行了修改。 具體步驟可以總結如下:

  1. 從訓練樣本集中采用Bootstrap的方法有放回地重采樣選出n個樣本,即每棵樹的訓練數據集都是不同的 ,裡面包含重複的訓練樣本(這意味着随機森林并不是按照bagging的0.632比例采樣 );
  2. 從所有屬性中有選擇地選出K個屬性,選擇最佳屬性作為節點建立CART決策樹;
  3. 重複以上步驟m次,即建立了m棵CART決策樹
  4. 這m個CART形成随機森林,通過投票表決分類結果,決定數據是屬于哪一類。

随機森林(Random Forest)的随機性主要體現在兩方面,一方面是樣本随機,另一方面是屬性随機。樣本随機的原因是如果樣本不随機,每棵樹的訓練數據都一樣,那麼最終訓練出的分類結果也是完全一樣的。

5 投票策略
  1. 少數服從多數
  2. 一票否決
  3. 聽說還有貝葉斯平均的方法。但是我沒有過多了解。一般還是用少數服從多數的吧。
6 随機森林的特點6.1 優點
  1. 在當前的算法中,具有極好的準确率
  2. 能夠運行在大數據上
  3. 能夠處理具有高維特征的輸入樣本,不需要降維
  4. 能夠計算各個特征的重要度
  5. 能夠防止過拟合
  6. 其實在一些大數據競賽中,随機森林也是我第一個會嘗試的模型哦~
6.2 bias 與 variance

說到機器學習模型的誤差,主要就是bias和variance。

  • Bias:如果一個模型的訓練錯誤大,然後驗證錯誤和訓練錯誤都很大,那麼這個模型就是高bias。可能是因為欠拟合,也可能是因為模型是弱分類器。
  • Variance:模型的訓練錯誤小,但是驗證錯誤遠大于訓練錯誤,那麼這個模型就是高Variance,或者說它是過拟合。

随機森林正确率(小白學ML随機森林)1

這個圖中,左上角是低偏差低方差的,可以看到所有的預測值,都會落在靶心,完美模型;

右上角是高偏差,可以看到,雖然整體數據預測的好像都在中心,但是波動很大。

【高偏差vs高方差】

在機器學習中,因為偏差和方差不能兼顧,所以我們一般會選擇高偏差、低方差的左下角的模型。穩定性是最重要的,甯可所有的樣本都80%正确率,也不要部分樣本100%、部分50%的正确率。個人感覺,穩定性是學習到東西的體現,高方差模型與随機蒙的有什麼區别?

6.3 随機森林降低偏差證明

上面的可能有些抽象,這裡用RandomForest(RF)來作為例子:随機森林是bagging的集成模型,這裡:

  • RF(x)表示随機森林對樣本x的預測值;
  • B表示總共有B棵樹;
  • 表示第i棵樹所使用的訓練集,是使用bagging的方法,從所有訓練集中進行行采樣和列采樣得到的子數據集。

這裡所有的,都是從所有數據集中随機采樣的,所以可以理解為都是服從相同分布的。所以不斷增加B的數量,增加随機森林中樹的數量,是不會減小模型的偏差的。【個人感覺,是因為不管訓練再多的樹,其實就那麼多數據,怎麼訓練都不會減少,這一點比較好理解】

【RF是如何降低偏差的?】 直觀上,使用多棵樹和bagging,是可以增加模型的穩定性的。怎麼證明的?


我們需要計算

假設不同樹的之間的相關系數為,然後每棵樹的方差都是.

先複習一下兩個随機變量相加的方差如何表示:

  • Cov(X,Y)表示X和Y的協方差。協方差和相關系數不一樣哦,要除以X和Y的标準差:

下面轉成B個相關變量的方差計算,是矩陣的形式:

随機森林正确率(小白學ML随機森林)2

很好推導的,可以試一試。

這樣可以看出來了,RF的樹的數量越多,RF方差的第二項會不斷減小,但是第一項不變。也就是說,第一項就是RF模型偏差的下極限了。

【總結】

  • 增加決策樹的數量B,偏差不變;方差減小;
  • 增加決策樹深度,偏差減小;減小,增加;
  • 增加bagging采樣比例,偏差減小;增加,增加;

【bagging vs boost】 之前的文章也提到過了boost算法。

GBDT中,在某種情況下,是不斷訓練之前模型的殘差,來達到降低bias的效果。雖然也是集成模型,但是可以想到,每一個GBDT中的樹,所學習的數據的分布都是不同的,這意味着在GBDT模型的方差會随着決策樹的數量增多,不斷地增加。

  • bagging的目的:降低方差;
  • boost的目的:降低偏差

- END -

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved