0

すべてのテキストについて申し訳ありませんが、このプロジェクトの背景は役に立ちます:機械学習の分類結果が実際にはあまりにも良いですか?

私はバイナリ分類プロジェクトに取り組んでいます。元のデータセットはクラス0の約28,000とクラス1の650から構成されていたため、非常に不均衡でした。私は、各クラスの5,000人(クラス1のインスタンスは単純に9回複製されていました)で動作するように、アンダー・オーバーサンプル・データセットを提供しました。このモデルを訓練し、サブパルクの結果を得た後(AUCは約0.85でしたが、改善が必要でした)、これらのサンプリングテクニックが実際には良いアイデアかどうか疑問に思っていましたので、元の高度に不均衡なデータセットを再度取り出しました。私は、右のデフォルトGradientBoostClassifierにそれを接続し、データの80%にそれを訓練し、 私はすぐにこのようなものだ:

Accuracy: 
0.997367035282 
AUC: 
.9998 
Confusion Matrix: 
[[5562 7] 
[ 8 120]] 

を、私は高い精度がアンバランスなクラスのアーチファクトすることができ知っているが、私はこのようなAUCやそのようなパフォーマンスは期待していませんでした!だから私は非常に混乱していて、どこかで自分のテクニックに何か誤りがあっているに違いないと感じています...しかし、私はそれが何であるか分かりません。私はいくつかの異なる分類子を試してみましたが、似たようなレベルのばかばかしいパフォーマンスが得られました。私はデータ配列にクラスラベルを残しておらず、トレーニングデータはテストデータとまったく異なっています。各観測には約130の特徴もあるので、これは単純な分類ではありません。それは何かが間違っているように思える、私は分級機がこの良いことができないと確信しています。私が見落としていることが他にもありますか?不平等なデータを使ってこのように動く人々は、他の共通の落とし穴ですか?

コード、確率プロット、データポイントの例などを参考にして提供することができますが、これはあまりにも長すぎるとは思っていませんでした。助けることができる誰にも感謝します!

+3

など、嵌合検知上で、多分あなたは精度、リコールやF1スコアを使用して考えると、学習曲線を経て、いくつかのデバッグを行うことができ、あなたのケースで最高のパフォーマンスメトリックではないかもしれません[Stats Exchange](http://stats.stackexchange.com/) – Kartik

+2

すべてのクラス0を予測する分類器は、数値に応じて約98%の精度を得ます。スキューが非常に大きいため測定値が支配的になり、測定値の取り方を変更することによって最大の混乱が生じます。バランスの取れたセットとこの生のセットで測定されたAUCを比較することはできません。したがって、ここではどちらが良いか分かりません。あなたの目標について最初に測定したいことを決め、それを守ります。 –

+0

@NeilSlaterありがとう、私は少し混乱しています。何を測定してそれに固執するかを決めるとはどういう意味ですか?私はこれがあなたが話しているものかどうかは分かりませんが、20%の偽陽性率で真の陽性率を最大にしようとしているので、私はAUCにとても興味を持っています。このプロジェクトは病気の診断のためのものなので、真陽性率は非常に重要なので、私は全体的な精度についてあまり心配していません。 – MrDinkleburg

答えて

0

精度の質問は、おそらく上の属する

+0

確かに、精度スコアがあまりにも高くはありません。私はそれが本当に良い分類子であることを混乱マトリクスからちょうど見ることができます、私はそれがそれをうまくやっていることが現実的であるかどうか、または何らかの種類のエラーを示すことができるかどうかわかりません。 – MrDinkleburg

+0

データセットが簡単に分離可能で、トレーニングにデータセットの80%を使用していて、クラスが2つしかない場合は、本当に良い結果を得るのは珍しいことではありません。 –

+0

@MrDinkleburgはクロスバリデーションを実行します。 –

関連する問題