2016-04-12 11 views
0

私はランダムなフォレストを使用して分類の問題を抱えています。レスポンスには5つのクラスがあります。すべてのクラスはトレーニングセットに均等に分散されていますが、テストデータセットでは2つのクラスが大部分を占めています。それが挑戦的なのは、検証セットでは、これらの2つのクラスも最悪の精度を持つことがわかります。だから私の質問は、私の全体的な予測を改善するために、これらの2つのクラスの分類精度を向上させる方法があるかどうかです。機械学習 - 特定のクラスの分類を改善する方法

入力があれば幸いです!

答えて

0

簡単な方法の1つは、目的の機能を変更して、特定のクラスの誤った分類の損失をより多く/より少なくすることです。例えば、仮定する予測は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に割り当てられた重みを表します。

次に、devセットのperformaceを最大にするようにCを調整し、テストセットの改善を見てみましょう(devセットのラベル配布がテストセットのラベル配布と類似していると仮定します)。

正しい方法のように聞こえる場合は、意思決定理論(ビショップのPRMLブックの第1.5節)とコストに敏感な学習(herehere)を少し読んでみてください。

+0

返信いただきありがとうございます!私はこれが理にかなっていると思うが、RのrandomForestパッケージでこれをどのように達成するのだろうか? –

+0

私は専門家ではありません。しかし、このSEの質問と回答を参照してください:http://stats.stackexchange.com/questions/46963/how-to-control-the-cost-of-misclassification-in-random-forests。 個人的には、私は第2の答えの解決策(1)から始めるだろう - 「意図的に不均衡なデータセット」。 –