- 多クラスにおけるF値(mean-F1・macro-F1・micro-F1)の計算方法
多クラス分類におけるF値の計算方法
代表的な評価指標の1つであるF値は、2クラス分類に対する指標でした。
F値についてはこちらの記事で解説しています。

このF値を多クラス分類の評価に使用する方法は大きく3種類に分けられます。
手法 | 計算方法 |
mean-F1 | レコード単位でF値を計算し、その平均を取る |
macro-F1 | 各クラスごとのF値を計算し、その平均を取る |
micro-F1 | レコード✕クラスのペアの混合行列を求め、F値を計算する |
こちらの例を使って、それぞれの具体的な計算方法を説明していきます。
レコード | 予測値 | 真の値 |
1 | 1,3 | 1,2 |
2 | 2 | 1 |
3 | 1,3 | 1,2,3 |
4 | 3 | 2,3 |
5 | 3 | 3 |
mean-F1の計算方法
mean-F1はレコード単位でF値(F1-Score)を計算し、その平均を取ったものです。
まず、それぞれのレコードの混同行列の形で整理して、そのF1-Scoreを計算していきます。
レコード1について考えてみましょう。
レコード | 予測値 | 真の値 |
1 | 1,3 | 1,2 |
クラス1は予測値が真値と一致しているので、TP(True Positive)です。
クラス2は予測値はFalse、真値はTrueなので、FN(False Negative)です。
クラス3は予測値はTrue、真値はFalseなので、FP(False Positive)です。
レコード1は(TP, TN, FP,FN) = (1,0,1,1)となるので、
$$F1score=\frac{2}{\frac{1}{recall}+\frac{1}{precision}} =\frac{2}{\frac{1}{0.5}+\frac{1}{0.5}} =0.5$$
となります。
同様に他のレコードも計算していきます。
レコード | 混同行列 (TP, TN, FP, FN) | F1-Score |
1 | (1,0,1,1) | 0.5 |
2 | (0,1,1,1) | 0 |
3 | (2,0,0,1) | 0.8 |
4 | (1,1,0,1) | 0.67 |
5 | (1,2,0,0) | 1 |
すべてのレコードのF1-Scoreの平均値を計算すると、
$$meanF1=\frac{0.5+0+0.8+0.67+1}{5}=0.6$$
となります。
macro-F1の計算方法
macro-F1は各クラスごとのF値(F1-Score)を計算し、その平均を取ったものです。
まず、それぞれのクラスの混同行列の形で整理して、そのF1-Scoreを計算していきます。
クラス1について考えてみましょう。
レコード | 予測値 | 真の値 |
1 | True | True |
2 | False | True |
3 | True | True |
4 | False | False |
5 | False | False |
レコード1は予測値が真値がTrueで一致しているので、TP(True Positive)です。
レコード2は予測値はFalse、真値はTrueなので、FN(False Negative)です。
レコード3は予測値が真値がTrueで一致しているので、TP(True Positive)です。
レコード4は予測値が真値がFalseで一致しているので、TN(True Negative)です。
レコード5は予測値が真値がFalseで一致しているので、TN(True Negative)です。
クラス1は(TP, TN, FP,FN) = (2,2,0,1)となるので、
$$F1score=\frac{2}{\frac{1}{recall}+\frac{1}{precision}} =\frac{2}{\frac{1}{0.67}+\frac{1}{1}} =0.8$$
となります。
同様に他のクラスも計算していきます。
クラス | 混同行列 (TP, TN, FP, FN) | F1-Score |
1 | (2,2,0,1) | 0.8 |
2 | (0,1,1,3) | 0 |
3 | (3,1,1,0) | 0.85 |
すべてのレコードのF1-Scoreの平均値を計算すると、
$$meanF1=\frac{0.8+0+0.85}{3}=0.55$$
となります。
micro-F1の計算方法
micro-F1はレコード✕クラスのペアの混合行列を求め、F値(F1-Score)を計算したものです。
まず、micro-F1はレコード✕クラスのペアの混合行列を求めていきます。
レコード | 予測値 | 真の値 |
1 | 1,3 | 1,2 |
2 | 2 | 1 |
3 | 1,3 | 1,2,3 |
4 | 3 | 2,3 |
5 | 3 | 3 |
例題のレコード1から考えていきます。
クラス1は予測値が真値と一致しているので、TP(True Positive)です。
クラス2は予測値はFalse、真値はTrueなので、FN(False Negative)です。
クラス3は予測値はTrue、真値はFalseなので、FP(False Positive)です。
これらの分類をすべてのレコードに対して行うと以下のようになります。
クラス | ||||
1 | 2 | 3 | ||
レコード | 1 | TP | FN | FP |
2 | FN | FP | TF | |
3 | TP | FN | TP | |
4 | TF | FN | TP | |
5 | TF | TF | TP |
つまり、レコード✕クラスのペアは(TP, TN, FP, FN) = (5, 4, 2, 4)となり、この値を使ってF値(F1-Score)を求めればmicro-F1となります。
$$microF1=\frac{2}{\frac{1}{recall}+\frac{1}{precision}} =\frac{2}{\frac{1}{0.56}+\frac{1}{0.71}} =0.625$$
と求めることができました。
まとめ
今回は、F値を多クラス分類の評価に使用する方法を解説しました。
多クラス分類のF値の求め方であるmean-F1・macro-F1・micro-F1の3種類を紹介しました。
実務では、多クラス分類をつかうケースも多々あるので、評価指標として利用してみてください。
コメント