AI会社に入社してまだ2週間のgohanだよ。最近はow2にハマってて、ヒーラーのキリコがお気にです。キリコのフレーズ「快気!」にちなんで回帰のお話。
回帰モデルを評価する際の指標の選別がわからなかったので、会社の人に色々教えてもらったのでまとめます。
分類問題は、割と直感的にわかりやすいものが多い(accuracyとか)けど、回帰は分かりづらい、、。
MSE
一番使用されるメジャーな指標だと思う。正答値から予測値がどれくらい離れているか?というのを算出して、それの絶対値(全部プラスの値にするよーってやつ)の二乗の合計。
最初これを聞いて、「それで何が分かるねん!」って思っていたが、説明を聞いて納得。
この指標を使う目的は、2つあって1つ目はモデルの比較。最初に作ったモデルから2回目に作ったモデルを比較して、mseがどれくらい良くなったかを見ることができる(数値が小さくなったほうが、モデルの精度が良い)。2つ目は、どのくらい予測値が外れているのかを細かい部分まで理解することができる。値を2乗するので、大きく外れているデータがあったら、mseは大きくなってしまう。例えば小売売上予測の場合、肉とか野菜はある程度精度はいいけど(鮮度じゃないよ!)、めっちゃ小さなブースに置いてあるコスメの部分で予測を大きく外していたら、それの二乗なのでmseが大きくなるみたいなイメージ。
MAE
正答値から予測値がどれくらい離れているか?というのを算出して絶対値にしたやつ。これは2乗しないので、ざっくりどのくらいずれているのかというのが直感的に理解しやすい。これは先ほどと違って2乗しないので、多少値が外れていてもmaeの結果としては影響をあまり受けない。なので細かい部分までは見ることができない。例えば小売売上予測の場合、肉とか野菜はある程度精度はいいけど(鮮度じゃないよ!)、めっちゃ小さなブースに置いてあるコスメの部分で予測を大きく外していても、コスメ自体そこまで売れる商品じゃないし、 maeには影響がないみたいなイメージ。
MAPE
こっからはてなになってきた。自分のプロジェクトでは、これをいちばんの重要評価指標にしているみたい。これを低くしていくことに重点を置いてるみたいな。(プロジェクトや予測したいことによってこれは変わるよ)
これは割合の指標で、ざっくりいうと「どのくらいずれがあるか」ということになる。
具体的には、予測値と正答値の差の絶対値を求めてそれの総和をデータ数で割った値。この指標も直感的に分かりやすくて、正答値からどのくらい予測値が離れているのかな?というのがわかる。例えばmape10%と出たら、正答値から10%くらい離れているのかー、ふーんって感じになる。
だけどこれを求めるときは、評価するデータを選別する必要があって、真値が0のものとかめちゃくちゃ外れているものとかは除外しないといけない。
まとめ
回帰でももっと直感的に理解したい!みたいな場合は、真値から誤差○%の定義をして、そのパーセント内に該当したデータ数をすべてのデータ数で割ると正答率を(accuracyみたいな)導くことができます。これもうちのプロジェクトでは使っています。
まだまだ理解が足りてない部分もあるけど、ちょっとずつ頑張っていきたいと思います。