回帰の正則化(線形、ロジスティック...)は、過剰適合を減らす最も一般的な方法です。
目標が予測精度(説明ではない)である場合、特にビッグデータセット(mi / billionの観測値とmillionsの機能)に適した、正則化の代替手段はありますか?
回帰の正則化(線形、ロジスティック...)は、過剰適合を減らす最も一般的な方法です。
目標が予測精度(説明ではない)である場合、特にビッグデータセット(mi / billionの観測値とmillionsの機能)に適した、正則化の代替手段はありますか?
回答:
質問に直接関係しない2つの重要なポイント:
第一に、目的が解釈ではなく精度であっても、多くの場合、正規化が必要です。なぜなら、モデリングに使用されるデータではなく、実際のテスト/生産データセットの「高精度」を確認するからです。
第二に、10億の行と100万の列がある場合、正則化が不要になる可能性があります。これは、データが膨大であり、多くの計算モデルに「制限されたパワー」があるためです。つまり、オーバーフィットすることはほとんど不可能です。これが、一部のディープニューラルネットワークに数十億のパラメーターがある理由です。
さて、あなたの質問について。BenとAndreyが述べたように、正則化の代替としていくつかのオプションがあります。さらに例を追加したいと思います。
より単純なモデルを使用します(たとえば、ニューラルネットワークで隠れユニットの数を減らします。SVMで低次の多項式カーネルを使用します。ガウスの混合でガウスの数を減らします。など)
最適化の早い段階で停止します。(たとえば、ニューラルネットワークトレーニングのエポックを減らし、最適化(CG、BFGSなど)の反復回数を減らします。)
多くのモデルの平均(たとえば、ランダムフォレストなど)
正則化の2つの選択肢:
ジェフヒントン(バックプロパゲーションの共同発明者)は、かつて彼に言ったエンジニアの話を語りました(言い換えれば、ジェフ、私たちは大量のデータを持っているので、ディープネットにドロップアウトする必要はありません)。そして、彼の応答は、「では、オーバーフィットするまでさらに深いネットを構築し、ドロップアウトを使用する必要があります」でした。良いアドバイスはさておき、十分なデータがある限り、深いネットでも正規化を避けることができます。
固定数の観測値を使用して、より単純なモデルを選択することもできます。単純な線形回帰で切片、勾配、誤差分散を推定するために、おそらく正則化は必要ありません。
次元削減
機能の選択(次元削減)
低次元の機能空間を取得するために、機能選択のラウンドを実行できます(例:LASSOを使用)。LASSOを使用した機能選択のようなものは、機能の大規模ではあるが未知のサブセットが無関係である場合に役立ちます。
ランダムフォレストなど、過適合しにくいアルゴリズムを使用します。(設定、機能の数などによって異なりますが、これらは通常の最小二乗法よりも計算コストが高くなります。)
他の回答のいくつかは、ブースティングおよびバギングのテクニック/アルゴリズムの利点にも言及しています。
ベイジアン法
係数ベクトルに事前分布を追加して、過剰適合を減らします。これは概念的に正則化に関連しています。リッジ回帰は、事後推定の最大値の特殊なケースです。
反復/エポックの数を定義できるソルバーでモデルを使用している場合、検証エラーを追跡し、早期停止を適用できます。検証エラーが増加し始めたらアルゴリズムを停止します。
2つの考え:
次に、Ben Ogorekによって提案された「より単純なモデルを使用する」戦略です。
私は、小さな整数係数(たとえば、-5と5の間の整数係数を持つ最大5つの変数)を使用して、本当にまばらな線形分類モデルに取り組んでいます。モデルは、精度とトリッキーなパフォーマンスメトリック(キャリブレーションなど)の点で一般化されています。
モデルに追加の制約(単調性制約、サイド情報など)を指定できる場合、これは仮説空間を減らすことで一般化にも役立ちます(たとえば、このペーパーを参照)。
これは注意して行う必要があります(たとえば、おそらく制約なしでモデルをベースラインと比較し、制約を厳選しないようにトレーニングプロセスを設計する必要があります)。