交差検証の前に、教師なしの機能選択を実行することは実際に問題ありませんか?


9

統計的学習の要素、私は、次のステートメントを見つけました:

資格が1つあります。サンプルが除外される前に、教師なしの最初のスクリーニング手順を実行できます。たとえば、交差検証を開始する前に、50のサンプルすべてで最も分散が高い1000の予測子を選択できます。このフィルタリングはクラスラベルを含まないため、予測子に不当な利点を与えません。

これは実際に有効ですか?つまり、事前に属性をフィルタリングすることで、トレーニングデータや新しいデータ環境を模倣していません。つまり、実行しているフィルタリングが監視されていないということですか。相互検証プロセス内で実際にすべての前処理ステップを実行する方が良いのではないですか?そうでない場合は、機能の正規化/ PCAなど、すべての教師なし前処理を事前に実行できることを意味します。ただし、トレーニングセット全体でこれを行うことにより、実際に一部のデータをトレーニングセットにリークしています。比較的安定したデータセットを使用すると、これらの違いは非常に小さい可能性が高いことに同意できます。これについて考える正しい方法は何ですか?

回答:


2

相互検証の前に行われる段階として、教師なし機能の選択は、機能の正規化と多少似ています。

  1. 相互検証の特定の分割の観点から見ると、トレーニングデータはテストデータを調べました(ただし、独立変数のみで)。

  2. このピークは比較的穏やかです。

この質問で相互検証前の機能の正規化について説明しました。そこでディクラン・マルサピアルの答えを引用する

交差検証は、統計モデルではなく、統計手順のパフォーマンスを推定する方法として最もよく見られています。したがって、公平なパフォーマンスの見積もりを取得するには、正規化を含む交差検証の各分割で、その手順のすべての要素を個別に繰り返す必要があります。

あなたはリソースを割くことができそうだとすれば、最善のことは、折り目行う各クロスバリデーションを持っていることであろう任意のゼロからのデータに依存する処理を。

y


まあ、それは基本的に私の考えと一致しており、ここでの最後の文は実際には私の質問への短い答えです。おかげで、私はこれを受け入れられた答えにします。
Matek 2016年

1
効果は小さいかもしれませんがそれほど小さいとは限りません。あなたが言うように、CVの前に独立変数を事前にスケーリングするようなものです。CVは「未来」(テストデータ)を使用して「現在」(トレーニングデータ)のスケーリングを支援しますが、現実の世界では起こりません。ランダムな折りたたみがある場合(時系列、層別化などを使用しない場合)はそれほど効果はありませんが、なぜトレーニング/テストの障壁をすべて破るのでしょうか。
ウェイン、

@ウェイン私は確かにあなたに同意します。可能な限り、電車/テストの壁を破らないことが最善です。個人的には、これが違いをもたらす実際のケース(監視されていないFSや正規化)に遭遇したことはありませんが、「正しい方法」(つまり、折りたたみ)。ただし、あなたの正解(私は賛成です)からは、反対のケースに遭遇したことがわかります。そのため、明らかに両方のシナリオが存在します。
Ami Tavory

正規化によって違いが生じたCV結果に遭遇したかどうかはわかりません。これは、通常10倍のCVを実行するためです。つまり、テストの折りたたみは10%にすぎず、効果が小さくなります。67/33または75/25の非CV分割のようなものとの違いを見てきました。
ウェイン、

9

@AmiTavoryの意見と統計的学習の要素とでこの質問が異なることを願います。

サンプルサイズが非常に小さい応用フィールドから来た私は、教師なしの前処理ステップでも深刻なバイアスが発生する可能性があるという経験を持っています。

私の分野では、分類器がトレーニングされる前に、次元削減のために最も頻繁にPCAになります。ここではデータを表示できませんが、PCA +(クロス検証されたLDA)とクロス検証された(PCA + LDA)は、エラー率を約1桁低く見積もっていました。(これは通常、PCAが安定していないことを示す指標です。)

要素の「不当な利点」については、汚染+テストケースの分散を調べると、トレーニングケースとテストケースの両方で機能する機能が得られます。したがって、ここでは、楽観的な偏見の原因である自己実現預言を作成します。適度に快適なサンプルサイズがある場合、このバイアスは低くなります。

したがって、要素よりも少し保守的なアプローチをお勧めします。

  • 複数のケースを考慮した前処理計算を検証に含める必要があります。つまり、それらはそれぞれのトレーニングセットでのみ計算されます(その後、テストデータに適用されます)。
  • 各ケースを独自に検討する前処理ステップ(私はスペクトロスコピストです:例はベースライン補正と強度正規化であり、これは行ごとの正規化です)は、それらが最初のステップの前である限り、相互検証から除外できます。複数のケースについて計算します。

そうは言っても、クロスバリエーションは適切な検証研究を行うためのショートカットにすぎません。したがって、実用性について議論することができます。

  • 問題の前処理で安定した結果が得られるかどうかを確認できます(たとえば、相互検証によってそれを行うことができます)。低いサンプルサイズですでに完全に安定していることがわかった場合、IMHOは、相互検証からそれを引き出すことにより、あまりバイアスが導入されないと主張するかもしれません。

  • ただし、以前の監督者を引用すると:計算時間は科学的な議論ではありません。
    私はしばしば、クロス検証のために数回のフォールドと数回の反復の「スニークプレビュー」を行って、すべてのコード(結果の要約/グラフを含む)を確認し、それを一晩または週末などサーバーに残して、よりきめの細かい相互検証。

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