評価指標(accuracy, maeなど)

Kerasにおける評価指標(metrics)とは、モデルの性能を測定するために使用される関数です。これらはモデルのコンパイル時に指定し、学習中および評価時に表示・記録されます。評価指標は損失関数とは異なり、最適化の対象ではなく、モデルの性能を視覚的・定量的に理解するためのものです。


評価指標の指定方法

python
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

主な評価指標(metrics)の種類と説明

1. accuracy(正解率)

  • 分類問題で一般的に使用される指標

  • 正しく分類されたサンプル数の割合。

適用例:

  • 二値分類(binary classification)

  • 多クラス分類(categorical classification)

計算式(例: 多クラス分類):

Accuracy=正しく分類された数全体のサンプル数\text{Accuracy} = \frac{\text{正しく分類された数}}{\text{全体のサンプル数}}


2. binary_accuracy

  • 二値分類タスクにおける正解率を測定します。

  • 出力が 0 または 1 に丸められた後で比較されます。


3. categorical_accuracy

  • 多クラス分類(one-hotエンコーディングされたラベル)の正解率。


4. sparse_categorical_accuracy

  • 多クラス分類(整数ラベル形式)の正解率。

  • ラベルが [2] のように整数形式の場合に使用。


5. mae(Mean Absolute Error:平均絶対誤差)

  • 回帰問題でよく使われる評価指標

  • 予測値と実際の値の絶対値の平均を取ったもの。

計算式:

MAE=1ni=1ny^iyi\text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |\hat{y}_i – y_i|


6. mse(Mean Squared Error:平均二乗誤差)

  • MAEと同様に回帰タスクで用いられるが、大きな誤差をより強くペナルティします。


7. Precision, Recall, F1-score

  • カスタムで keras.metrics.Precision() などを用いて明示的に追加可能。

  • 不均衡データの分類問題において精度(precision)、再現率(recall)、F1スコアは重要。


カスタム評価指標の定義

python
from keras import backend as K def custom_metric(y_true, y_pred): return K.mean(K.square(y_pred - y_true), axis=-1) model.compile(optimizer='adam', loss='mse', metrics=[custom_metric])

評価指標の選び方

問題の種類 推奨される評価指標
二値分類 accuracy, binary_accuracy
多クラス分類 categorical_accuracy or sparse_categorical_accuracy
回帰 mae, mse, rmse, mapeなど
不均衡分類 Precision, Recall, F1-score

補足

  • 評価指標は学習の最適化には使用されません(それは損失関数が担当)。

  • ただし、EarlyStoppingModelCheckpoint の監視対象として利用されることがよくあります。

python
from keras.callbacks import EarlyStopping early_stop = EarlyStopping(monitor='val_accuracy', patience=3)

生成日:2025/05/22