Featureauswahl für "endgültiges" Modell bei der Durchführung einer Gegenprüfung beim maschinellen Lernen


76

Ich bin etwas verwirrt über die Funktionsauswahl und das maschinelle Lernen und habe mich gefragt, ob Sie mir helfen könnten. Ich habe ein Microarray-Dataset, das in zwei Gruppen eingeteilt ist und über 1000 Funktionen verfügt. Mein Ziel ist es, eine kleine Anzahl von Genen (meine Merkmale) (10-20) in einer Signatur zu erhalten, die ich theoretisch auf andere Datensätze anwenden kann, um diese Proben optimal zu klassifizieren. Da ich nicht über so viele Stichproben (<100) verfüge, verwende ich kein Test- und Trainingsset, sondern eine einmalige Kreuzvalidierung, um die Robustheit zu bestimmen. Ich habe gelesen, dass man für jede Aufteilung der Proben eine Merkmalsauswahl durchführen sollte, d. H

  1. Wählen Sie eine Probe als Testset
  2. Führen Sie bei den verbleibenden Beispielen die Featureauswahl durch
  3. Wenden Sie den Algorithmus für maschinelles Lernen mit den ausgewählten Funktionen auf verbleibende Stichproben an
  4. Testen Sie, ob das Test-Set korrekt klassifiziert ist
  5. Gehe zu 1.

Wenn Sie dies tun, erhalten Sie möglicherweise jedes Mal andere Gene. Wie erhalten Sie also Ihren "endgültigen" optimalen Genklassifikator? dh was ist Schritt 6.

Was ich unter optimal verstehe, ist die Sammlung von Genen, die für weitere Studien verwendet werden sollten. Angenommen, ich habe einen Krebs- / Normaldatensatz und möchte die Top-10-Gene finden, die den Tumortyp gemäß einer SVM klassifizieren. Ich würde gerne wissen, welche Gene und SVM-Parameter in weiteren Experimenten verwendet werden könnten, um zu prüfen, ob sie als diagnostischer Test verwendet werden könnten.


Ich sollte zur vollständigen Offenlegung sagen, dass ich dies bereits auf der Liste der Bioleiter veröffentlicht habe
Danielsbrewer

Bitte fassen Sie die Ergebnisse der Biokonduktoren hier zusammen.
Shane

Antworten:


39

Dies ist eine sehr gute Frage, mit der ich mich bei der Arbeit mit SNP-Daten konfrontiert sah ... Und ich habe in der Literatur keine offensichtliche Antwort gefunden.

Unabhängig davon, ob Sie LOO oder K-Fold CV verwenden, werden Sie unterschiedliche Funktionen haben, da die Kreuzvalidierungsiteration, wie Sie sagten, die äußerste Schleife sein muss. Sie können sich eine Art Abstimmungsschema vorstellen, das die n-Vektoren der Merkmale bewertet, die Sie aus Ihrem LOO-Lebenslauf erhalten haben (ich kann mich nicht an die Arbeit erinnern, aber es lohnt sich, die Arbeit von Harald Binder oder Antoine Cornuéjols zu überprüfen ). In Abwesenheit einer neuen Testprobe wird normalerweise der ML-Algorithmus erneut auf die gesamte Probe angewendet, sobald Sie die optimalen kreuzvalidierten Parameter gefunden haben. Auf diese Weise können Sie jedoch nicht sicherstellen, dass keine Überanpassung vorliegt (da die Stichprobe bereits für die Modelloptimierung verwendet wurde).

Alternativ können Sie eingebettete Methoden verwenden, mit denen Sie die Rangfolge von Features anhand eines Maßes variabler Wichtigkeit ermitteln können, z. B. in Random Forests (RF). Als Kreuzvalidierung in MDEs enthalten ist, müssen Sie sich nicht um die Sorgen Fall oder Fluch der Dimensionalität. Hier sind einige nützliche Artikel zu ihren Anwendungen in Genexpressionsstudien:np

  1. Cutler, A., Cutler, DR, und Stevens, JR (2009). Baumbasierte Methoden in der hochdimensionalen Datenanalyse in der Krebsforschung , Li, X. und Xu, R. (Hrsg.), S. 83-101, Springer.
  2. Saeys, Y., Inza, I. und Larrañaga, P. (2007). Ein Überblick über Techniken zur Merkmalsauswahl in der Bioinformatik. Bioinformatics , 23 (19) : 2507 & ndash ; 2517.
  3. R. Díaz-Uriarte, S. Alvarez de Andrés (2006). Genauswahl und Klassifizierung von Microarray-Daten unter Verwendung von Zufallsforsten. BMC Bioinformatics , 7 : 3.
  4. Diaz-Uriarte, R. (2007). GeneSrF und varSelRF: ein webbasiertes Tool und R-Paket für die Auswahl und Klassifizierung von Genen mithilfe von Zufallsforsten. BMC Bioinformatics , 8 : 328

Da es sich um SVM handelt, können Sie nach bestraften SVM suchen .


Dank dafür. Ich bin nicht besonders auf SVM verkauft, nur als Beispiel. Wenn Sie also zufällige Bäume verwendet haben, müssen Sie keine Kreuzvalidierung durchführen? Ist das richtig.
Danielsbrewer

7
ja, RFs enthalten eine zufällige Stichprobe von Variablen (normalerweise ), wenn ein Baum wächst, und jeder Baum basiert auf einer Stichprobe der Individuen; Die variable Wichtigkeit wird für sogenannte Out-of-Bag-Samples (solche, die nicht zum Aufbau des Entscheidungsbaums verwendet werden) unter Verwendung einer Permutationstechnik berechnet. Der Algorithmus wird für m Bäume wiederholt (Standard m = 500) und die Ergebnisse werden gemittelt, um die Unsicherheit auf Baumebene zu kompensieren (Boosten). p
Chl

3
Es ist wichtig, dass es Random Forest heißt, nicht Random Trees. Möglicherweise haben Sie Probleme mit Google.

1
+1, gute Antwort und zufällig für mich - vielen Dank für die Papierreferenzen, besonders die Rezension.
Ars

Wenn Sie über genügend Daten verfügen, ist es nicht am besten, ein Testset durchzuführen, das Trainingsset zu analysieren, um die Modellparameter zu optimieren, das gesamte Zugset anzupassen (und dies als "endgültigen" Klassifikator zu bezeichnen) und dann das endgültige Modell zu bewerten auf dem Testgerät?
user0

40

Allgemein gesagt:

Machen Sie Ihre Vorhersagen mithilfe eines einzelnen Modells, das für den gesamten Datensatz trainiert wurde (es gibt also nur einen Satz von Funktionen). Die Kreuzvalidierung wird nur verwendet, um die prädiktive Leistung des einzelnen Modells zu schätzen, das für den gesamten Datensatz trainiert wurde. Es ist VITAL bei der Kreuzvalidierung, dass Sie in jeder Falte die gesamte Prozedur wiederholen, die zur Anpassung an das primäre Modell verwendet wird, da Sie sonst zu einer erheblichen optimistischen Verzerrung der Leistung kommen können.

Um zu sehen, warum dies geschieht, betrachten Sie ein Binärklassifizierungsproblem mit 1000 Binärmerkmalen, aber nur 100 Fällen, bei denen die Fälle und Merkmale alle rein zufällig sind, sodass keine statistische Beziehung zwischen den Merkmalen und den Fällen besteht. Wenn wir ein primäres Modell mit dem vollständigen Datensatz trainieren, können wir im Trainingssatz immer null Fehler erzielen, da es mehr Funktionen als Fälle gibt. Wir können sogar eine Untergruppe von "informativen" Merkmalen finden (die zufällig korrelieren). Wenn wir dann eine Kreuzvalidierung mit nur diesen Funktionen durchführen, erhalten wir eine Leistungsschätzung, die besser ist als zufällige Schätzungen. Der Grund dafür ist, dass in jeder Falte des Kreuzvalidierungsverfahrens einige Informationen zu den durchgehaltenen Fällen enthalten sind, die zum Testen verwendet wurden, als die Merkmale ausgewählt wurden, weil sie für die Vorhersage gut waren. einschließlich der durchgehaltenen. Natürlich wird die wahre Fehlerrate 0,5 sein.

Wenn wir das richtige Verfahren anwenden und die Merkmalsauswahl in jeder Falte durchführen, gibt es keine Informationen mehr zu den durchgehaltenen Fällen bei der Auswahl der in dieser Falte verwendeten Merkmale. Wenn Sie die richtige Prozedur anwenden, erhalten Sie in diesem Fall eine Fehlerrate von ca. 0,5 (obwohl sie bei unterschiedlichen Realisierungen des Datensatzes geringfügig variiert).

Gute Papiere zum Lesen sind:

Christophe Ambroise, Geoffrey J. McLachlan, "Selektionsbias bei der Genextraktion auf der Basis von Microarray-Genexpressionsdaten", PNAS http://www.pnas.org/content/99/10/6562.abstract

das ist sehr relevant für das OP und

Gavin C. Cawley, Nicola LC Talbot, "Überanpassung bei der Modellauswahl und anschließende Auswahlverzerrung bei der Leistungsbewertung", JMLR 11 (Jul): 2079–2107, 2010 http://jmlr.csail.mit.edu/papers /v11/cawley10a.html

Dies zeigt, dass das Gleiche bei der Modellauswahl leicht vorkommen kann (z. B. Einstellen der Hyperparameter einer SVM, die auch bei jeder Iteration des CV-Vorgangs wiederholt werden müssen).

In der Praxis:

Ich würde die Verwendung von Bagging und die Verwendung des Out-of-Bag-Fehlers zur Schätzung der Leistung empfehlen. Sie erhalten ein Komiteemodell mit vielen Funktionen, aber das ist eigentlich eine gute Sache. Wenn Sie nur ein einzelnes Modell verwenden, ist es wahrscheinlich, dass Sie das Feature-Auswahlkriterium überschreiten und ein Modell erhalten, das schlechtere Vorhersagen liefert als ein Modell, das eine größere Anzahl von Features verwendet.

Alan Millers Buch über die Auswahl von Teilmengen in der Regression (Chapman- und Hall-Monographien zu Statistiken und angewandter Wahrscheinlichkeit, Band 95) gibt den guten Rat (Seite 221), dass Sie keine Feature-Auswahl vornehmen sollten, wenn die prädiktive Leistung das Wichtigste ist Verwenden Sie stattdessen einfach die Gratregression. Und das steht in einem Buch über die Auswahl von Untergruppen !!! ;O)


17

Hinzufügen zu chl: Bei Verwendung von Support-Vektor-Maschinen ist das elastische Netz eine sehr empfohlene Bestrafungsmethode. Diese Methode verkleinert die Koeffizienten gegen Null und behält theoretisch die stabilsten Koeffizienten im Modell bei. Ursprünglich wurde es in einem Regressionsframework verwendet, kann jedoch problemlos für Support-Vektor-Maschinen erweitert werden.

Die Originalveröffentlichung : Zou und Hastie (2005): Regularisierung und variable Auswahl über das elastische Netz. JRStatist.Soc. B, 67-2, S. 301-320

Elastisches Netz für SVM : Zhu & Zou (2007): Variablenauswahl für die Support Vector Machine: Trends in der neuronalen Berechnung, Kapitel 2 (Herausgeber: Chen und Wang)

Verbesserungen am elastischen Netz Jun-Tao und Ying-Min (2010): Ein verbessertes elastisches Netz für die Klassifizierung von Krebs und die Auswahl von Genen: Acta Automatica Sinica, 36-7, S. 976-981


9

Als Schritt 6 (oder 0) führen Sie den Feature-Erkennungsalgorithmus für den gesamten Datensatz aus.

Die Logik ist folgende: Sie müssen sich die Kreuzvalidierung als Methode vorstellen, um die Eigenschaften der Prozedur herauszufinden, mit der Sie die Features auswählen. Es beantwortet die Frage: "Wenn ich Daten habe und diese Prozedur durchführe, wie hoch ist dann die Fehlerrate beim Klassifizieren einer neuen Stichprobe?". Sobald Sie die Antwort kennen, können Sie das Verfahren (Merkmalsauswahl + Entwicklung von Klassifizierungsregeln) für den gesamten Datensatz anwenden. Leute mögen das Auslassen, weil die prädiktiven Eigenschaften normalerweise von der Stichprobengröße abhängen und normalerweise nahe genug bei nicht viel zu bedeuten.nn1n


Ich denke, dass es immer noch ein Verallgemeinerungsproblem gibt, wenn dieselbe Stichprobe (1) zur Bewertung der Klassifiziererklassifizierungs- / Vorhersageleistung verwendet wird, während die Parameter (eventuell mit Auswahl der Merkmale) optimiert werden, und (2) die Vorhersagen für den gesamten Datensatz verwendet werden. Tatsächlich brechen Sie die Kontrolle über die Überanpassung, die mithilfe der Kreuzvalidierung erstellt wurde. Hastie et al. bieten eine schöne Illustration von CV Fallstricken, insb. wrt. Featureauswahl in ihrem ESL-Buch, § 7.10.2 in der 2. Ausgabe.
CHL

@chl: wer hat etwas über das Einstellen von Parametern gesagt? Wenn zusätzliche Dinge durchgeführt werden, sollten sie auch während der Kreuzvalidierung wiederholt werden. Wenn Sie Ihren Algorithmus eindeutig so lange modifizieren, bis Sie eine gute Cross-Validated-Fehlerrate erhalten, ist dies "Betrug". Übrigens, ich bin damit einverstanden, dass die gegenseitige Validierung, insbesondere das Auslassen, nicht allzu großartig ist.
Aniko

Nicht, es ist kein Betrug, da CV Ihnen die Annäherung zeigt, wie der Algorithmus mit neuen Daten umgeht. Sie müssen nur sicherstellen, dass Sie sich nicht für etwas entschieden haben, das auf dem gesamten Satz basiert (dies ist ein Informationsleck über die Struktur des gesamten Satzes, sodass alle Zugteile sofort verzerrt werden können).

@mbq - Ankino ist korrekt, die Optimierung Ihres Modells zur Minimierung einer CV-Statistik ist "Betrug", und die CV-Statistik des endgültigen Modells weist eine erhebliche optimistische Tendenz auf. Der Grund dafür ist, dass die CV-Statistik eine nicht zu vernachlässigende Varianz aufweist (da sie anhand eines endlichen Datensatzes ausgewertet wird). Wenn Sie also die CV-Statistik direkt optimieren, können Sie sie überanpassen und erhalten ein Modell das verallgemeinert weniger gut als das, mit dem Sie begonnen haben. Für eine Demonstration dafür, in einer Maschine Lernkontext finden jmlr.csail.mit.edu/papers/v11/cawley10a.html Lösung: Verwenden Sie verschachtelte XWert
Dikran Marsupial

1

So wähle ich Features aus. Angenommen, basierend auf bestimmten Kenntnissen gibt es zwei Modelle, die verglichen werden müssen. Modell A verwendet die Merkmale Nr. 1 bis Nr. 10. Modell B verwendet Nr. 11 bis Nr. 20. Ich werde LOO CV auf Modell A anwenden, um die Out-of-Sample-Leistung zu erzielen. Machen Sie dasselbe mit Modell B und vergleichen Sie sie dann.


-1

Ich bin mir bei Klassifizierungsproblemen nicht sicher, aber Jun Shao hat im Fall der Merkmalsauswahl für Regressionsprobleme gezeigt, dass der Leave-One-Out-CV asymptotisch inkonsistent ist , dh, die Wahrscheinlichkeit, die richtige Teilmenge von Merkmalen auszuwählen, konvergiert nicht gegen 1 als die Anzahl der Proben erhöht sich. Aus praktischer Sicht empfiehlt Shao eine Monte-Carlo-Kreuzvalidierung oder ein Auslassen vieler Verfahren.


Oh mein Gott, noch einmal. Hast du den Titel dieses Artikels gelesen?

2
Klar, ich sage nicht, dass LOOCV eine gute Idee für eine große Anzahl von Objekten ist. offensichtlich ist es nicht, aber Shao ist hier nicht anwendbar. In den meisten Fällen gelten die Regeln für LMs nicht für ML.

1
Es ist auch fraglich, ob assymptotische Ergebnisse bei der Betrachtung von Datensätzen mit einer großen Anzahl von Merkmalen und vergleichsweise wenigen Mustern von praktischem Nutzen sind. In diesem Fall ist die Varianz des Verfahrens wahrscheinlich von größerer praktischer Bedeutung als die Voreingenommenheit oder Konsistenz. Der Hauptvorteil von LOOCV besteht darin, dass es für viele Modelle mit vernachlässigbarem Rechenaufwand implementiert werden kann. Obwohl es also eine höhere Varianz als etwa Bootstrapping aufweist, ist es möglicherweise der einzige realisierbare Ansatz innerhalb des verfügbaren Rechenbudgets. Deshalb benutze ich es, aber ich benutze etwas anderes für die Leistungsbewertung!
Dikran Beuteltier
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.