RMSLE(二乗平均平方根誤差)をどのように解釈しますか?


29

RMSLE(Root Mean Squared Logarithmic Error)を使用して機器のカテゴリの販売価格を予測するパフォーマンスを評価する機械学習コンテストを行っています。問題は、最終結果の成功をどのように解釈するかわからないことです。

たとえば、私はのRMSLE達成した場合に、私はそれ指数パワー上げることができるとRMSEのようにそれを解釈しますか?(つまり)?1.052E 1.052 = 2.863 = R M S Eee1.052=2.863=RMSE

それから、私の予測は実際の価格から平均でだったと言えますか または、メトリックを解釈するより良い方法はありますか?または、他のモデルの他のRMSLEと比較することを除いて、メトリックをまったく解釈できますか? ±$2.863


私の限られた知識で、それは次のとおりです。1.異分散性を除去する2.異なる次元の問題を解決する

回答:


26

以前にRMSLEを見たことがありませんが、。1N=1Nログバツログy2

したがって、それを累乗してもRMSEは得られません。

e1N=1Nログバツログy21N=1Nバツy2

両側のログを取ると、RMSLE対\ frac {1} {2} \ log \ left(\ frac {1} {N} \ sum_ {i = 1} ^ N(x_i-y_i)^を取得し ます2 \ right)12ログ1N=1Nバツy2、これは明らかに同じものではありません。

残念ながら、一般的には良い簡単な関係はありません(私より賢い人/私より難しいと思う人は、おそらくジェンセンの不等式を使用してこの2つの関係を理解できるでしょう)。

もちろん、それはログ変換された変数のRMSEです。分布の広がりの大まかな意味が必要な場合は、代わりに、対数の広がりの大まかな意味を取得できます。つまり、RMSLE 1.052は、「平均」が真の値の倍であることを意味します。 1 / 2.86。もちろん、それはRMSEの意味とはまったく異なります。2.86


こんにちは@Dougalありがとう!これは間違いなく問題を解決するのに役立ちます。
オーパス

18

特定のケースを分析する場合でさえ、簡単な一般的な解釈があるかどうかはわかりません。

たとえば、すべてのケースを平均値で予測し、それをあなたのアプローチと比較した場合、エラーとなるものを評価することに興味があるかもしれません。

とにかく、予測値と真値の両方が巨大な数値である場合に予測値と真値の大きな差をペナルティにしたくない場合、RMSLEが通常使用されると思います。これらの場合、書き換えることができるため、割合の違いのみが重要です

ログP+1ログA+1=ログP+1A+1

たとえば、P = 1000およびA = 500の場合、P = 100000およびA = 50000の場合とほぼ同じエラーが発生します。


1

私の理解では、予測と実際の数値の両方で対数を行うと、元の数値よりもはるかに滑らかな結果が得られます。そして、の小さなxを強調しながら、大きなxの影響を減らし。ログバツ+1

また、単純なグラフを描画することにより、直感的な印象を得ることができます。y=ログバツ+1


1

損失関数のパフォーマンスをより簡単に理解できる方法で測定する間接的な方法がありますが、期待どおりに値を直接変換することはありません。

RMSLEを使用してモデルのトレーニングとテストが完了したら、単純に新しいメトリックを取得します。モデルがRMSLEでトレーニングされたからといって、他のより理解しやすい損失関数を測定基準として使用できないわけではありません。

たとえば、Kerasでは、モデルコンパイラのメトリックカテゴリで追加の損失関数を指定できます。下では、MSLEがモデルのトレーニングに使用されます(RMSLEと同等)が、MAEとMSEも記録されます。

model.compile(loss='mean_squared_logarithmic_error', optimizer='adam', metrics=['mean_absolute_error','mean_squared_error'])
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.