0回帰モデル・クラス分類モデルを評価・比較するためのモデルの検証
Model validation
明治大学 理⼯学部 応用化学科
データ化学⼯学研究室 ⾦⼦ 弘昌

“良い”回帰モデル・クラス分類モデルとは何か︖

1

新しいサンプルの目的変数の値・ラベルを、正確に推定できるモデルが良い回帰モデル・クラス分類モデル• 回帰モデル・クラス分類モデルを構築したサンプルではないことに注意

そのような良いモデルを選ぶために、いろいろなモデルを評価・比較しなければならないモデルを評価・比較するための、モデルの検証の話ですデータセットの呼び方
トレーニングデータ (キャリブレーションデータ)• 回帰モデル・クラス分類モデルの構築に用いるデータ• 目的変数の値・ラベルは分かっている
バリデーションデータ・テストデータ• 回帰モデル・クラス分類モデルの検証に用いるデータ• 実際には目的変数の値・ラベルは分かっているが、わからないものとして (目隠し・ブラインドして)モデルから推定し、実際と推定結果とがどれくらいあっているか確認する⁃ バリデーションデータで、モデルのハイパーパラメータ (PLSの最適成分数など) を最適化する⁃ テストデータで、最終的にモデルの優劣を比較する⁃ バリデーションデータはなく、トレーニングデータとテストデータだけのときもある (このときのモデルのハイパーパラメータの最適化については後述)

2

比較指標
モデルの性能を評価し、比較するための指標• 基本的には比較だけに用いるのがよく、絶対的な値に意味はない
トレーニングデータ・バリデーションデータ・テストデータそれぞれについて、実際の目的変数の値・ラベルと、推定された値・ラベルとが揃うと計算できる
回帰分析• 決定係数 r2• 根平均二乗誤差 (Root Mean Squared Error, RMSE)• 平均絶対誤差 (Mean Absolute Error, MAE)など
クラス分類• 混同⾏列 (confusion matrix) を計算したのちの、正解率、精度、検出率、誤検出率、Kappa係数など

34

回帰分析 決定係数 r2
目的変数のばらつきの中で、回帰モデルによって説明できた割合1に近いほど回帰モデルの”性能”が高い• どんな“性能”かは、r2 を計算したデータセット・推定値による相関係数 r を二乗したものとは異なる異なるデータセットの間で r2 を比較してはいけない(i )y∑ ( − yESTn

r 2 = 1 − i =1 n∑( y − y )(i )i =1A)(i ) 22y(i)︓i 番目のサンプルにおける目的変数の値
yEST(i)︓i 番目のサンプルにおける目的変数の推定値
yA︓目的変数の平均値
n︓サンプル数

5

回帰分析 RMSE
平均的な誤差の大きさ0 に近いほど回帰モデルの”性能”が高い• どんな“性能”かは、RMSE を計算したデータセット・推定値による異なるデータセットの間で RMSE を比較してはいけない
データセットが同じであれば、r2 が大きいほど RMSE は小さい
外れ値 (異常に誤差が大きいサンプル) があると、その値の影響を受けやすく、RMSE が大きくなりやすい∑( y − yn

RMSE =i =1n)(i ) 2(i )EST

回帰分析 MAE
平均的な誤差の大きさ0 に近いほど回帰モデルの”性能”が高い• どんな“性能”かは、MAE を計算したデータセット・推定値による異なるデータセットの間で RMSE を比較しないほうがよい
外れ値 (異常に誤差が大きいサンプル) の影響を受けにくい

n(i )
(i )
y−y∑
EST

MAE = i =1n6

クラス分類 混同⾏列・正解率・精度・検出率7

混同⾏列 (confusion matrix)
予測されたクラス
実際のクラス

1 (Positive, 陽性)-1 (Negative, 陰性)

1 (Positive, 陽性)

True Positive (TP)

False Negative (FN)

-1 (Negative, 陰性)

False Positive (FP)True Negative (TN)

正解率 =
精度 =

TP + TNTP + FN + FP + TN
TP
TP + FP

検出率 =TP
TP + FN

誤検出率 =FPFP + TNなど

8

クラス分類 Kappa係数

実際と予測結果の⼀致度を評価する指標
Positive(陽性)データとNegative(陰性)データの偏りがある時に有効
Kappa係数 =正解率 － 偶然による⼀致率
1 － 偶然による⼀致率

偶然による⼀致率 =TP + FN
A×( A = TP + FN + FP + TN )TP + FP
A＋FP + TN
A×

FN + TNA

http://en.wikipedia.org/wiki/Cohen%27s_kappa

予測されたクラス
実際のクラス

1 (Positive, 陽性)-1 (Negative, 陰性)

1 (Positive, 陽性)

True Positive (TP)

False Negative (FN)

-1 (Negative, 陰性)

False Positive (FP)True Negative (TN)

モデルの評価・比較 ハイパーパラメータの決定
ハイパーパラメータ• PLSの最適成分数• LASSOの λ• SVMの C、γなど
良いモデル (p.1 参照) になるようにハイパーパラメータを決めたい

9

どのようなハイパーパラメータを用いるか︖

10

トレーニングデータの比較指標の値がよくなるようなハイパーパラメータ• そもそもモデルがトレーニングデータを用いて構築されているため、トレーニングデータには合うが、新しいサンプルの目的変数を推定できないようなハイパーパラメータが選ばれてしまう• 基本的に用いられない
バリデーションデータの比較指標の値がよくなるようなハイパーパラメータ• 新しいサンプルに対する推定性能を考慮できる• データに偏りがないようにトレーニングデータとバリデーションデータとを分けるよう注意する• トレーニングデータが少なくなってしまう⁃ ハイパーパラメータを決めた後、バリデーションデータも合わせて再度モデルを構築する• 十分にデータ数が多いとき以外は、あまり用いられない
クロスバリデーション

11

クロスバリデーション例) 3-fold クロスバリデーション

サンプル

変数

X

y

X1

y1

②y1p

y1

X2

y2

③y2p

y2

X3

①X3

X1

y1

X2y2

モデル1②y3p

X1

y3

①

X2

y2

X3

y3

モデル2y3p比較指標の計算

③y1p

X2

y3

X3

y3

X1

y1

モデル3y2p

クロスバリデーションの補足
Leave-one-out クロスバリデーション• サンプルを１つ除いて、残りのサンプルでモデルを構築し、除いたサンプルを推定する、ということをサンプル数だけ繰り返す• 特にサンプル数が多いときに、すべてのサンプルでモデルを構築し、すべてのサンプルを推定することと似てしまうため、望ましくない
2-fold, 5-fold, 10-foldが⼀般的
データ数が多すぎると、計算時間がかかりすぎてしまうときは、トレーニングデータとバリデーションデータとを分ける方法を用いる

12

どのようにデータセットを分けるか︖
トレーニングデータ・バリデーションデータ・テストデータで、サンプルに偏りがない方がよい• 基本的にランダムに分けるのでOKトレーニングデータはなるべくばらついている方がよい• Kennard-Stone (KS) アルゴリズムにより、トレーニングデータ・バリデーションデータ・テストデータの順に選ぶ
1. データセットの説明変数の平均を計算
2. 平均とのユークリッド距離が⼀番大きいサンプルを選択
3. 選択されていない各サンプルにおいて、これまで選択されたすべてのサンプルとの間でユークリッド距離を計算し、その中の最小値を代表距離とする
4. 代表距離が最も大きいサンプルを選択する
5. 3. と 4. とを繰り返す

13

Y-randomization (Yランダマイゼイション)
特に、サンプル数が少なく説明変数 (記述⼦) の数が多いとき、本当は X と y の間に相関関係がなくても、r2, r2CVの値が大きくなってしまうことがある• たまたま X のノイズと y との間で相関がでてしまう• 偶然の相関偶然の相関かどうかを⾒分けるため、Y-randomizationが⾏われる• Y のみ値をランダムに並べかえて、おかしなデータセットにする• モデリングして、 r2, r2CVの値が 0 付近になることを確認する

14