用語比較
マクロ平均とマイクロ平均の違い|多クラス分類のF1・適合率・再現率をクラスごとに平均するか、全件でまとめるか(G検定・DS検定)
マクロ平均は、クラスごとにF1などの指標を出して、同じ重みで平均する方法です。マイクロ平均は、全クラスの真陽性・偽陽性・偽陰性の件数をまとめてから、1回だけ指標を計算する方法です。
件数の少ないクラスの出来も同じ重みで見たいときはマクロ、全件の中でどれだけ当たったかを見たいときはマイクロを選びます。クラスの件数が偏っていると、2つの値は大きく離れます。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。
マクロ平均とマイクロ平均の要点
マクロ平均
クラスごとに指標を計算し、その単純平均(重みなし)を取る。scikit-learnの説明では、クラスの件数の偏りを考慮しない。件数の少ないクラスも、多いクラスと同じ1/クラス数の重みになる。
マイクロ平均
全クラスの真陽性・偽陽性・偽陰性の件数を合計してから指標を計算する(scikit-learn)。件数の多いクラスの結果が、そのまま値を左右する。
加重平均
クラスごとの指標を、そのクラスの正解件数(サポート)で重みづけして平均する。マクロ平均にクラスの偏りを反映させた形で、F値が適合率と再現率の間に収まらないことがある(scikit-learn)。
違いを表で確認
| 比較軸 | マクロ平均 | マイクロ平均 |
|---|---|---|
| 計算の順番 | マクロ平均:先にクラスごとの指標を出し、あとで平均する | マイクロ平均:先に全クラスの件数を合計し、あとで1回だけ計算する |
| クラスの重み | マクロ平均:どのクラスも同じ重み。scikit-learnは、クラスの件数の偏りを考慮しないと説明する | マイクロ平均:件数の多いクラスほど、結果に強く効く |
| 少数クラスの失敗 | マクロ平均:少数クラスの低い値が、そのまま平均を引き下げる | マイクロ平均:少数クラスの件数が少ないので、値にあまり響かない |
| 正解率との関係 | マクロ平均:一般に正解率とは一致しない。数値例では正解率0.92に対し、マクロF1は約0.621 | マイクロ平均:1件に1つのクラスを当てる多クラス分類では、適合率・再現率・F1がすべて正解率と同じになる(当サイトの導出) |
| 向いている場面 | マクロ平均:すべてのクラスを同じだけ大事にしたいとき。まれなクラスの見落としを見つけたいとき | マイクロ平均:全件の中での当たりの多さを、まとめて見たいとき |
G検定の学習に使う書籍(Amazon)
PRどこで迷っているかを切り分ける
正解率は高いのに、F1が低いと言われた人
件数の多いクラスはよく当たり、件数の少ないクラスがほとんど当たっていない可能性があります。クラスごとの適合率と再現率を出し、マクロ平均を見ると、少数クラスの低さが表に出ます。
マイクロF1と正解率が同じ値で、違いが分からない人
1件に正解のクラスが1つだけの多クラス分類では、誤りの数は偽陽性の合計にも偽陰性の合計にも同じだけ数えられます。そのため、マイクロ平均の適合率・再現率・F1は、正解率と必ず同じ値になります。
マクロ平均と加重平均のどちらを使うか迷う人
少数クラスの出来も同じ重みで見たいならマクロ平均、件数に応じた重みで全体の傾向を見たいなら加重平均です。加重平均は、件数の多いクラスの値に引かれます。
マクロF1の求め方が2通りに思えて混乱した人
scikit-learnの定義は、クラスごとにF1を出して平均する方法です。マクロの適合率とマクロの再現率の調和平均を取る方法とは、一般に値が違います。数値例の下で、2つの値を並べて確認します。
具体例で使い分ける
例 1
3クラスの混同行列から、マクロとマイクロを計算する(架空のデータ)
100件を、A・B・Cの3クラスに分ける分類器があります。実際のクラスはAが90件、Bが8件、Cが2件です。行を実際のクラス、列を予測したクラスとして、Aの行は (A 88, B 1, C 1)、Bの行は (A 4, B 3, C 1)、Cの行は (A 1, B 0, C 1) でした。
- クラスごとの真陽性・偽陽性・偽陰性は、Aが88・5・2、Bが3・1・5、Cが1・2・1です。偽陽性は、その列の他の行の合計です。偽陰性は、その行の他の列の合計です。
- クラスごとのF1は、2×真陽性÷(2×真陽性+偽陽性+偽陰性)で求めます。Aは176÷183=約0.962、Bは6÷12=0.5、Cは2÷5=0.4です。
- マクロF1は、この3つを同じ重みで平均して (0.962+0.5+0.4)÷3=約0.621です。
- マイクロは、先に件数を合計します。真陽性は88+3+1=92、偽陽性は5+1+2=8、偽陰性は2+5+1=8です。F1は184÷(184+8+8)=0.92になります。
- 加重F1は、クラスの件数で重みをつけます。(90×0.962+8×0.5+2×0.4)÷100=約0.914です。
結論: 同じ予測結果なのに、マイクロF1は0.92、加重F1は約0.914、マクロF1は約0.621です。件数の少ないBとCの出来が悪いことは、マクロ平均だけが強く映します。
例 2
マクロのF1と、マクロの適合率・再現率から作ったF1を比べる(上の数値例の続き)
上の混同行列で、クラスごとの適合率はA約0.946・B 0.75・C約0.333、再現率はA約0.978・B 0.375・C 0.5です。
- マクロの適合率は約0.677、マクロの再現率は約0.618です。
- この2つの調和平均を取ると、2×0.677×0.618÷(0.677+0.618)=約0.646です。
- クラスごとのF1を平均したマクロF1は約0.621でした。
結論: 同じ数値例でも、約0.621と約0.646で値が違います。どちらの方法で出した値かを確かめずに、数字だけを比べないことが大切です。
問題文から答えを選ぶ手順
- 1
混同行列を作る
実際のクラスを行、予測したクラスを列に並べ、各マスに件数を入れます。
- 2
クラスごとの件数を確かめる
実際のクラスの件数が大きく偏っていないかを見ます。偏っているなら、平均の仕方で値が大きく変わります。
- 3
何を大事にするかを決める
すべてのクラスを同じだけ大事にするならマクロ、全件の当たりやすさならマイクロ、件数に応じた重みなら加重平均を選びます。
- 4
どの平均かを書き添えて報告する
F1の値だけを書かず、マクロかマイクロか加重かを必ず添えます。
試験での見分け方
- 1クラスごとに計算してから平均するのがマクロ、件数を合計してから計算するのがマイクロ。
- 2マクロはクラスを同じ重みで見る。マイクロは件数の多いクラスに引かれる。
- 31件に1つのクラスを当てる多クラス分類では、マイクロF1は正解率と同じ値になる。
- 4F1の値は、どの平均で出したかを添えて読む。
誤答しやすい選択肢
マクロ平均を、全件の件数で重みづけした平均だと考える
修正: マクロ平均は重みなしの単純平均です。件数で重みをつけるのは加重平均です。
マイクロF1が高ければ、すべてのクラスがよく当たっていると考える
修正: マイクロ平均は件数の多いクラスに引かれます。数値例でマイクロF1が0.92でも、BとCのF1は0.5と0.4でした。
マクロF1を、マクロの適合率とマクロの再現率から計算できると考える
修正: scikit-learnの定義はクラスごとにF1を出して平均する方法です。数値例では約0.621で、2つのマクロ値の調和平均の約0.646とは違います。
確認問題
Q1全クラスの真陽性・偽陽性・偽陰性を合計してから指標を出す平均は、マクロとマイクロのどちら?
答え: マイクロ平均
scikit-learnは、マイクロを、真陽性・偽陰性・偽陽性の総数から全体で計算する方法と説明します。
Q2クラスごとのF1が0.9・0.6・0.3のとき、マクロF1は?
答え: 0.6
重みなしの単純平均なので、(0.9+0.6+0.3)÷3=0.6です。
Q31件に1つのクラスを当てる多クラス分類で、マイクロF1と同じ値になる指標は?
答え: 正解率
誤りの総数が偽陽性の合計にも偽陰性の合計にも同じだけ数えられるため、マイクロの適合率・再現率・F1は正解率に一致します(当サイトの導出)。
到達チェック
- マクロとマイクロの計算の順番の違いを言える
- クラスの件数が偏ると、2つの値が離れる理由を言える
- F1の値を報告するときは、どの平均かを添えると言える
関連ページで確認する
同じ資格で次に知りたいこと
- SVMとランダムフォレストの違い|境界の引き方と木の多数決(G検定)
SVM(サポートベクターマシン)とランダムフォレストの違いを、分類のしくみ・過学習の抑え方・前処理・確率の出し方で整理します。scikit-learn公式文書にもとづく解説と確認問題つき。
- クロスエントロピーとKLダイバージェンスの違い|エントロピー分だけずれる2つの指標(G検定・損失関数)
クロスエントロピーとKLダイバージェンスの違いを、式・下限・非対称性・損失関数としての使い方で整理。クロスエントロピー=エントロピー+KLの関係を、数値例と確認問題で確認。G検定の損失関数・確率分布の補足。
- 事前分布と事後分布の違い|データを見る前の評価と、見たあとに改めた評価(ベイズ更新・G検定)
事前分布(データを見る前のパラメータの評価)と事後分布(ベイズの公式で改めた評価)の違いを、いつの評価か・何を使うか・何が計算できるかで整理。コイン投げの更新の数値例と確認問題つき。G検定のベイズ推定の補足。
よくある質問
Qマクロ平均とマイクロ平均は、どちらを使えばよい?
すべてのクラスを同じだけ大事にするならマクロ、全件の中での当たりの多さを見るならマイクロです。クラスの件数が偏っているときは、両方を並べると状況が分かります。
Q加重平均は、マクロとマイクロのどちらに近い?
クラスごとに指標を出してから平均する点はマクロと同じで、重みを件数にした形です。scikit-learnは、マクロにクラスの偏りを反映させたものと説明しています。
QG検定やDS検定にこの違いは出る?
公式シラバスにマクロ平均・マイクロ平均が個別の語として挙がっているかは、当サイトでは確かめていません。評価指標の考え方を理解する補足として読んでください。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: AI資格ドリル編集部(運営者情報を見る)
