日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在envi做随机森林_【模型篇】随机森林模型(Random Forest)

發布時間:2023/12/9 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在envi做随机森林_【模型篇】随机森林模型(Random Forest) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

RF原理介紹

RF如何工作

建立多個決策樹并將他們融合起來得到一個更加準確和穩定的模型,是bagging 思想和隨機選擇特征的結合。隨機森林構造了多個決策樹,當需要對某個樣本進行預測時,統計森林中的每棵樹對該樣本的預測結果,然后通過投票法從這些預測結果中選出最后的結果。

隨機體現在兩個方面,一個是隨機取特征,另一個是隨機取樣本,讓森林中的每棵樹既有相似性又有差異性。

森林中每棵樹按照如下方式生長:

  • 如果過訓練樣本中有N個樣本,那么從這N個樣本中有放回的抽樣N次,將得到的樣本用于建樹
  • 設M為輸入樣本的特征數,對于每個節點分裂時,我們先從這M個特征中選擇m(m<<M)個特征,然后再在這m個特征中選擇最佳的分裂點進行分裂
  • 每棵樹都盡可能的生長,沒有剪枝
  • m的值越大,上述1中的相關性越高,2中的分類能力也越強,所以m在RF中是一個非常重要的參數。

    隨機森林的預測錯誤率取決于以下兩點:

  • 森林中任意兩棵樹之間的相關性,相關性越高,錯誤率越大
  • 每棵樹的分類能力,單棵樹的分類能力越強,那么整個森林的分類能力也越強
  • And of course Random Forest is a predictive modeling tool and not a descriptive tool. That means, if you are looking for a description of the relationships in your data, other approaches would be preferred.

    RF的特點

    優點(來自原論文的總結):

  • 準確率高運行起來高效(樹之間可以并行訓練)
  • 不用降維也可以處理高維特征
  • 給出了度量特征重要性的方法
  • 建樹過程中內部使用無偏估計
  • 有很好的處理缺失值的算法
  • 對于類別不平衡數據能夠平衡誤差
  • 能夠度量樣本之間的相似性,并基于這種相似性對于樣本進行聚類和篩選異常值
  • 提出了一種衡量特征交互性的經驗方法(數據中存在冗余特征時能很好的處理)
  • 可以被擴展到無監督學習
  • 產生的模型可以被應用到其他數據上
  • Prototypes are computed that give information about the relation between the variables and the classification.
  • 9-11有點假大空,沒深入研究了。上述優點都能在以下的知識點中找出原因。

    缺點

  • 黑盒,不可解釋性強,多個隨機導致了非常好的效果
  • 在某些噪聲較大的分類和回歸問題上會過擬合
  • 模型會非常大,越準確意味著越多的數
  • 關于OOB和OOB Error

    oob(out of bag)

    對于一個具有m個樣本的訓練集,我們有放回的抽取m個樣本進行訓練,那么每個樣本不被抽到的概率為

    ,當m越來越大時,p趨于1/3,也就是森林形成后的過程中有三分之一的數據是沒有被用到的。那么這三分之一的數據可以當做測試集來計算模型的誤差率,我們將這些沒用有用到的數據經過森林預測得到類別,在于其真實值進行比較,求出錯誤率即可。這樣就避免了使用交叉驗證或者使用其他的測試集來計算泛化誤差率。這樣計算分類錯誤率的方法可以被證明是無偏的。

    OOB Error在訓練過程中可以不斷的進行計算袋外誤差,來判斷是否要繼續生成新的樹。(因為單棵樹是不剪枝的,無法將OOB Error應用于剪枝,這是我個人理解也不知道對不對)

    對特征重要性的評判(Variable importance)

    方法1 : permute variable

    根據袋外誤差率,對于特征m,首先用訓練好的隨機森林在對oob 數據D進行預測并求出誤差率Error1。然后對數據D中每個樣本的特征m上加上隨機噪音,然后再將m特征上帶噪音的樣本送入訓練好的RF模型中訓練得到新的誤差率Error2,則Error2 - Error1越大說明該特征越重要。直觀上,加一點噪音就極大的影響了準確定那么該特征肯定重要。

    方法2 : Gini gain

    Gini系數法,RF中的每棵樹中生成時都會按照某個節點來分裂,分裂的依據可以是分裂前后Gini系數的減少度,我們將RF的每棵樹中按照特征m進行分裂的Gini系數減少量的總和作為判斷特征m重要性的標準

    特征間的交互性(nteractions)

    判斷兩個變量間的交互性可以按照如下的方法:

    如果棵樹中,樣本按照某個特征m分裂后的樣本,在特征k上更容易分裂或者更不容易分裂,那么成m與k具有一定的交互性

    樣本間的近似性 (proximity)

    來表示樣本i和j之間的相似性, 表示在森林中樣本i和樣本j被分到同一個葉子下的次數,N為森林中樹的棵數,從而可以得到一個相似度矩陣(prox matrix),這個矩陣可以做 clustering 和 outlier location

    近似性應用: 找出異常點

    假設當前樣本n的class 為j,則樣本n與其同class 的樣本之間的距離為:

    其中prox(n,k) 就是相似矩陣中的值

    將異常值的判定標準定為,:

    nsample為同類樣本的個數,上式值越大說明越可能是異常值。

    此外還可以用作聚類

    缺失值的填補(Missing value replacement)

    方法一(na.roughfix)簡單粗暴,對于訓練集,同一個class下的數據,如果是分類變量缺失,用眾數補上,如果是連續型變量缺失,用中位數補。

    方法二(rfImpute)。他只能補訓練集中的缺失值。是先用na.roughfix補上缺失值,然后構建森林并計算proximity matrix,再回頭看缺失值,如果是分類變量,則用沒有缺失的觀測實例的proximity中的權重進行投票。如果是連續型變量,則用proximity矩陣進行加權平均的方法補缺失值。然后迭代4-5次。這個補缺失值的思想和Kmeans有些類似。

    平衡預測誤差(Balancing prediction error)

    對于不平衡數據的訓練和預測,不能只關注總體的誤差率,比如測試集中class A 99個,classB1個,現在模型對著一百數據的預測中,classA預測全對,classB全錯,總誤差率為1%,但是在classB上的誤差率是100%,這對于正負樣本失衡的數據是非常不友好的(比如風險欺詐問題)。

    解決方法如下:

    對比重少的類別加較大的權重,對比重大的類別加小的權重

    QA:為什么要有放回抽樣

  • 如果不放回抽樣,每棵樹用的樣本完全不同,結果是有偏的,基學習器之間的相似性小,投票結果差,模型偏差大
  • 如果不抽樣,基學習器用所有樣本,那么模型的泛化能力弱,基學習器之前相似性太大差異性太小,模型的偏差大
  • 為什么不隨機抽樣? 自助采樣首先可以產生一部分袋外樣本,可以用來做袋外估計,另一方自助采樣一定程度上改變了每個基學習器的所用數據的樣本分布,一定程度上引入了噪音,增加了模型的泛化能力
  • 參考資料:

    Random forests - classification description

    總結

    以上是生活随笔為你收集整理的在envi做随机森林_【模型篇】随机森林模型(Random Forest)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。