2011-07-26 82 views
1

我有一個包含20個類的數據集,它具有非常不均勻的分佈。 R中是否有任何功能允許我們平衡數據集(也許加權)?如何在R中的數據集中過採樣實例

我想與Weka一起使用平衡數據進行分類。由於我的課程分佈有偏差,如果沒有單獨的大多數課程,我希望能夠取得更好的成績。

我試圖使用SMOTE過濾器和Resample過濾器,但他們不完全做我想要的。 我不希望任何實例被刪除,重複是好的。

+0

不知道誰投下來,但我認爲這是因爲需要更多的信息來回答你的問題。嘗試str()或dput()以獲取數據,以便讓人們瞭解您需要處理的是什麼。 – nzcoops

+0

此外,您的問題可能更適合http://stats.stackexchange.com –

回答

1

我認爲您的術語存在誤解。你的問題標題是指抽樣,但問題文本涉及加權。

澄清:

取樣,你要麼擁有比原來設定較少,相同或更多的實例;樣本的唯一成員資格可以是原始集合的嚴格子集,也可以與原始集合相同(帶有替換 - 即重複)。

通過加權,您可以簡單地調整可用於某種進一步目的(例如採樣,機器學習)的權重,以解決或施加相對於統一加權的某種(即時)平衡。

我相信你指的是加權,但同樣的答案應該適用於這兩種情況。如果觀察的總#是N和每個類的頻率是20長矢量freq(例如,在1類項的個數是freq[1]*N)的一個元素,則簡單地使用的1/freq權重向量來歸一化權重。您可以通過一些常數來縮放它,例如N,雖然沒關係。如果任何頻率爲0或與其非常接近,則可以使用平滑計數向量(例如Good-Turing平滑)來解決此問題。

因此,每組將具有相同比例的總重量。

+0

這不是一種批評,因爲OP太模糊了,但我會在一些統計學習環境中添加(如裝袋,隨機森林)類似的效果*有時通過抽樣獲得。例如,對每個類採取均衡的子樣本(用或不用替換)來構建森林中的每棵樹。 – joran

+0

這是正確的;它也延伸到幾乎所有的統計學習方法(畢竟,訓練集是一個樣本;))。如果OP已經允許使用替代採樣會更容易些,但沒有實例都將被丟棄,所以人們需要過重的樣品(用於建模)或過樣品。在任何一種情況下,加權計劃似乎都是必要的。 – Iterator