ダークサイドにようこそ!

ダンスしたりアプリ開発したり旅したりしているBBOYのブログ

【Python】多クラス分類時にscikit-learnでF値など求める際はaverage引数に注意

機械学習において多クラス分類モデルを評価する際にsklearn.metrics.f1_scoreF値を求めようとしたら以下のエラーが出ました。

Target is multiclass but average='binary'. Please choose another average setting.

メッセージ内容そのままなんですが、f1_score関数ではaverageにデフォルトで2値分類用の'binary'が指定されているので、ここでは他の引数を設定します。マイクロ平均(micro)かマクロ平均(macro)で指定することが多いのかな。

from sklearn.metrics import f1_score
f1 = f1_score(y_true, y_pred, average=’micro’)

sklearn.metrics.precision_scoresklearn.metrics.recall_scoreでも同様。
この辺だと、はやたか様の記事が参考になります。
www.haya-programming.com