2

トレーニングデータセットでは、Class Imbalance Problemを扱い、クラスラベルの大部分が1(他のクラスラベルが0)の入力テストデータセットのbinary-classificationを処理する必要があります。 - 0又は1最後の列はclass-labelあるこの不均衡なクラスの歪んだデータセットを扱うにはどうすればいいですか?

93.65034,94.50283,94.6677,94.20174,94.93986,95.21071,1 
94.13783,94.61797,94.50526,95.66091,95.99478,95.12608,1 
94.0238,93.95445,94.77115,94.65469,95.08566,94.97906,1 
94.36343,94.32839,95.33167,95.24738,94.57213,95.05634,1 
94.5774,93.92291,94.96261,95.40926,95.97659,95.17691,0 
93.76617,94.27253,94.38002,94.28448,94.19957,94.98924,0 

:例えば

は、次のトレーニングデータの一部です。実際のデータセットは、10:1のクラスの比率で非常に歪められています。約700サンプルは、class labelとして0を持ち、残りの6800は、class labelとして1を持ちます。

上述し

のみ与えられたデータ・セット内のすべてのサンプルの数であるが、実際のデータセットは、事実にもかかわらず、約 90% 1として class-label、及び class-label0であるとともに、残りのサンプルのを含んでいます多かれ少なかれ、すべてのサンプルが非常に似ているということです。

この種のデータセットを処理するにはどの分類器を使用すべきですか?

私は既にlogistic-regressionsvmclass-weightパラメータを"balanced"として設定しましたが、精度が大幅に向上しませんでした。

+0

これはプログラミング上の問題ではないので、[Cross Validated](http://stats.stackexchange.com/)でより良い回答を得るつもりです – Tchotchke

答えて

0

でも、精度が大幅に向上しませんでした。

正確さは行く方法ではありません(例:Accuracy paradox参照)。クラスの比率が10:1の場合、常にclass-label 0を予測するだけで簡単に90%の精度を得ることができます。

いくつかの良い出発点は次のとおりです。

  • は異なるパフォーマンスメトリックを試してみてください。例えば。 F1-scoreMatthews correlation coefficient

  • 「再サンプル」のデータセット:(オーバーサンプリング)アンダー表すクラスからの例を追加/アンダーサンプリングオーバー表すクラス(からインスタンスを削除し、あなたは多くを持っている必要がありますデータの)ビューの

  • 異なるポイント:anomaly detectionは異なるアルゴリズムが別の可能性ではなく、銀の撮影です

  • 不均衡なデータセットのために良い試みです。おそらくあなたはdecision trees(多くの場合、不均衡なデータセットでも行う)


EDIT(今、あなたはscikit-learnを使用している知っている)

class_weight(scikit-学ぶ)パラメータから重みがあると起動する必要がありますクラシファイアのトレーニングに使用されています(balancedは大丈夫ですが)。正確さは、パフォーマンスの良さを知るうえで貧弱な選択です。

sklearn.metricsモジュールは、いくつかの損失、スコアおよびユーティリティ機能をmeasure classification performanceに実装しています。またHow to compute precision, recall, accuracy and f1-score for the multiclass case with scikit learn?を見てください。

+0

実際に私に与えられたテストデータセットにはクラスがありません私はそれらを予測し、オンラインジャッジから正確をチェックしなければならないので、私は 'sklearn.metrics'が私を助けないと思う。私はどうしたらいいですか?与えられたテストサンプルに対して 'class-label'が0であるかどうかだけを予測する方法はありますか? @ manlio – Jarvis

0

ROC曲線とAUC曲線をプロットして、パラメータと異なるしきい値を確認しましたか?そうでない場合は、あなたに良い出発点を与える必要があります。

+0

あなたはそれを行う方法をガイドできますか?私はPythonでコーディングしています。 – Jarvis

+0

@Jarvis sklearnはそれを持っているはずです。リンク先は次のとおりです:http://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html –

関連する問題