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)