👋

生成されたモデルの比較評価方法

2025/03/04に公開

1. 検定の選び方

モデルAとモデルBの性能を比較するには、以下の方法が考えられます。

比較対象 検定手法 データ数の目安
精度(Accuracy)やAUCの比較 McNemar検定 1,000サンプル以上が望ましい
損失(MSEやMAE)の比較 対応のあるt検定 or Wilcoxonの符号順位検定 30サンプル以上(t検定)、10,000以上が望ましい
クロスバリデーションの結果比較 5×2交差検定t検定 5分割以上のデータ
分布の比較(予測値のばらつき) Kolmogorov-Smirnov検定 (KS検定) 1,000サンプル以上
クラスごとの性能(Precision, Recall) χ²検定 100サンプル以上

それぞれの方法について詳細に説明します。


2. モデルAとBの精度を比較する検定

(1) McNemar検定(分類モデル)

  • 用途: モデルAとモデルBの分類精度の差が有意かどうかを判断
  • 条件: 同じデータセット に対して2つのモデルを適用(ペアデータ)
  • 必要なデータ数: 1,000サンプル以上 推奨(分布が安定するため)
  • 使い方:
    1. 一致・不一致のクロス表 を作成
    2. 帰無仮説: 両モデルのエラー率に差がない
    3. p値 < 0.05 なら、統計的に有意な違いあり

例(混同行列):

モデルB 正解 モデルB 不正解
モデルA 正解 900 50
モデルA 不正解 30 20

[
\chi^2 = \frac{(50 - 30)^2}{50 + 30}
]


(2) 対応のあるt検定(回帰モデル)

  • 用途: モデルAとモデルBのMSEやMAEなどの損失の差を検定
  • 条件: ペアデータがあること(同じテストセット)
  • 必要なデータ数: 30サンプル以上(中央極限定理に基づく)
  • 使い方:
    1. 各データ点の誤差(損失)を計算し、差分リスト を作成
    2. 帰無仮説: 2つのモデルの誤差の平均値に差がない
    3. p値 < 0.05 なら、統計的に有意な違いあり

[
t = \frac{\bar{d}}{s_d / \sqrt{n}}
]
((\bar{d}) は差分の平均、(s_d) は標準偏差)


(3) 5×2 交差検定t検定

  • 用途: モデルの汎化性能の差を検定
  • 条件: クロスバリデーション(k-fold)を適用した場合
  • 必要なデータ数: 最低5分割以上
  • 使い方:
    1. 5×2の交差検定 を行い、モデルAとモデルBの精度を各foldで記録
    2. 各foldでの精度の差を取り、t検定を適用
    3. p値 < 0.05 なら、有意な差あり

(4) Kolmogorov-Smirnov (KS) 検定

  • 用途: モデルの出力分布が異なるか を検定
  • 必要なデータ数: 1,000以上
  • 使い方:
    1. モデルAとBの予測値の分布を取得
    2. KS検定で分布が異なるかを判定
    3. p値 < 0.05 なら、分布に有意な違いあり

(5) χ²検定(クラスごとの性能比較)

  • 用途: Precision, Recall, F1-score などのカテゴリ別性能差の検定
  • 必要なデータ数: 各クラス100サンプル以上
  • 使い方:
    1. クラスごとの正解数と不正解数を集計
    2. 帰無仮説: モデルAとBで性能に差がない
    3. p値 < 0.05 なら、統計的に有意な違いあり

3. 検定を行う際のデータの準備

(1) サンプルサイズの決定

  • 一般的な目安:
    • 1,000以上が望ましい(分布が安定)
    • 小さいデータ(30未満)なら、ノンパラメトリック検定(Wilcoxon 検定など)を使用

(2) 事前にデータの分布を確認

  • 正規分布なら: t検定やF検定 が使える
  • 非正規分布なら: Wilcoxon 検定やMann-Whitney U 検定 を使う

(3) p値の解釈

  • p < 0.05: モデル間に有意な差がある
  • p > 0.05: 統計的に有意な差がない(=性能差が偶然である可能性が高い)

4. まとめ(推奨する方法)

目的 推奨する検定 データ数の目安
分類精度の比較 McNemar検定 1,000サンプル以上
回帰モデルの損失比較 対応のあるt検定 30以上(非正規分布ならWilcoxon検定)
汎化性能の評価 5×2 交差検定 t検定 5分割以上
予測分布の比較 KS検定 1,000サンプル以上
クラスごとの性能差 χ²検定 100サンプル以上

統計的な有意差を確認することで、「本当にモデルBが優れているのか?」 を客観的に判断できます!

Discussion