歪んだ/高い尖度データのサポートベクター回帰


8

サポートベクター回帰を使用して、かなり歪んだデータ(尖度が高い)をモデル化しています。データを直接モデル化しようとしましたが、主にデータの分布が原因であると誤った予測を取得しています。いくつかの外れ値(これは正当なデータポイントです)がSVRトレーニングに影響を及ぼしていると確信しています。また、おそらくクロスバリデーションでも影響があり、現時点では平均二乗誤差を最小限に抑えることでハイパーパラメーターを最適化しています。

SVRを適用する前にデータをスケーリング(たとえば、sqrt関数を使用して外れ値を減らす)したり、別のハイパーパラメーター最小化関数(たとえば、絶対誤差)を使用したりしましたが、より良い結果が得られるようですが、それでもあまり良くありません。誰かが同様の問題に遭遇したかどうか、そして彼らがそれにどのように取り組みましたか?どんな提案や代替方法でも大歓迎です。


変数がログを適用するよりも正である場合(Box-Cox変換の特殊なケース)が役立つ可能性があります
Yevgeny

Yevgenyに感謝します。変数は、残念ながら正と負の両方です。パワー変換またはBox-Cox変換を適用する方法はまだありますか?
tomas

回答:


8

あなたは使用することができスキューヘビーテイル(:私は論文との両方の著者午前免責事項より行儀何かにあなたのデータを変換するためにランバートW分布をLambertW Rパッケージ)。Box-Cox変換より​​も優れている点は、それらに正の制限がないこと、変換の最適パラメーターをデータから推定(MLE)できること、そして変換を忘れてデータをLambert W xとしてモデル化できることです。直接F分布。

LambertW Rパッケージには、いくつかの推定、変換、方法、など私は特に見をお勧めしますを提供します

   Gaussianize()
   IGMM()
   MLE_LambertW()

歪んだLambert W x F分布は、分布Fの歪んだバージョンを作成するための一般的なフレームワークです。逆に、傾斜したデータを再び対称にすることができます。この対称化されたデータの分布は、基本的にどのようなランベルトW x Fを持っているかを決定します。データが少し非対称である場合は、歪んだランベルトW xガウスがある可能性があります。データがさらに重い場合は、傾斜したランベルトW x tを試すことができます。

ヘビーテールランベルトW x Fは、Tukeyのh分布の一般化であり、データをガウス(非対称)にするための逆変換を提供します。この論文では、コーシーでさえもガウシアン化できるレベルであること、そしていくつかの正規性テストでもノーマルサンプルと区別できないことを示しています。


私たちのサイト、Georgへようこそ!
whuber

1

負の値を処理する1つの方法は、変数を正の範囲(たとえば、0.1以上)にシフトし、Box-Cox変換(またはクイックテストの場合は単にlog())を適用して、標準化することです。SVRはすべての係数に均一に適用される2次ペナルティに依存しているため、標準化はSVRにとって重要である可能性があります(したがって、SVRはスケール不変ではなく、可変標準化の恩恵を受けることができます)。結果の変数分布を必ず確認してください-それらはあまり歪んでいるはずがありません(理想的にはガウスに見えるはずです)

別の方法x <- x / norm(x)として、「空間サイン」変換を「空間サイン前処理:多変量推定量に適度なロバスト性を与える簡単な方法」に従って、入力ベクトルに適用することができますJ. Chem。INF モデル(2006)vol。46(3)1402〜1409ページこの手法では運があまりありませんでしたが、走行距離はさまざまです。


1
Yevgenyに感謝します。調べてみます。逆双曲線正弦変換は、正の値と負の値の両方で機能するように見える手法であるため、使用を考えていました。残念ながら、シータパラメータの推定方法がわかりません。あなたはこれについてまったく知っていますか?ありがとう。
tomas

私はこれを見てきました(パラメーターなし)式:x <-log(x + sqrt(x ^ 2 + 1))
Yevgeny

0

ソリューションにアプローチする1つの方法は、2つのモデルを作成することです。1つは分布と一致する値用で、もう1つは外れ値用です。この点についての私の提案は、データポイントが分布の境界内にある場合は0、それが外側にある場合は1の値であるバイナリ応答変数(0,1)を作成することです。したがって、データに保持したい外れ値のケースでは、ターゲット変数に1があり、残りは0になります。ここで、ロジスティック回帰を実行して外れ値の確率を予測し、平均値を乗算できます。予測を取得するための個々の確率を持つ異常値のグループ。残りのデータについては、SVMを実行して値を予測できます。

値は外れ値であるため、それらに関連付けられた低い確率があり、歪んだ外れ値を平均しても、外れ値の期待値は、接続されている低い確率によって引き下げられます。合理的な予測。

保険サービスプロバイダーの請求額を予測しているときに、同様のシナリオに遭遇しました。上記の手法を使用して、モデルのパフォーマンスを大幅に向上させました。

別の方法は、ターゲット変数のログ変換を行うことです。これは、ターゲット変数に正の値しかない場合に可能です。ただし、ターゲット変数の対数変換を行う場合は、変数を予測しながらエラーコンポーネントも含める必要があることを確認してください。

したがって、は、たとえば、log(Y)=a+BX+ϵ

次に、Y=exp(a+BX+ϵ)

ログ変換については、次のリンクをご覧ください。http//www.vims.edu/people/newman_mc/pubs/Newman1993.pdf

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