外れ値に敏感な数値予測(回帰問題)の評価指標
機械学習で物件の適正価格を予測しています。
今回、ビジネスの目的やユーザの期待を加味して評価指標を一部修正しました。そのときに調べたことや考えたことを忘れないように、文章に残そうと思います。間違っている点があればご指摘いただけると嬉しいです。
これまで使用していた評価指標
これまで使用していた評価指標は以下のとおりです。
- MAE(Mean Absolute Error、平均絶対誤差)
- RMSE(Root Mean Squared Error、平均二乗誤差の平方根)
- MAPE(Mean Absolute Percentage Error、平均絶対%誤差)
- MedianAPE(Median Absolute Percentage Error、絶対%誤差の中央値)
これらは回帰モデルの評価指標としては一般的だと思います。
MAE(Mean Absolute Error、平均絶対誤差)
絶対誤差は、予測値と正解値の差の絶対値です。それの平均がMAEです。
MAEは誤差の大きさを示すので、値が小さいほど精度が高いモデルとなります。
RMSE(Root Mean Squared Error、平均二乗誤差の平方根)
MSE(平均二乗誤差)という指標があり、これは絶対誤差の二乗の平均です。そのMSEの平方根を取ったものがRMSEです。二乗して平方根を取るので、誤差の単位が元のデータと同じになり、解釈しやすくなっています。
RMSEも誤差の大きさを示す値なので、値が小さいほど精度が高いモデルです。二乗しているので、MAEよりも外れ値の影響を大きく受けます。そのため、大きな誤差を出すサンプルを減少させたいときなどに役立ちます。
MAPE(Mean Absolute Percentage Error、平均絶対%誤差)
APE(絶対%誤差)は、(絶対誤差/正解値) * 100
で計算する相対誤差です。MAPEはAPEの平均値です。
予測対象の値の範囲が大きいとき、この指標が特に有効です。たとえば、さまざまな価格帯の商品の需要予測などです。実際の需要が1億個の商品で10個の誤差が出た場合と、需要が100個の商品で10個の誤差が出た場合では扱いを変える必要があります。そのようなときは、絶対誤差よりも絶対%誤差(APE)を使うほうが適切です。
MedianAPE(Median Absolute Percentage Error、絶対%誤差の中央値)
MedianAPEは、先述したAPEの中央値です。中央値を用いることで、外れ値の影響を受けにくい誤差率の指標として利用することができます。
これまでの評価指標の欠点
今回は、物件の価格予測をモデルで扱います。物件の価格帯は、数百万円から数十億円まで幅があるため、誤差(MAEやRMSE)では正確なモデルのパフォーマンスを評価することができません。たとえば、高価格帯の物件における小さなパーセンテージの誤差が、低価格帯の物件の大きな絶対誤差と等価になる可能性があります。
そのため、MAPEやMedianAPEなどの相対誤差がより重要な指標となっていました。しかし、この予測結果はユーザに公開されるため、誤差率の平均や中央値を見るだけでは不十分でした。平均的には合格点の誤差率であっても、一部に極端に誤差率の大きい物件が掲載されていては、その物件のオーナーから苦情が来る可能性があるからです。
ビジネス上、「極端に大きな誤差率の物件が発生しないこと」が重要であり、新たに評価指標を追加する必要がありました。
追加を検討した評価指標
今回、以下のような指標を検討しました。
- 加重平均絶対パーセント誤差(Weighted Mean Absolute Percentage Error, WMAPE)
- 対数誤差(Logarithmic Error)
- RMSPE(Root Mean Squared Percentage Error)
- 最大誤差(Max Error)
- 誤差の分位数(Quantiles of Errors)
加重平均絶対パーセント誤差(Weighted Mean Absolute Percentage Error, WMAPE)
WMAPE(加重平均絶対パーセント誤差)は、全物件の価格合計に対する絶対誤差の合計をパーセンテージで表したものです。この計算方法だと、結果的に絶対誤差の大きな物件、つまり高価格帯の物件の誤差が相対的に重要視されることになります。
今回は価格帯に関わらず各物件の誤差率を均等に評価することを目指しているため、WMAPEは採用しませんでした。
対数誤差(Logarithmic Error)
正解値の対数と予測値の対数の差の二乗平均です。対数を使うことで、価格帯が違っても誤差の比率を平等に扱えるようになります。つまり、100万円の物件で10万円の誤差が出た場合と、1億円の物件で1000万円の誤差が出た場合で、対数を取ることで似たような誤差として評価できるようになります。
対数誤差は、APE(絶対%誤差)と同じく誤差の比率を示し、スケールの違いを相対的に扱うことができます。しかし、今回は誤差率が具体的にどの程度であるかを直感的に理解しやすいAPEのほうが目的に合っていると判断しました。
RMSPE(Root Mean Squared Percentage Error)
誤差率の二乗の平均の平方根を取ったものです。MAPEと比べ、大きな誤差を持つ物件の影響を強調した指標となります。
今回は、誤差率の大きな物件を減らすことが重要であるため、この指標は適切であると判断しました。
最大誤差(Max Error)
最も大きな誤差や誤差率です。最悪のケースでどのくらいの誤差がサイトに掲載されるかを把握する指標になります。
誤差の分位数(Quantiles of Errors)
誤差率の25%、50%、75%などの分位数です。MedianAPE(中央値)はすでに見ていますが、誤差率の分布をより詳しく把握するために、25%分位数や75%分位数も追加すべきだと考えました。
新たに採用した指標
以上を踏まえて、新たに追加した評価指標は以下です。
- 絶対誤差が一定以上(1000万円、2000万円等)の物件の割合
- APE(絶対%誤差)が一定以上(20%、30%等)の物件の割合
- RMSPE
- APEの最大値
- APEの分位数
物件の価格帯に幅があるため、APE(絶対%誤差)は引き続き重要な指標となります。これまではAPEの平均値と中央値しか計算していませんでしたが、APEが閾値以上の割合や分位数、最大値を追加して、より詳細に分布を確認していくことにしました。
また、「人間が査定した金額と誤差が1000万円以上あるときに問い合わせが来る」という肌感があるので、絶対誤差が一定以上の物件の割合も確認することにしました。これにより、特に問題となるような大きな誤差を減らすための対策が取れるようになります。
Discussion