#1.はじめに
H2Oという機械学習ライブラリのDOC中に、機械学習の性能評価に用いる指標として以下の指標が載ってました。説明と注意点をまとめたら下記のような感じでした。
※ほんとはだめなんでしょうが各記号の説明等は略してますスミマセン。
#2.回帰問題
指標 | 説明 | 備考 |
---|---|---|
R2 | $$\frac{1}{N} \sum_{i=1}^{N}(y_i -\hat{y}_i)^2 $$ | 説明変数が目的変数をどれくらい説明しているか |
MSE | $$\frac{1}{N}\sum_{i=1}^{n} (y_i-\hat{y}_i)^2$$ | 外れ値の影響が大 |
RMSE | $$\sqrt{\frac{1}{N} \sum_{i=1}^{N}(y_i -\hat{y}_i)^2 }$$ | 外れ値に敏感。※下のMAEは頑健 |
RMSELE | $$\sqrt{\frac{1}{N} \sum_{i=1}^{N} \big(ln \big(\frac{y_i +1} {\hat{y}_i +1}\big)\big)^2 }$$ | 過少予測が過大予測よりも問題となる場合にRMSEの代わりに使う。yiとy^iの値が大きく、その差が大きくなる場合もlogのおかげで影響を抑えられる。 |
MAE | $$\frac{1}{N} \sum_{i=1}^{N} \left\lvert x_i - x\right\lvert$$ | 外れ値に対して頑健。式見るとそりゃそうだ |
が紹介されており、 |
#3.分類問題
指標 | 説明 | 備考 |
---|---|---|
Gini Coefficient | ここ参照 | |
Absolute MCC | $$\sqrt(\frac{\chi^2}{n})$$ | ここ参照。 imbalanced data(正解/不正解など2値のラベルに偏りがあるデータ)に良い |
F1 | $$2\frac{(precision)(recall)}{precison+recall}$$ | 適合率と再現率の調和平均 |
F0.5 | $$1.25\frac{(precision)(recall)}{0.25precison+recall}$$ | 適合率重視の場合 |
F2 | $$5\frac{(precision)(recall)}{4precison+recall}$$ | 再現率重視の場合 |
Accuracy | $$\frac{TP+FN}{TP+TN+FP+FN}$$ | 解釈しやすい |
Logloss | ここ参照 | 情報利得みたいな式 |
AUC | ここ参照 | TPとFPをどれだけ区別できているかの指標 |
AUCPR | ここ参照 | imbalanced data(TNがFPと比較して多すぎる場合)に良い |
#4 F0.5とF2について調べてみた。
指標はだいたい知っていました(つもり)でした。
が、F0.5,F2ってなんだろうと思い、その部分のみ注目。混同行列からF1,F2,F0.5を出してみると
確かに再現率重視、適合率重視の指標であると納得。
学習モデルの修正の際に、F2やF0.5を上げるのを目標にして修正していくような場面で使うんでしょうか?
できれば、どうやればF2,F0.5を上げられるか検討したいですね。
あと、多値分類は考えるのがつらくなってきたのでとりあえず辞めました。
正例/負例にかたよりがあるようなものも要注意と再認識もしました。
やったAccuracyが0.99、F値も0.85もある。みたいな見せかけに注意しないとですね。
ちゃんとF0.5だと0.787まで下げて見せてくれてました。