隨機森林 你想到的,都在這了

2021-09-25 01:41:27 字數 2124 閱讀 2245

2. 隨機森林分類效果的影響因素

3. 隨機森林有什麼優缺點

4. 隨機森林如何處理缺失值?

5. 什麼是oob?隨機森林中oob是如何計算的,它有什麼優缺點?

6. 隨機森林的過擬合問題

7. **實現

bagging是bootstrap aggregating。思想就是從總體樣本當中隨機取一部分樣本進行訓練,通過多次這樣的結果,進行投票獲取平均值作為結果輸出,這就極大可能的避免了不好的樣本資料,從而提高準確度。因為有些是不好的樣本,相當於雜訊,模型學入雜訊後會使準確度不高。

舉個例子

假設有1000個樣本,如果按照以前的思維,是直接把這1000個樣本拿來訓練,但現在不一樣,先抽取800個樣本來進行訓練,假如雜訊點是這800個樣本以外的樣本點,就很有效的避開了。重複以上操作,提高模型輸出的平均值。

random forest(隨機森林)是一種基於樹模型的bagging的優化版本,一棵樹的生成肯定還是不如多棵樹,因此就有了隨機森林,解決決策樹泛化能力弱的特點。(可以理解成三個臭皮匠頂過諸葛亮)

而同一批資料,用同樣的演算法只能產生一棵樹,這時bagging策略可以幫助我們產生不同的資料集。bagging策略**於bootstrap aggregation:從樣本集(假設樣本集n個資料點)中重取樣選出nb個樣本(有放回的取樣,樣本資料點個數仍然不變為n),在所有樣本上,對這n個樣本建立分類器(id3\c4.5\cart\svm\logistic),重複以上兩步m次,獲得m個分類器,最後根據這m個分類器的投票結果,決定資料屬於哪一類。

每棵樹的按照如下規則生成:

如果訓練集大小為n,對於每棵樹而言,隨機且有放回地從訓練集中的抽取n個訓練樣本,作為該樹的訓練集;

如果每個樣本的特徵維度為m,指定乙個常數m<

每棵樹都盡最大程度的生長,並且沒有剪枝過程。

一開始我們提到的隨機森林中的「隨機」就是指的這裡的兩個隨機性。兩個隨機性的引入對隨機森林的分類效能至關重要。由於它們的引入,使得隨機森林不容易陷入過擬合,並且具有很好得抗噪能力(比如:對預設值不敏感)。

總的來說就是隨機選擇樣本數,隨機選取特徵,隨機選擇分類器,建立多顆這樣的決策樹,然後通過這幾課決策樹來投票,決定資料屬於哪一類(投票機制有一票否決制、少數服從多數、加權多數)

減小特徵選擇個數m,樹的相關性和分類能力也會相應的降低;增大m,兩者也會隨之增大。所以關鍵問題是如何選擇最優的m(或者是範圍),這也是隨機森林唯一的乙個引數。

優點:

缺點:

根據隨機森林建立和訓練的特點,隨機森林對缺失值的處理還是比較特殊的。

其實,該缺失值填補過程類似於推薦系統中採用協同過濾進行評分**,先計算缺失特徵與其他特徵的相似度,再加權得到缺失值的估計,而隨機森林中計算相似度的方法(資料在決策樹中一步一步分類的路徑)乃其獨特之處。

oob

上面我們提到,構建隨機森林的關鍵問題就是如何選擇最優的m,要解決這個問題主要依據計算袋外錯誤率oob error(out-of-bag error)。

bagging方法中bootstrap每次約有1/3的樣本不會出現在bootstrap所採集的樣本集合中,當然也就沒有參加決策樹的建立,把這1/3的資料稱為袋外資料oob(out of bag),它可以用於取代測試集誤差估計方法。

袋外資料(oob)誤差的計算方法如下:

優缺點

這已經經過證明是無偏估計的,所以在隨機森林演算法中不需要再進行交叉驗證或者單獨的測試集來獲取測試集誤差的無偏估計。

你已經建了乙個有10000棵樹的隨機森林模型。在得到0.00的訓練誤差後,你非常高興。但是,驗證錯誤是34.23。到底是怎麼回事?你還沒有訓練好你的模型嗎?

**答:**該模型過度擬合,因此,為了避免這些情況,我們要用交叉驗證來調整樹的數量。

github:

【機器學習通俗易懂系列文章】

關於達夢認證,你想知道的都在這裡了

達夢認證是達夢憑藉多年資訊科技人才培養經驗及對行業發展的深刻理解,助力開拓相關技術人員職業發展生涯 滿足企業中日益增長的資料安全人才需求而推出的層次化認證體系。它分為達夢工程師認證和達夢講師認證。達夢認證是達夢憑藉多年資訊科技人才培養經驗及對行業發展的深刻理解,助力開拓相關技術人員職業發展生涯 滿足...

你想知道關於引用都在這兒了 分類以及解引用

資料型別分為基本資料型別和引用資料型別 變數有3種形態 1 區域性變數 形參 存放在棧幀中 棧 2 屬性 存放在物件中 堆 3 靜態屬性 存放在類 方法區 引用分類 介面型別,類型別 陣列型別 類型別的引用 三種 1 類型別的引用 null 類型別的引用 new 類 2 類型別的引用 該類的物件 類...

關於 MySQL 慢日誌,你想知道的都在這

mysql 的慢查詢日誌是 mysql 提供的一種日誌記錄,它用來記錄在 mysql 中響應時間超過閥值的語句,具體指執行時間超過long query time值的 sql,則會被記錄到慢查詢日誌中。long query time的預設值為10,意思是執行10s以上的語句。預設情況下,mysql 資...