正則化アルゴリズムを使用している間に、特徴選択を行う必要がありますか?


20

統計学習アルゴリズムを実行する前に、特徴選択方法(ランダムフォレストの特徴の重要度値または単変量の特徴選択方法など)を使用する必要性に関して1つの質問があります。

重みベクトルに正則化ペナルティを導入することができる過剰適合を避けることがわかっています。

したがって、線形回帰を行いたい場合は、L2またはL1またはElastic net正則化パラメーターを導入できます。スパースソリューションを取得するには、L1ペナルティが機能選択に役立ちます。

その後、LassoなどのL1正則化回帰を実行する前に、機能の選択を行う必要がありますか?技術的には、LassoはL1ペナルティによって機能を削減するのに役立ちます。それでは、なぜアルゴリズムを実行する前に機能を選択する必要があるのですか?

Anovaを実行してからSVMを実行すると、SVMを単独で使用するよりもパフォーマンスが向上するという研究記事を読みました。ここで質問です。SVMは本質的にL2ノルムを使用して正則化を行います。マージンを最大化するために、重みベクトルのノルムを最小化しています。そのため、その目的関数で正則化を行っています。それでは、SVMなどの技術的なアルゴリズムは、機能の選択方法に煩わされるべきではありませんか?しかし、レポートでは、通常のSVMがより強力になる前に、単変量の特徴選択を行うといわれています。

考えている人はいますか?


私が提起する質問の1つは、SVMの正規化がカーネルメソッドでどのように機能するかです。L2ノルムregは、正規化された入力に依存します。ただし、カーネル(多項式など)を使用する場合、有効な入力(多項式のべき乗)は正規化されなくなります。
seanv507

回答:


17

機能を選択すると、正規化されたモデルのパフォーマンスが向上する場合がありますが、私の経験では、一般に一般化のパフォーマンスが低下します。これは、モデルに関してより多くの選択を行うと(パラメーターの値、機能の選択、ハイパーパラメーターの設定、カーネルの選択など)、より多くのデータを作成する必要があるためです。これらの選択肢は確実に。通常、これらの選択は、データの有限セットに対して評価される基準を最小化することにより行われます。つまり、基準には必然的にゼロ以外の分散があります。その結果、基準をあまりにも積極的に最小化する場合、過剰に適合させることができます。つまり、評価する特定のサンプルに依存する特徴のために基準を最小化する選択を行うことができます。パフォーマンスの真の改善。

現在、SVMは、次元に依存しない一般化パフォーマンスの限界の近似実装です。したがって、原則として、正則化パラメーターが正しく選択されていれば、機能選択なしで良好なパフォーマンスを期待できます。ほとんどの機能選択方法には、そのようなパフォーマンスの「保証」はありません。

L1基準は一般にフィーチャのトリミングに効果的であるため、L1方法の場合、フィーチャの選択は気にしません。効果的である理由は、フィーチャがモデルに出入りする順序を誘導するためです。これにより、フィーチャを選択する際に使用可能な選択肢の数が減り、過剰適合しにくくなります。

機能を選択する最大の理由は、どの機能が関連/重要であるかを見つけることです。機能選択の最悪の理由は、正規化されたモデルのパフォーマンスを改善することです。これは一般に事態を悪化させます。ただし、一部のデータセットでは大きな違いを生む可能性があるため、それを試して、堅牢で公平なパフォーマンス評価スキーム(ネストされたクロス検証など)を使用して、自分のデータセットがそのデータセットの1つであるかどうかを確認することをお勧めします。


ネストされた相互検証とはどういう意味ですか?k倍の交差検証をN回適用していますか?
yasin.yazici

5

多くの人は、正則化は無関係な変数の世話をするのに十分であると考えており、目標が予測精度である場合、適切に正則化、部分プーリング、階層モデルの作成などを行う場合、変数の選択は必要ありません。たとえば、特定の変数パラメーター推定がまで正規化されているか、モデルから完全に削除されている場合()は本当にtは予測の問題に大きな違いをもたらします。β J = 0.0001 β J = 0jβ^j=.0001β^j=0

ただし、変数を完全に削除する理由はまだあります。

  1. 時々、目標は予測精度ではなく、世界現象の説明です。特定の従属変数に影響を与え、影響を与えない変数を知りたい場合があります。これらのタイプの状況では、s約モデルは、理解して解釈するための好ましい方法です
  2. あなたは自分自身を危険にさらしている。本当に効果のない変数をそのままにしておくと、異なるデータを収集すると変数が結果に影響を与える可能性があるため、自分で設定していることになります。これは、さまざまなアプリケーションで何度も何度もリフィットするモデルに特に適しています。β^j
  3. 計算上の理由-通常、変数の少ないモデルはより高速に実行され、これらの無関係な変数のデータを保存する必要はありません。

2
こんにちはTrynnaDoStat、私はあなたのポイント1と3に完全に同意します。しかし、引数2は実際にはポイントに達しません。同じデータセットで機能選択を行う場合、間違った機能セットを選択するリスクもあります。なぜなら、1つのランダム変数はデータ内の目標変数とよく相関しているように見えるからです。
gstar2002

β^j

0

過剰適合が最初に機能選択を必要とする理由だとは思わない。実際、過剰適合は、モデルに十分なデータを与えない場合に発生するものであり、特徴選択により、アルゴリズムに渡すデータの量がさらに減少します。

代わりに、フィーチャの選択は、フィーチャの重要度を独自に決定する権限を持たないモデルの前処理ステップとして、またはこの重要度に独自の重みを付ける必要がある場合に効率が大幅に低下するアルゴリズムとして必要だと言います。

たとえば、ユークリッド距離に基づく単純なk最近傍アルゴリズムを使用します。最終分類に対して同じ重みまたは重要性を持つすべてのフィーチャを常に調べます。したがって、100個の機能を指定しても、分類問題に関連するのはこれらのうち3つだけである場合、これらの追加機能からのすべてのノイズは3つの重要な機能からの情報を完全に消し去ってしまい、有用な予測は得られません。代わりに重要な機能を事前に決定し、それらのみを分類器に渡すと、はるかに優れた動作をします(言うまでもなく、はるかに高速です)。

一方、ランダムフォレスト分類子を見てください。トレーニング中に、すべての機能のサブセットから選択して最適な分割を見つけることにより、どの機能が最も役立つかを自動的に決定します。したがって、97個の役に立たない機能をふるいにかけて3つの優れた機能を見つけるのははるかに優れています。もちろん、事前に選択しておけば、より高速に実行できますが、通常、関連性がなくても、多くの追加機能を提供することで分類力はそれほど低下しません。

最後に、ニューラルネットワークを見てください。繰り返しますが、これは無関係な特徴を無視する力を持つモデルであり、逆伝播によるトレーニングは通常、興味深い特徴の使用に収束します。ただし、入力が「白色化」された場合、つまり、ユニット分散にスケーリングされ、相互相関が除去された場合、標準のトレーニングアルゴリズムがはるかに速く収束することが知られています(LeCun et al、1998)。したがって、機能の選択を厳密に行う必要はありませんが、入力データの前処理を行うために、純粋なパフォーマンスの観点で支払うことができます。

つまり、要約すると、特徴選択は過適合とは関係がなく、学習方法の分類力と計算効率を向上させることと関係があります。必要な量は、問題の方法に大きく依存します。


3
(1)最初の提案には同意しません。機能を選択してもデータ量は減りませんが、機能の数は減ります。インスタンス(サンプル)の数は同じままであり、データを近似するために分類器が必要とするパラメーター(パラメトリックモデルの場合)が少ないため、オーバーフィットに役立ちます。パラメータが少ないほど表現力が低いため、オーバーフィットする可能性が低くなります。(2)KNNの前に使用するために言及した特徴選択アルゴリズムのタイプは何ですか?どの機能がより効果的かをどのように知るのですか?
yasin.yazici

@ yasin.yazici:手書きの数字分類を行っており、左上のピクセルを除くすべてを破棄するとします。持っているデータの量を減らしただけではありませんか?
cfh

@chfいいえ、機能の数を減らすだけです。データセットがMNISTであると言わないように、各サンプルと60000個のサンプルに784個の特徴があります。機能の一部を捨てても、60000個のサンプルが残っています。
yasin.yazici

@ yasin.yazici:私のポイントは、サンプルの数はデータの量と同じではないということです。データは、「サンプルxフィーチャ」のマトリックス全体です。
cfh

機能の選択は、過剰適合になる可能性があります(そして、しばしば過剰適合します)。正規化された学習器を使用していて、機能の重要性を気にしない場合、大量のデータと堅牢な検証スキームがない限り、機能の選択にあまり役立ちません。
Firebug

0

パラメーターをロバストに最適化するのに十分な数のデータポイントがない場合、いくつかの変数を削除するための機能選択を行うことができると思います。ただし、モデル化したい信号を失う可能性があるため、あまり多くのことを行うことはお勧めしません。

さらに、ビジネスの理解に基づいて、削除する必要がある特定の機能がモデルに含まれない場合があります。


0

投げ縄の場合、迷惑な特徴を除去するためにデータを前処理することは実際にはかなり一般的です。これを行う方法を議論した最近の論文については、Xiang et alのLasso問題のスクリーニングテストを参照してください。私が見た論文で言及されている共通の動機は、ソリューションを計算する計算負荷を減らすことです。

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