2012-10-28 62 views
2

目前我有兩個類的分類問題。我想要做的是給予一羣候選人,找出誰更有可能成爲1級。問題是1級非常罕見(約1%),我猜想我的預測很不準確。 爲了訓練數據集,我可以抽樣半班1和半班0嗎?這將改變先前的分佈,但我不知道先前的分佈是否影響分類結果?事先分配在分類中是否有問題?

+3

檢查這些:http://florianhartl.com/thoughts-on-machine-learning-dealing-with-skewed-classes.html或http://cdn.intechopen.com/pdfs/10691/InTech-Data_mining_with_skewed_data。 pdf – greeness

+1

這主要取決於您正在使用哪種分類方法。這聽起來好像你在談論「平衡」與「不平衡」數據集,而不是「先前分佈」,這是另一回事。 – Qnan

回答

0

如果您不得不從一個組中選擇一個,那麼之前在類上的分佈將不會影響,因爲它對該組中的所有成員都是不變的。如果您必須依次查看每個人並獨立決定他們是第一類還是第二類,則事先將會改變決策,具體取決於您選擇進行分類的方法。我建議你儘可能多地掌握少數類的例子,但要小心,當盲目地訓練50-50分類給分類器時,可能會使它隱含地適合一個假設這是測試時分佈的模型。

2

確實,非常不平衡的數據集可能會導致分類問題。因爲通過拖欠大多數0級,你可以得到你的錯誤率已經非常低。

有一些解決方法可能或可能不適用於您的特定問題,例如給予兩個類同等的權重(因此加權罕見類的實例更強),過度抽樣罕見類(即多次學習每個實例),產生罕見物體的輕微變化以恢復平衡等。SMOTE等等。

您確實應該抓取一些分類或機器學習書,並檢查索引中的「不平衡分類」或「不平衡分類」。如果這本書有什麼好處的話,會討論這個問題。 (我只是假設你不知道他們使用的術語。)

0

均勻採樣你的兩個類不會改變假定的先驗,除非你的分類算法根據訓練數據計算(並使用)了先驗。你說你的問題是「給了一羣候選人,找出誰更有可能是1級」。我讀這意味着你想要確定哪一個觀察最可能屬於第1類。爲此,你需要選擇使$ p(c_1 | x_i)$最大化的觀測值$ x_i $。使用貝葉斯定理,這成爲:

$$ P(C_1 | X_I)= \壓裂{P(X_I | c_1)爲P(C -1)} {P(X_I)} $$

你可以忽略上述等式中的$ p(c_1)$,因爲它是一個常數。但是,計算分母仍然涉及使用先驗概率。由於您的問題實際上比分類問題更多的是目標檢測問題,因此檢測低概率目標的另一種方法是採用兩個類別的似然比:

$$ \ Lambda = \ frac {p(要選擇哪個候選人最有可能屬於第1類,請選擇最高值爲$ \ Lambda $的候選人。如果你的兩個類用多元高斯分佈描述,你可以用它的自然對數代替$ \ Lambda $,從而得到一個更簡單的二次檢測器。如果您進一步假定目標和背景具有相同的協方差矩陣,則會得出線性判別式(http://en.wikipedia.org/wiki/Linear_discriminant_analysis)。

0

您可能想要考慮貝葉斯效用理論來重新加權不同類型的錯誤的成本,以擺脫先驗者決定的主導性問題。

設A爲99%的概率等級,B等於1%的等級。

如果我們只是說所有的錯誤產生相同的成本(負效用),那麼 有可能最佳決策方法是總是聲明「A」。許多分類算法(隱含地)假設這一點。

相反,如果我們聲明,宣佈「B」的時候,其實,實例 爲「A」的成本比相對誤差的成本,那麼決策邏輯 變得更大,在一定意義上,對功能上細微的差異更敏感。

這種情況經常在故障檢測出現 - 在被監控 系統將是罕見的錯,但你要確保,如果我們看到一個指向 錯誤條件的任何數據,動作需要採取(即使它只是審查數據)。