非常に高い次元での相互検証(非常に高い次元の分類で使用される変数の数を選択するため)


8

私の質問は、観測値よりも多くの変数がある場合の相互検証についてです。アイデアを修正するために、非常に高い次元(観察よりも多くの機能)の分類フレームワークに制限することを提案します。

問題:各変数について、分類問題の特徴の関心度を正確に測定するよりも重要度測定値があると仮定します。特徴のサブセットを選択して分類エラーを最適に減らすという問題は、特徴の数を見つけるという問題に減少します。i=1,,pT[i]i

質問:この場合に相互検証を実行する最も効率的な方法は何ですか(相互検証スキーム)?私の質問は、コードの記述方法ではなく、選択された機能の数を見つけようとするときに使用する交差検証のバージョン(分類エラーを最小限に抑えるため)ではなく、交差検証を実行するときに高次元を処理する方法(したがって、上記の問題は、CVを高次元で議論するための「おもちゃの問題」のようなものです。

表記: は学習セットのサイズ、pは特徴の数(つまり、特徴空間の次元)です。非常に高い次元とは、p >> nを意味します(たとえば、および)。np=10000n=100


それでも、CVで何をどのような目的で測定したいですか?属性番号のカットオフを取得するには?

@mbq:アドバイスありがとうございます。私はそれに応じて質問を編集しました。もっと明確になってほしいと思います!
ロビンギラード

回答:


6

あなたは一つの重要な問題を見逃しています-T [i]のようなものはほとんどありません。(同様の振幅の)2つの属性の合計が重要である単純な問題について考えます。それらの1つを削除すると、もう1つの重要性が突然低下します。また、無関係な属性の多くは、ほとんどの分類器の精度であり、重要性を評価する能力に沿っています。最後に重要なことですが、確率的アルゴリズムは確率的結果を返すため、T [i]ランキングでさえ不安定になる可能性があります。したがって、原則として、少なくとも各属性(または少なくとも重要でない冗長な属性)が削除された後でT [i]を再計算する必要があります。

トピックに戻ると、どのCVを選択するかという問題は、ほとんどが問題に依存しています。非常に少数のケースでは、他のすべてがLOOになり始めるため、LOOが最良の選択です。それでも小さいのは、n = 100ではなく、n = 10です。したがって、私はランダムサブサンプリング(私が最もよく使用する)またはKフォールド(その後、各ステップで分割を再作成する)をお勧めします。それでも、平均だけでなく誤差推定の標準偏差も収集する必要があります。これは、(おおよその)どの平均の変化が有意なansであるかを判断するために使用できるため、プロセスを停止するタイミングを決定するのに役立ちます。


「あなたは1つの重要な問題を見逃している-T [i]のようなことはほとんどない」私は変数の数を選択する問題に焦点を当てる答えを欲しかった。T [i]の構造(私が同意するものではない)はここで議論されていますstats.stackexchange.com/questions/490/… 時々、問題を個別に議論することも有用です。
ロビンジラール

1
@robinしかし、ここではそれらを切り離すことはできません。その質問で言及されているアルゴリズムのほとんどは、この問題に対処するために作成されました。前方選択は相関機能を削除することであり、後方排除は重要度測定を安定させることであり、mcmcは相関機能を含めることです...

@robinいくつかの正確な重要度の測定を行うという考えは、いわゆるフィルターアルゴリズムの基礎でした。それらは計算的に安価であるという利点がありますが、それでも価値はありません。

0

これは良い質問であり、アンサンブル学習者とモデル平均化と呼ばれるものにヒットする傾向があります(以下のリンクを提供します)。

高次元の設定では、個々のモデルが、概して同じ信号を運ぶ多くの同一線上で交換可能な変数の中から1つを選択する可能性があるため、ソリューションの安定性(つまり、どの機能/変数が選択されるか)が不足する可能性があります(多くの理由のうちの1つ)。以下は、これに対処する方法に関するいくつかの戦略です。

ベイズモデル平均例えば、

Hoeting、ジェニファーA.、等。「ベイジアンモデルの平均化:チュートリアル」統計科学(1999):382-401。

多くのモデル(たとえば100)を構築し、それぞれが元のフィーチャーのサブセットで構築されます。次に、個々のモデルごとに、どの変数が有意であったかが判断され、各モデルはデータの尤度によって重み付けされます。これにより、「相互検証」の方法で変数の有効性を「判断」する方法の概要がわかります。一部の機能は高度に相関していることを事前に知っているため、それらが一緒に選択されないようにサンプリングスキームを誘導できます(またはブロック相関構造がある場合は、分散共分散行列で異なるブロックの要素を選択します)。

では機械学習タイプの設定:「アンサンブル特徴選択」を見て。この論文(一例)

ノイマン、ウルスラ、ニキータゲンゼ、ドミニクハイダー。「EFS:RパッケージおよびWebアプリケーションとして実装されたアンサンブル機能選択ツール。」BioDataマイニング10.1(2017):21。

さまざまな「重要性」メトリック全体で機能の重要性を判断して、最終的な機能を選択します。

機械学習ルートは、最適化再定式化のp = nb / cで飽和するb / c線形モデル(機能選択あり)の方が良いかもしれません(この投稿を参照)p> nの場合、投げ縄は最大でn変数)。しかし、機能の選択を「相互検証」する方法について適切な客観的な基準を定義して正当化できる限り、良いスタートを切ることができます。

お役に立てれば!

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