2017-02-04 17 views
0

私は大きなミスを犯しました。精度、リコール、f1スコアから精度を計算する - scikit-learn

   precision recall f1-score support 

1    0.000000 0.000000 0.000000  1259 
2    0.500397 1.000000 0.667019  1261 
avg/total 0.250397 0.500397 0.333774  2520 

それは、これらの値から精度を算出することが可能である:

str(metrics.classification_report(trainExpected, trainPredict, digits=6)) 

は今、私は次の出力から精度を計算する必要があります:私はscikit学習SVMの精度の出力を印刷しましたか?

PS:モデルの出力を得るために別の日を過ごしたくありません。私はちょうどこの間違いを私は最初から始める必要はないことを実感した。

答えて

0

これ以上の時間を費やす必要はありません。 metricsmoduleには、必要なものがすべて含まれており、予測値はすでに計算済みです。これは1行の変更です。

print(metrics.accuracy_score(trainExpected, trainPredict)) 

一般的なモデルの評価の詳細については、リンクされたページを読む時間を費やすことをお勧めします。

バランスのとれたクラスがあるにもかかわらず、1クラスの予測値がゼロになっていると思います。あなたは、データ、モデリング戦略、または対処しなければならないコードに問題がある可能性があります。

+0

予測値が正しいですが、最初はそれを見ませんでした。私は多数のサンプルや機能を扱っており、時間がかかります。私が時間を費やすことは、実際には各入力の出力を待っていることを意味します。 1つの行の変更は正しいですが、最初から始まらず、スコアをファイルに書き込まないように、これらの値に対する精度の計算方法を見つけようとしていました。答えをありがとう。 –

関連する問題