2017-10-12 7 views
-1

私はバイナリ分類のためにNNを訓練しようとしているが、マルチクラスアプローチを使用しているため、クラス(C)= 2です。列車と試験データの両方の精度は約96%です。ただし、手動チェックでは、Tensorflowはすべての例で常に0を選択します。Tensorflowは常に0を予測する

この問題をデバッグする方法と私が間違っていることを知ることに興味があります。あなたの助けに大変感謝します。ありがとう。

(私はあまりにも漠然としているとあなたは良い解決策を特定するために十分な情報を提供していないよ場合は私に知らせてください。ありがとうございました。)

+2

[MCVE](https://stackoverflow.com/help/mcve)をご覧になり、質問に応じて編集してください。 –

+1

適切に手助けするために、おそらくMCVEのコードが必要です(上記のコメントを参照)。あなたのクラス0はあなたのデータの96%を表していますか?その場合は問題はありません。常に0を予測することを学んだだけで、良い答えの96%を得ます。それ以外の場合は、コードとデータに関する知識が必要です。 – gdelab

答えて

0

あなたは96%の精度を持っているし、すべての予測は、0であればあなたのデータセットはおそらく不均衡です。バランスをとって、陽性と陰性のクラスのサンプル数を同じにする必要があります。クラスのウェイトを追加して、より少ないサンプルでクラスをペナルティ化することもできます。

+0

この回答と@gdelabの回答は右です。私はデータセットを見て、それはあなたが2つ提案したものです。この問題に対処する方法に関する提案はありますか? (残念ながら、私はあなたの回答に投票するほどの評判はありません) –

+0

ニューラルネットワークの場合、単純な回避策はありません。モデルに重みを付けたり、データセットを修正したりすることができます。私の解決策は、データセットを再サンプリングすることです。主なクラスをアンダーサンプリングして各クラスを50/50にするか、少数クラスをオーバーサンプリングすることができます。 Pythonのライブラリにはいくつかのソリューションがあります:https://github.com/scikit-learn-contrib/imbalanced-learn –

関連する問題