回帰用の非対称損失関数を設計および実装する方法は?


24

問題

回帰では、通常、サンプルの平均二乗誤差(MSE)を 計算します

MSE=1ni=1n(g(xi)g^(xi))2
予測の品質を測定します。

現在、私は回帰の問題に取り組んでおり、その目的は、多くの数値的特徴が与えられた場合に顧客が製品に対して支払う価格を予測することです。予測価格が高すぎる場合、顧客は製品を購入しませんが、価格を単純に引き下げることができるため、金銭的損失は低くなります。もちろん、製品が長期間購入されない可能性があるため、高すぎてはいけません。一方、予測価格が低すぎる場合、製品は価格を調整する機会なしに迅速に購入されます。

言い換えれば、学習アルゴリズムは、すぐに金銭的損失をもたらす真の価格を過小評価するのではなく、必要に応じて減少させることができるわずかに高い価格を予測する必要があります。

質問

このコストの非対称性を組み込んだエラーメトリックをどのように設計しますか?


可能な解決策

非対称損失関数を定義する方法は、単純に重みを掛けることです:

1ni=1n|α1(g(xi)g^(xi))<0|(g(xi)g^(xi))2
を有するα(0,1)我々は、非対称の程度を変更するために調整することができるパラメータです。ここで見つけ。これは、二次損失を維持しながら行うべき最も簡単なことのように思えます。

1
@ MichaelChernick、FTR、これは良い質問だと思います。これは明確かつ首尾一貫して述べられており、私は少し気難しいのです。私が得ているのは(ご存じのとおり)回帰のフィッティング(つまり、解法)は、OLS損失関数 SSEを最小化することによって(デフォルトで)行われます。MSEをb / cを定数で除算することで同等に使用できることは、候補ベータの順序に影響を与えないということです。β
GUNG -復活モニカ

1
もう1つの事実は、MSE(多くの場合RMSE)が近似モデルの品質を評価するためによく使用されることです(ただし、SSEは同等に使用できます)。問題は、この質問は(とにかく)損失関数をどのように考え、再設計するかに関するもののようです。そのため、適合ベータは、品質について異なる考え方をするのではなく、デフォルトで設定されるはずの異なる既に適合しいるモデルの
GUNG -復活モニカ

1
@ Kiudee、Qの私の解釈が正しい場合、それを編集して損失関数タグを追加し、おそらくタイトルを「回帰用の非対称損失関数を設計および実装する方法」のように改訂することについてどう思いますか?あなたがそれらに同意しない場合のために、私は自分で編集を行いません。
GUNG -復活モニカ

2
参考までに、非対称損失関数が必要な場合に提案される分位点回帰については、Berk、2011、PDF hereを参照してください。
アンディW

1
この問題に取り組むためにさまざまな学習アルゴリズムを使用しているため、関数は少なくとも1回微分可能でなければなりません。
-Kiudee

回答:


7

上記のコメントで述べたように、分位点回帰は非対称損失関数を使用します(線形ですが、正と負の誤差の勾配が異なります)。分位回帰の2次(2乗損失)アナログは、期待回帰です。

参照の分位点回帰をグーグルで検索できます。期待回帰については、Rパッケージexpectregおよびリファレンスマニュアルのリファレンスを参照してください。


2

このような不均等な重み付けは、多くの場合、2つのクラスの分類問題で行われます。ベイズ規則は、1つのエラーの損失を他のエラーよりも高くする損失関数を使用して変更できます。これにより、不均等なエラー率を生成するルールが作成されます。

回帰では、負の誤差にある程度の重みを与え、正の誤差に大きな重みを与える重み付き平方和などの重み関数を構築することは確かに可能です。これは、重み付き最小二乗に似ていますが、予測変数の可能な値の空間で誤差分散が一定ではない問題を対象とするため、少し異なります。その場合、誤差の分散が小さいことがわかっているポイントの重みは大きく、誤差の分散が大きいことがわかっているポイントの重みは高くなります。もちろん、これにより、OLSが提供するものとは異なる回帰パラメーターの値が得られます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.