性能指標
性能指標とは、モデルの予測結果が実際の値・正解にどれだけ近いか(あるいは望ましい振る舞いをしているか)を定量的に測るための基準です。分類問題では正解率・適合率・再現率・F値・ROC-AUC など、回帰問題では MSE・RMSE・MAE・$R^2$ などが代表的に用いられます。
分類問題
混同行列
| 実際: Positive | 実際: Negative | |
|---|---|---|
| 予測: Positive | TP (True Positive) | FP (False Positive) |
| 予測: Negative | FN (False Negative) | TN (True Negative) |
正解率 / 適合率 / 再現率 / F1 値
- 正解率:$accuracy = \dfrac{TP + TN}{TP + TN + FP + FN}$
- 適合率:$precision = \dfrac{TP}{TP + FP}$
- 再現率:$recall = \dfrac{TP}{TP + FN}$
- $F1\text{-}score(measure) = \dfrac{2 \times (Precision \times Recall)}{Precision + Recall}$
混同行列の実例
| 実際: Positive | 実際: Negative | 合計 | |
|---|---|---|---|
| 予測: Positive | TP = 50 | FP = 5 | 55 |
| 予測: Negative | FN = 10 | TN = 100 | 110 |
| 合計 | 60 | 105 | 165 |
指標の計算
| 指標 | 式 | 計算 | 値 |
|---|---|---|---|
| 正解率 (Accuracy) | $\dfrac{TP + TN}{TP + TN + FP + FN}$ | $(50 + 100) / 165$ | ≈ 0.909 |
| 適合率 (Precision) | $\dfrac{TP}{TP + FP}$ | $50 / 55$ | ≈ 0.909 |
| 再現率 (Recall) | $\dfrac{TP}{TP + FN}$ | $50 / 60$ | ≈ 0.833 |
| F1 値 | $\dfrac{2 \times Precision \times Recall}{Precision + Recall}$ | $2 \times 0.909 \times 0.833 / (0.909 + 0.833)$ | ≈ 0.870 |
上記の数値例で計算すると:
- Accuracy = $(50 + 100) / 165 ≈ 0.909$
- Precision = $50 / 55 ≈ 0.909$
- Recall = $50 / 60 ≈ 0.833$
適合率と再現率の覚え方
Positive と予測るしきい値を上げると適合率は上がりやすくなり(FP が減る)、再現率は下がり(FN が増える)やすくなります。
混同行列(再掲)
| 実際: Positive | 実際: Negative | 合計 | |
|---|---|---|---|
| 予測: Positive | TP = 50 | FP = 5 | 55 |
| 予測: Negative | FN = 10 | TN = 100 | 110 |
| 合計 | 60 | 105 | 165 |
違いは「分母」だけ
どちらも分子は TP(正しく Positive と当てた数)です。何を母数にするかだけが違います。
| 指標 | 母数 | 混同行列での見方 | 計算 |
|---|---|---|---|
| 適合率 (Precision) | Positive と予測した数 | 行の合計(TP + FP) | 50 / 55 ≈ 0.909 |
| 再現率 (Recall) | 実際に Positive の数 | 列の合計(TP + FN) | 50 / 60 ≈ 0.833 |
それぞれの問い
- 適合率:Positive と予測したうち本当に Positive だった割合
- 予測の正確さを見る指標
- 下げる要因は FP(誤って Positive と予測)
- 再現率:実際の Positive のうち、Positive と予測できた割合
- 見逃しの少なさを見る指標
- 下げる要因は FN(Positive を見逃した)
具体例(スパムメール判定)
- 適合率:スパムと判定したメール 55 通のうち、本当にスパムだったのは 50 通
- 大事なメールをスパム扱いしたくないときに重視
- 再現率:実際のスパム 60 通のうち、50 通を見つけられた
- 見逃しが許されない場面(病気の検査など)で重視
混同行列で確認する手順
補足
ROC-AUC
ROC 曲線は、分類の閾値を変化させたときの 真陽性率(再現率)」と 偽陽性率 の関係をプロットしたもの。AUC(Area Under the Curve)はその曲線の下側の面積で、0.5 〜 1 の値を取ります。1 に近いほど分類性能が高く、0.5 はランダム予測と同程度であることを意味します。閾値に依存せずモデルの識別能力全体を評価できる点が特徴です。
IoU(Intersection over Union)
予測した領域と正解の領域がどれだけ重なっているかを表す指標で、主に物体検出やセグメンテーションで使われます。
\[IoU = \frac{\text{予測領域と正解領域の重なり部分の面積}}{\text{予測領域と正解領域の和集合の面積}}\]- 値は 0 から 1 の範囲を取り、1 に近いほど予測領域と正解領域が一致している
- 物体検出では、IoU があらかじめ決めた閾値(例えば 0.5 )を超えたとき、その予測を正解(True Positive )とみなすことが多い
mAP(mean Average Precision)
物体検出モデルの性能を表す代表的な指標です。
- クラスごとに Average Precision(適合率と再現率の関係から計算される値)を求める
- 全クラスの Average Precision を平均したものが mAP になる
- IoU の閾値と組み合わせて使われることが多く、閾値を変えると mAP の値も変わる
micro 平均・macro 平均
多クラス分類の性能指標(適合率、再現率、F 値など)を、クラスごとの値からどう集約するかの違いです。
- macro 平均:クラスごとに指標を計算し、その単純平均を取る。クラスごとのデータ数の偏りを考慮しない
- micro 平均:全クラスの TP・FP・FN をまとめて合算してから指標を計算する。データ数の多いクラスの影響を強く受ける
クラスごとのデータ数に偏り(不均衡)がある場合、macro 平均と micro 平均の値は大きく異なることがあります。少数派クラスの性能を重視したい場合は macro 平均、全体としての精度を重視したい場合は micro 平均が使われる傾向があります。
パープレキシティ(Perplexity)
主に言語モデルの性能評価に使われる指標で、モデルが次の単語(トークン)をどれだけ的確に予測できているかを表します。数式的には損失(クロスエントロピー)の指数として計算され、値が低いほど「モデルが次に来る単語を絞り込めている=予測性能が高い」ことを意味します。新シラバスでLLM関連の評価指標として追加された用語なので、押さえておく価値があります。
- パープレキシティは値が低いほど予測が絞り込めている(=性能が高い)
回帰の評価指標(MSE / RMSE / MAE / $R^2$)
- $y_i$:実際の値(正解)
- $\hat{y}_i$(ハット):モデルの予測値
- $\bar{y}$(バー):実際の値 $y$ の平均値
MSE:Mean Squared Error(平均二乗誤差)
\[MSE = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2\]- 誤差を二乗して平均する
- 外れ値(大きな誤差)を強く罰する
- 単位が元データの2乗になるため、直感的な解釈がしにくい
RMSE(二乗平均平方根誤差)
\[RMSE = \sqrt{MSE}\]- MSE の平方根を取ることで、単位を元のデータと揃えたもの
- 「平均的にどれくらいズレているか」を元のスケールで見たいときに使う
- MS E同様、外れ値の影響を受けやすい
MAE(平均絶対誤差)
\[MAE = \frac{1}{n}\sum_{i=1}^{n}|y_i - \hat{y}_i|\]- 誤差の絶対値の平均
- 外れ値への感度が MSE / RMSE より低い(二乗しないため)
- 誤差の大きさを直感的に表す
$R^2$(決定係数)
\[R^{2} = 1 - \frac{\sum_{i=1}^{n}(y_i - \hat{y}_i)^2}{\sum_{i=1}^{n}(y_i - \bar{y})^2}\]- モデルが目的変数の分散をどれだけ説明できているかを表す指標
- 1 に近いほど当てはまりが良い
- 0 だと「平均値で予測するのと同程度」
- 負になると「平均値で予測するより悪い」ことを意味する
- 他の3つと違い、誤差そのものではなく「説明力」を表す点が特徴
指標の特徴
- MSE / RMSE は外れ値に敏感、MAE は頑健、という対比はよく問われる
- RMSE は MSE の平方根で単位が揃う
- R²は「0〜1」が基本だが、負になり得る点も選択肢に出やすいので要注意
モデル評価
データの種類
- 訓練データ:モデルの学習
- 検証データ:ハイパーパラメータの調整
- テストデータ:汎化性能検定
データ分割法
ホールドアウト法
データを訓練データと検証データ(必要であればさらにテストデータ)へ 1 回だけ分割する方法です。
- 手順がシンプルで計算コストが低い
- データの分割の仕方(どのデータが検証データに入るか)によって、評価結果がぶれやすい
- データ数が少ない場合、検証データの評価が不安定になりやすい
k 分割交差検証法(k-fold Cross Validation)
データを k 個のグループ(フォールド)に分割し、そのうち 1 つを検証データ、残り k − 1 個を訓練データとして学習・評価を行うことを、検証データを入れ替えながら k 回繰り返す方法です。
- k 回分の評価値(正解率など)の平均を、最終的な性能評価として採用する
- 全データが 1 回ずつ検証データとして使われるため、ホールドアウト法よりも評価が安定し、データを無駄なく使える
- k 回分の学習を繰り返すため、ホールドアウト法より計算コストが高い
過剰適合・過小適合
過剰適合(過学習)は学習では高い性能にも関わらずテストデータでは性能が低い状態を指します。
過小適合(未学習)は学習が足りていない状態を指します。