2016-04-12 90 views
0

我正在使用隨機森林來做分類問題。響應有5個類。所有課程均等分佈在訓練集中,但在測試數據集中,絕大多數課程中有兩個課程。是什麼讓它具有挑戰性,在驗證集中,我可以看到這兩個類別的準確率也是最差的。所以我的問題是,是否有辦法提高這兩個特定類別的分類準確性,以改善我的整體預測?機器學習 - 如何改進某些類別的分類

任何輸入將不勝感激!

回答

0

一個簡單的方法是改變目標函數,以便在某些類錯誤分類時產生更多/更少的損失。例如,假設的預測都標有Y和以T地面實況(兩種載體),那麼通常的損失函數只是:

total_loss(Y,T) == \sum_n loss(y_n, t_n) 

以上,則判爲錯誤分類爲所有類是相同的,其可以修改爲:

total_loss(Y,T) == \sum_n C(t_n) * loss(y_n, t_n) 

其中C(t_n)表示分配給類別t_n的權重。

然後,您可以調整C以最大化開發集的性能,並希望看到測試集的改進(假設開發集的標籤分佈與測試集的標籤分佈相似)。

如果聽起來像是正確的方法,您可能需要閱讀決策理論(Bishop PRML書中的第1.5節)和成本敏感的學習(herehere)。

+0

感謝您的回覆!我認爲這是有道理的,但我如何用R中的randomForest包實現這一點? –

+0

我不是R專家。但是,請參閱此SE問題和答案:http://stats.stackexchange.com/questions/46963/how-to-control-the-cost-of-misclassification-in-random-forests。 個人而言,我會從第二個答案的解決方案(1)開始 - 「故意不平衡[數據集]」。 –