回帰における不均衡なデータのサンプリング


22

分類のコンテキストで不均衡なデータを処理することに関して良い質問がありましたが、私は人々が回帰のためにサンプリングするために何をするのかと思っています。

問題の領域はサインに対して非常に敏感ですが、ターゲットの大きさに対してはわずかに敏感であるとします。ただし、その大きさは十分に重要であるため、モデルは分類(ポジティブクラスとネガティブクラス)ではなく回帰(連続ターゲット)である必要があります。そして、この問題領域では、トレーニングデータのセットはポジティブターゲットよりも10倍多いネガティブになると言います。

このシナリオでは、ポジティブターゲットの例をオーバーサンプリングしてネガティブターゲットの数と一致させ、モデルをトレーニングして2つのケースを区別します。明らかに、不均衡なデータではトレーニングアプローチがひどく機能するため、何らかのサンプリングを行う必要があります。予測を行うときに、このオーバーサンプリングを「元に戻す」適切な方法は何でしょうか?おそらく、自然なトレーニングデータのターゲットの(負の)平均または中央値で翻訳しますか?

回答:


15

不均衡は必ずしも問題ではありませんが、どうやってそこにたどり着くことができます。ターゲット変数に基づいてサンプリング戦略を立てるのは適切ではありません。この変数には回帰モデルにランダム性が組み込まれているため、これに基づいてサンプリングを行うと、あらゆる種類の推論を行う際に大きな問題が発生します。これらの問題を「元に戻す」ことは不可能だと思います。

予測変数に基づいて合法的にオーバーサンプリングまたはアンダーサンプリングすることができます。この場合、モデルの仮定が有効であるように慎重にチェックすれば(たとえば、通常の仮定と「通常の」回帰がある場合に、この状況で重要と思われる同分散性など)、そうする必要はないと思います予測するときにオーバーサンプリングを元に戻します。あなたのケースは、バランスの取れた範囲の予測変数を持つように実験を明示的に設計したアナリストに似ています。

編集-追加-Yに基づいてサンプリングするのがなぜ悪いのかの拡張

y=バツb+eeeバツb)eの平均値がゼロになるか、同じ分布になることはなくなります。たとえば、eの非常に低い値を含むyの低い値は、選択される可能性が低くなります。これは、そのようなモデルを適合させる通常の手段に基づいた推論を台無しにします。修正は、切り捨てられたモデルを適合させるために計量経済学で行われた修正と同様に行うことができますが、それらは苦痛であり、追加の仮定が必要であり、代替がない場合にのみ使用する必要があります。

以下の極端な図を考えてください。応答変数の任意の値でデータを切り捨てると、非常に大きなバイアスが生じます。説明変数のために切り捨てる場合、必ずしも問題はありません。予測値のために選択されたサブセットに基づく緑の線は、真の近似線に非常に近いことがわかります。これは青い点だけに基づいて青い線とは言えません。

これは、アンダーサンプリングまたはオーバーサンプリングのそれほど深刻ではないケースにまで拡張されます(トランケーションは、論理的に極端なアンダーサンプリングと見なされるため)。

ここに画像の説明を入力してください

# generate data
x <- rnorm(100)
y <- 3 + 2*x + rnorm(100)

# demonstrate
plot(x,y, bty="l")
abline(v=0, col="grey70")
abline(h=4, col="grey70")
abline(3,2, col=1)
abline(lm(y~x), col=2)
abline(lm(y[x>0] ~ x[x>0]), col=3)
abline(lm(y[y>4] ~ x[y>4]), col=4)
points(x[y>4], y[y>4], pch=19, col=4)
points(x[x>0], y[x>0], pch=1, cex=1.5, col=3)
legend(-2.5,8, legend=c("True line", "Fitted - all data", "Fitted - subset based on x",
    "Fitted - subset based on y"), lty=1, col=1:4, bty="n")

答えてくれてありがとう、ピーター。「この変数には回帰モデルにランダム性が組み込まれているため」という意味について詳しく説明してください。ターゲットは環境内で観測可能なので、測定エラーを意味しますか?
-someben

1
ここに、この問題に関するFoster ProvostというNYU教授の論文があります: pages.stern.nyu.edu/~fprovost/Papers/skew.PDF 私の場合、分類ではなく不均衡なデータで回帰を行っています。したがって、私の質問。
-someben

1
@someben-詳細を作成し、例を追加しました。回帰文献には、従属変数に基づいてサンプリングできないことが十分に説明されています。これは他のモデルにも当てはまります。「不均衡」なサンプルは別の種類のものであり、問​​題ではありません。不当なサンプリング戦略によって意図的に作成していない限り。問題となるのはバランスや不足ではなく、データの取得方法です。
ピーターエリス

2
@someben、いいえ違いはないと思います。問題はそれよりも根本的です。
ピーターエリス

1
いい例!あなたのグラフは、サンプル選択バイアスに関するリチャード・バーク(1983)の論文を思い出させます。また、サンプル選択メカニズムを明示的に知っていれば、これらの問題を「元に戻す」ことができます。また、その概念に基づいて構築された一連の計量経済モデル(tobitモデルやJames Heckmanの作品など)があります。
アンディW

2

それは、因果分析を行うのか、予測を行うのかという問題です。http://m.statisticalhorizo​​ns.com/?ref=http%3A%2F%2Ft.co%2F54MWZrVAyX&url=http%3A%2F%2Fstatisticalhorizo​​ns.com%2Fprediction-vs-causation-in-regression-analysis&width=640を読む

予測のためのトレーニング用のターゲット変数のリサンプリングは、リサンプリングされていないホールドアウトサンプルでテストする限り機能します。最終的なパフォーマンスチャートは、ホールドアウトのみに基づいている必要があります。モデルの予測可能性を決定する際の精度を高めるには、相互検証手法を使用する必要があります。

回帰モデルの最終分析および不均衡なデータセットで「元に戻す」ことができます。


2

これはあなたの問題に対する実用的な解決策を提供する試みではありませんが、私は回帰問題で不均衡なデータセットを扱うことについて少し研究し、私の結果を共有したかったです:

  • 基本的に、これは多かれ少なかれ未解決の問題であり、解決策の試みはほとんど公開されていません(Krawczyk 2016、「不均衡なデータから学ぶ:未解決の課題と今後の方向性」を参照)。
  • サンプリング戦略は、最も人気のある(のみ?)追求されたソリューションアプローチ、つまり、過小評価されたクラスのオーバーサンプリングまたは過大表現されたクラスのアンダーサンプリングであるようです。例えば、Torgo、Ribeiro et al。、2013による「SMOTE for Regression」を参照してください。
  • 説明したすべてのメソッドは、何らかの方法で(連続的に分散された)データを個別のクラスに分類し、標準のクラスバランシングメソッドを使用することで機能するように見えます。

1

まず、1:10の配給はまったく悪くありません。サンプリングを元に戻す簡単な方法があります。

1)分類問題の場合、負のクラスを10でサブサンプリングした場合、結果の確率は本来の10倍になります。結果の確率を10で単純に除算できます(モデル再キャリブレーションとして知られています)

2)Facebookは(ロジスティック回帰のクリック予測のために)サブサンプルも行い、負のダウンサンプリングを行います。再校正は、単純な式p /(p +(1-p)/ w)によって行われます。ここで、pはダウンサンプリングの予測、nwは負のダウンサンプリングレートです。


私はこれがそんなに簡単だとは思わない、Arpit。多くの非線形アルゴリズムでは、アンダーサンプリングクラスのインスタンスが十分に見られず、オーバーサンプリングクラスに偏っており、非線形性のため、それを修正する手段がありません。
アナトリーアレクセーエフ

1

あなたの問題を考えてあなたを助けるかもしれないのは、回帰のための合成少数派オーバーサンプリングテクニック(SMOTER)だと思います。このトピックに関するいくつかの研究があります。ただし、これまでに遭遇した可能性があるため、分類の対応物よりも探索されていません。

あなたが研究の観点からそれを理解することにどの程度興味を持っているかに応じて、以下に引用する論文(およびhttp://proceedings.mlr.press/v74/で発表された会議)を提案するかもしれません。合成観測の生成にガウスノイズが導入されたことを本当に感謝しています。

より実用的なソリューションに興味がある場合、最初の著者はGithubページでRの実装を利用できます。https://github.com/paobranco/SMOGN-LIDTA17

Pythonがあなたの説得力のあるものである場合、私は最近、SMOGNアルゴリズムの完全にPython的な実装を配布しました。https://github.com/nickkunz/smogn

これがお役に立てば幸いです!

Branco、P.、Torgo、L.、Ribeiro、R.(2017)。「SMOGN:不均衡な回帰のための前処理アプローチ」。機械学習研究論文集、74:36-50。http://proceedings.mlr.press/v74/branco17a/branco17a.pdf

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