機械学習で相互検証を実行する際の「最終」モデルの機能選択


76

機能の選択と機械学習について少し混乱しているので、手伝ってくれないかと思っていました。2つのグループに分類され、1000の機能を持つマイクロアレイデータセットがあります。私の目的は、理論的に他のデータセットに適用してそれらのサンプルを最適に分類できるシグネチャで少数の遺伝子(私の特徴)(10-20)を取得することです。サンプル数が少ないため(<100)、テストとトレーニングセットを使用せず、Leave-one-outクロス検証を使用して堅牢性を判断しています。サンプルの分割ごとに特徴選択を実行する必要があることを読みました。

  1. テストセットとして1つのサンプルを選択します
  2. 残りのサンプルで機能選択を実行します
  3. 選択した機能を使用して、機械学習アルゴリズムを残りのサンプルに適用します
  4. テストセットが正しく分類されているかどうかをテストします
  5. 1に進みます。

これを行うと、毎回異なる遺伝子を取得する可能性があります。それでは、「最終的な」最適な遺伝子分類子をどのように取得しますか。すなわち、ステップ6とは何ですか。

最適とは、今後の研究で使用すべき遺伝子のコレクションです。たとえば、癌/正常なデータセットがあり、SVMに従って腫瘍タイプを分類する上位10の遺伝子を見つけたいとします。診断テストとして使用できるかどうかを確認するために、さらなる実験で使用できる遺伝子とSVMパラメータのセットを知りたいです。


完全な開示のために、私はすでにこれを生体伝導体リストに投稿していると言うべきです
ダニエルズブリューワー

生体伝導体の結果をここにまとめてください。
シェーン

回答:


39

これは、SNPデータを扱うときに直面した非常に良い質問です。そして、文献から明らかな答えが見つかりませんでした。

LOOまたはKフォールドCVを使用するかどうかにかかわらず、クロス検証の繰り返しは最も外側のループでなければならないので、異なる機能になります。LOO-CVから取得した機能のnベクトルを評価するある種の投票スキームを考えることができます(論文を思い出せませんが、Harald BinderまたはAntoineCornuéjolsの仕事をチェックする価値があります)。新しいテストサンプルがない場合、通常行われるのは、最適な相互検証済みパラメーターが見つかったら、サンプル全体にMLアルゴリズムを再適用することです。ただし、この方法では、モデルが最適化のために既に使用されているため、過剰適合がないことを保証できません。

または、代わりに、たとえばランダムフォレスト(RF)のように、変数の重要度の尺度でランク付けされた機能を提供する埋め込みメソッドを使用できます。RFには相互検証が含まれているため、ケースや次元の呪いについて心配する必要はありません。ここに、遺伝子発現研究におけるそれらの応用の素晴らしい論文があります:np

  1. カトラー、A。、カトラー、DR、スティーブンス、JR(2009)。Tree-Based Methods、in High-Dimensional Data Analysis in Cancer Research、Li、X. and Xu、R.(eds。)、pp。83-101、Springer。
  2. Saeys、Y.、Inza、I。、およびLarrañaga、P.(2007)。バイオインフォマティクスの特徴選択技術のレビュー。バイオインフォマティクス23(19):2507-2517。
  3. Díaz-Uriarte、R.、アルバレスデアンドレス、S.(2006)。ランダムフォレストを使用したマイクロアレイデータの遺伝子選択と分類。BMCバイオインフォマティクス7:3。
  4. Diaz-Uriarte、R.(2007)。GeneSrFおよびvarSelRF:ランダムフォレストを使用した遺伝子選択および分類のためのWebベースのツールおよびRパッケージ。BMC Bioinformatics8:328

SVMの話をしているので、ペナルティSVMを探すことができます。


ありがとう。私はSVMで特に販売されているわけではありませんが、それを例として使用しています。ランダムツリーを使用した場合、相互検証を行う必要はありませんか?そうです。
ダニエルズブリューワー

7
はい。RFには、ツリーの成長時に変数のランダムサンプリング(通常)が含まれ、各ツリーはブーストされた個人のサンプルに基づいています。変数重要度は、順列手法を使用して、いわゆるout-of-bagサンプル(決定ツリーの構築には使用されないサンプル)で計算されます。アルゴリズムはm個のツリーに対して繰り返され(デフォルトはm = 500)、ツリーレベルでの不確実性を補うために結果が平均化されます(ブースティング)。p
chl

3
ランダムツリーではなく、ランダムフォレストと呼ばれることが重要です。Googleに問題がある可能性があります。

1
+1、私にとっては良い答えと思いがけないこと-論文の参考文献、特にレビューをありがとう。
アルス

十分なデータがあるので、テストセットを保持し、トレーニングセットでloocvを実行してモデルパラメーターを最適化し、トレインセット全体に適合させ(そして「最終」分類器と呼びます)、最終モデルを評価するのは最適ではありませんテストセットに?
のUser0

40

原則として:

データセット全体でトレーニングされた単一のモデルを使用して予測を行います(したがって、機能のセットは1つのみです)。交差検証は、データセット全体でトレーニングされた単一モデルの予測パフォーマンスを推定するためにのみ使用されます。交差検証を使用することは非常に重要であり、各フォールドでプライマリモデルの適合に使用する手順全体を繰り返すことができます。

これが発生する理由を確認するには、バイナリフィーチャが1000個あり、ケースとフィーチャがすべて純粋にランダムである100ケースのみのバイナリ分類問題を考えます。したがって、フィーチャとケースの間に統計的な関係はありません。完全なデータセットでプライマリモデルをトレーニングする場合、ケースよりも多くの機能があるため、トレーニングセットで常にゼロエラーを達成できます。「情報提供」機能のサブセットを見つけることもできます(偶然に関連付けられます)。これらの機能のみを使用して相互検証を実行すると、ランダムな推測よりも優れたパフォーマンスの推定値が得られます。その理由は、交差検証手順の各フォールドには、予測に適していたため、機能が選択されたためにテストに使用された保留ケースに関する情報がいくつかあるためです。差し出されたものを含む。もちろん、真のエラー率は0.5になります。

適切な手順を採用し、各フォールドで機能の選択を実行すると、そのフォールドで使用される機能の選択で保留されているケースに関する情報はなくなります。この場合、適切な手順を使用すると、約0.5のエラー率が得られます(ただし、データセットの実現方法によって多少異なります)。

読むべき良い論文は次のとおりです。

Christophe Ambroise、Geoffrey J. McLachlan、「マイクロアレイ遺伝子発現データに基づく遺伝子抽出の選択バイアス」、PNAS http://www.pnas.org/content/99/10/6562.abstract

OPに非常に関連性があり、

Gavin C. Cawley、Nicola LC Talbot、「パフォーマンス評価におけるモデル選択の過適合とその後の選択バイアス」、JMLR 11(Jul):2079-2107、2010 http://jmlr.csail.mit.edu/papers /v11/cawley10a.html

これは、モデル選択で同じことが簡単に発生する可能性があることを示しています(たとえば、CVプロシージャの各反復で繰り返す必要があるSVMのハイパーパラメーターのチューニング)。

実際には:

バギングを使用し、パフォーマンスを推定するためにアウトオブバッグエラーを使用することをお勧めします。多くの機能を使用して委員会モデルを取得しますが、実際には良いことです。単一のモデルのみを使用する場合、特徴選択基準を過剰に適合させ、多くの特徴を使用するモデルよりも予測が貧弱なモデルになる可能性があります。

アランミラーズは、回帰におけるサブセット選択に関する本(統計と適用確率に関するチャップマンとホールのモノグラフ、ボリューム95)により、予測パフォーマンスが最も重要な場合は特徴選択を行わないというアドバイスを提供しています(221ページ) 、代わりにリッジ回帰を使用してください。そして、それはサブセット選択に関する本にあります!!! ; o)


17

chlに追加するには:サポートベクターマシンを使用する場合、強く推奨されるペナルティ化方法はエラスティックネットです。この方法は係数をゼロに向けて縮小し、理論上はモデル内で最も安定した係数を保持します。当初は回帰フレームワークで使用されていましたが、サポートベクターマシンで使用するために簡単に拡張できます。

原著:Zou and Hastie(2005):弾性ネットによる正則化と変数選択。JRStatist.Soc。B、67-2、pp.301-320

SVMのエラスティックネット:Zhu&Zou(2007):サポートベクターマシンの変数選択:ニューラルコンピューティングのトレンド、第2章(編集者:ChenおよびWang)

弾性ネット上の改善 6月-タオと英ミン(2010):がんの分類と遺伝子選択のための改善された弾性ネット:アクタAUTOMATICA院、36-7、pp.976-981


9

ステップ6(または0)として、データセット全体に対して特徴検出アルゴリズムを実行します。

ロジックは次のとおりです。クロスバリデーションは、機能を選択するために使用しているプロシージャのプロパティを見つける方法として考える必要があります。「データがあり、この手順を実行する場合、新しいサンプルを分類するためのエラー率はどれくらいですか?」という質問に答えます。答えがわかれば、データセット全体に対して手順(機能選択+分類ルール開発)を使用できます。予測特性は通常、サンプルサイズに依存し、は通常、に十分に近く、それほど重要ではないため、人々はleave-one-out を好みます。nn1n


同じサンプルを使用して(1)パラメーターを調整しながら分類器の分類/予測のパフォーマンスを評価する場合(最終的には機能選択を使用)、(2)データセット全体で順番に予測を使用する場合、まだ一般化の問題があると思います。実際、交差検定を使用して作成されたオーバーフィッティングに加えられた制御を破っています。ハスティ等。CVの落とし穴の素敵なイラストを提供してください。うん ESLブックの第2版の7.10.2の機能選択。
-chl

@chl:パラメーターの調整について何か言ったのは誰ですか?追加のことを実行する場合は、相互検証中にもそれらを繰り返す必要があります。良好な相互検証エラー率が得られるまでアルゴリズムを明確に変更することは「不正行為」です。ところで、相互検証、特にleave-one-outはそれほど素晴らしいものではないことに同意します。
アニコ

CVは、アルゴリズムが新しいデータに対して実行する近似を示すため、不正行為ではありません。セット全体に基づいて何かに落ち着いていないことだけを確認する必要があります(これは、フルセットの構造に関する情報のリークであるため、すべてのトレインパーツに即座にバイアスをかけることができます)。

@mbq-Ankinoは正しいです。CV統計を最小化するようにモデルを調整することは「不正行為」であり、最終モデルのCV統計にはかなりの楽観的なバイアスがあります。この理由は、CV統計には無視できない分散があるため(有限のデータセットで評価されるため)、CV統計を直接最適化すると、オーバーフィットしてモデルになる可能性があるためです。それはあなたが始めたものより一般性が劣ります。このデモでは、機械学習の文脈では、参照 jmlr.csail.mit.edu/papers/v11/cawley10a.html ソリューション:使用ネストされたXVAL
Dikran有袋類

1

これが機能の選択方法です。特定の知識に基づいて、比較する2つのモデルがあるとします。モデルAは、機能1から1を使用します。10.モデルBはno.11からnoを使用します。20. LOO CVをモデルAに適用して、サンプル外のパフォーマンスを取得します。同じことをモデルBに行い、それらを比較します。


-1

分類の問題についてはわかりませんが、回帰問題の特徴選択の場合、Jun ShaoはLeave-One-Out CVが漸近的に一貫していないことを示しました。つまり、特徴の適切なサブセットを選択する確率は1に収束しませんサンプル数が増加します。実用的な観点から、シャオは、モンテカルロの交差検証、または脱退手続きを推奨しています。


ああ、もう一度。この記事のタイトルを読みましたか?

2
わかりやすく言うと、LOOCVが多数のオブジェクトに適しているとは言いません。明らかにそうではありませんが、Shaoはここでは適用できません。実際、ほとんどの場合、LMのルールはMLには適用されません。

1
多数の特徴と比較的少数のパターンを持つデータセットを見るときに、漸近的な結果が実用的であるかどうかも疑問です。その場合、手順の分散は、バイアスまたは一貫性よりも実際的に重要である可能性が高い。LOOCVの主な価値は、多くのモデルで無視できる計算コストで実装できることです。そのため、ブートストラップよりも分散が大きくなりますが、利用可能な計算予算内で唯一の実行可能なアプローチである場合があります。それが私がそれを使用する理由ですが、パフォーマンス評価のために他の何かを使用します!
ディクランマースピアル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.