2013-07-28 65 views
6

我意識到相關問題Positives/negatives proportion in train set提出,對於Rocchio算法,正負比例爲1:1的正負比例有利。用於訓練基於隨機森林的二元分類器的正負比例訓練實例

但是,這個問題不同於相關問題,因爲它涉及隨機森林模型,也有以下兩種方式。

1)我有大量的訓練數據可供使用,使用更多訓練樣例的主要瓶頸是訓練迭代時間。也就是說,我寧願不要花一個多小時的時間來訓練一個排行榜,因爲我想快速迭代。

2)實際上,分類器可能會看到每4個反例的1個正面例子。

在這種情況下,我應該使用比正面例子更多的否定例子,還是等於正數和負數例子?

回答

3

這可能看起來像一個微不足道的答案,但我可以建議的最好的事情是嘗試一小部分數據(小到足以使算法快速訓練),並觀察使用1-1時的準確性,1-2,1-3等...

當您逐漸增加每個比率的示例總量並查看性能如何響應時,繪製結果圖。很多時候,你會發現數據的一小部分非常接近整個數據集的訓練表現,在這種情況下,你可以對你的問題作出明智的決定。

希望有所幫助。

4

請參見標題爲從這裏隨機森林的官方文檔「平衡預測誤差」:https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#balance

我粗體字標識的某些部分。

總之,這似乎表明,你的訓練和測試數據應該要麼

  1. 反映1:4的比例的類,您的真實數據將有 或
  2. 你可以有一個1:1種混合,但你應該仔細調整每類 權重,如下面所示,直到上 你想要的(小)類的OOB錯誤率降低

。希望幫助秒。

在一些數據集中,類之間的預測誤差非常不均衡,其中 。有些課程的預測誤差較低,其他課程的預測誤差較高。 這通常發生在一個類比另一個類大得多時。然後, 隨機森林試圖最大限度地減少總體錯誤率,這將使大類中的 錯誤率保持較低,同時讓較小的類 具有更大的錯誤率。例如,在藥物發現中,給定分子被分類爲活性或不活性,活性物質的數量往往是10比1,高達100比1。在這些 的情況下,有趣的錯誤率班級(活動人員)將爲 非常高。

用戶可以通過輸出各個類的錯誤率來檢測不平衡。爲了說明20維的合成數據,使用了 。第一類出現在一個球形高斯中,第二類出現在另一球形高斯上。產生1000個1級和50個2級的訓練集合 ,共同 ,具有5000個1級和250個2級的測試集合。

500種樹木該數據森林的最終輸出是:

500 3.7 0.0 78.4

有一個低的總測試集誤差(3.73%),但第2類有超過四分之三其案件的 分類錯誤。

可以通過爲類別設置不同的權重來完成誤差平衡。

級別給定的權重越高,錯誤率越高,其錯誤率越低。一個指導什麼樣的權重是讓他們與階級人口成反比。因此,在第1級上設置權重爲1 ,並在第2級上設置權重爲20,然後再次運行。輸出是:

500 12.1 12.7 0.0

20的2類的重太高。將它設置爲10,然後再試一次, 獲得:

500 4.3 4.2 5.2

這是非常接近平衡。如果想要精確的餘額,那麼等級2的權重可能會稍微增加一些。

請注意,在獲得這種平衡時,整體錯誤率上升。 這是通常的結果 - 要獲得更好的平衡,總體錯誤率將提高。

相關問題