sklearnの分類レポートの数字はどういう意味ですか?


29

以下に、sklearnのsklearn.metrics.classification_reportドキュメントから抜粋した例を示します。

私が理解していないのは、クラスが予測ラベルであると信じる各クラスにf1スコア、精度、リコール値がある理由です。f1スコアはモデルの全体的な精度を示していると思います。また、サポート列は何を教えてくれますか?私はそれに関する情報を見つけることができませんでした。

print(classification_report(y_true, y_pred, target_names=target_names))
             precision    recall  f1-score   support

    class 0       0.50      1.00      0.67         1
    class 1       0.00      0.00      0.00         1
    class 2       1.00      0.67      0.80         3

avg / total       0.70      0.60      0.61         5

回答:


21

f1-scoreは、精度と再現率の調和平均を提供します。すべてのクラスに対応するスコアは、特定のクラスのデータポイントを他のすべてのクラスと比較して分類する際の分類子の精度を示します。

サポートは、そのクラスにある真の応答のサンプル数です。

両方の手段に関するドキュメントは、sklearnドキュメントにあります。

サポート-http://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_fscore_support.html

F1-score- http://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html

編集

最後の行は、重みがサポート値である精度、リコール、およびf1-scoreの加重平均を示しています。したがって、精度のためにavgは(0.50*1 + 0.0*1 + 1.0*3)/5 = 0.70です。合計は合計サポート用で、ここでは5です。


1
最後の行はavg / totalどうですか?列の意味と一致しないようです...どのように計算され、どういう意味ですか?
アントワーヌ

@アントワーヌ私も同じことを思っています。どのように計算されるのかわかりましたか?
ペールブルードット

@Antoine最後の行は、精度、リコール、およびf1-scoreの加重平均を示します。ここで、重みはサポート値です。したがって、精度のためにavgは(0.50*1 + 0.0*1 + 1.0*3)/5 = 0.70です。合計は合計サポート用で、ここでは5です。
ニティン

@Nitinの以前の回答のおかげで、数学の背後にある最高の視覚的な説明と直感をリンクで見つけました:en.wikipedia.org/wiki/Precision_and_recall en.wikipedia.org/wiki/F1_score
ボグダンコレッキ18年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.