Kann ich eine umfassende Suche mit Kreuzvalidierung für die Funktionsauswahl durchführen?

8

Ich habe einige Beiträge zur Funktionsauswahl und Kreuzvalidierung gelesen, habe aber noch Fragen zum richtigen Verfahren.

Angenommen, ich habe einen Datensatz mit 10 Funktionen und möchte die besten Funktionen auswählen. Angenommen, ich verwende einen Klassifikator für den nächsten Nachbarn. Kann ich mithilfe der Kreuzvalidierung eine umfassende Suche durchführen, um die Fehlerrate als Leitfaden für die Auswahl der besten Funktionen zu schätzen? So etwas wie der folgende Pseudocode

for i=1:( 2^10 -1)
   error(i)= crossval(1-nn, selected_fetures(i))
end   

i=find(erro(i)==min(error(i));
selected_fetures= selected_features(i);

Ich versuche in diesem Pseudocode zu erklären, dass ich die Kreuzvalidierung für alle möglichen Merkmalskombinationen durchführe und die Kombination auswähle, die den minimalen Fehler ergibt.

Ich denke, dass dieses Verfahren korrekt ist, da ich eine umfassende Suche durchführe. Die Auswahl der Funktionen basierte nicht auf dem gesamten Datensatz, sondern auf dem durchschnittlichen Fehler auf jeder Partition. Überpasse ich das Modell mit einer solchen Funktionsauswahl?

Jorge Amaral
quelle

Antworten:

10

Ja, in diesem Fall wird es wahrscheinlich zu einer Überanpassung kommen, siehe meine Antwort auf diese vorherige Frage . Es ist wichtig, sich daran zu erinnern, dass die Kreuzvalidierung eine Schätzung der Generalisierungsleistung auf der Grundlage einer endlichen Stichprobe von Daten ist. Da der Schätzer auf einer endlichen Stichprobe von Daten basiert, weist er eine Varianz ungleich Null auf. Eine gewisse Reduzierung des Kreuzvalidierungsfehlers führt zu einer Kombination von Modellauswahlmöglichkeiten, die den Generalisierungsfehler wirklich verbessern, und Modellauswahlmöglichkeiten, bei denen die Daten einfach ausgenutzt werden zufällige Besonderheiten der jeweiligen Stichprobe von Daten, an denen sie ausgewertet werden. Die letztere Art der Modellauswahl dürfte die Generalisierungsleistung eher verschlechtern als verbessern.

Eine Überanpassung ist ein potenzielles Problem, wenn Sie eine Statistik basierend auf einer endlichen Stichprobe von Daten minimieren. Die Kreuzvalidierung ist nicht anders.

Dikran Beuteltier
quelle
1
Vielleicht, aber die Kreuzvalidierung ist ein großer Schritt über der Resubstitutin, da sie den Klassifikator anhand eines Datensatzes bewertet, der im angepassten Modell nicht verwendet wird.
Michael R. Chernick
2
Ja, es ist weniger anfällig für Überanpassungen als der Resubstitutionsschätzer, aber meiner Erfahrung nach ist es im Allgemeinen immer noch ein ausreichend großes Problem, dass eine umfassende Suche wahrscheinlich eine schlechte Idee ist. Millar rät in seiner Monographie über "Teilmengenauswahl in Regression", die Regularisierung anstelle der Merkmalsauswahl zu verwenden, wenn die prädiktive Leistung das wichtige Kriterium ist und die Identifizierung von Merkmalen kein primäres Ziel ist (etwas umschrieben).
Dikran Marsupial
1
@Michael Es ist kein falscher Lebenslauf, sondern die Idee, Fehler in einem Bereich mit verwendeten Features (oder in einem Parameterbereich, der eine verwandte Falle ist) streng zu minimieren. Sogar die gesamte Zugmenge ist eine zufällige Teilmenge der Realität, daher ist diese Optimierung einfach stochastisch und muss entsprechend behandelt werden, oder Sie werden mit Sicherheit in eine nicht signifikante Schwankung geraten - dies ist deutlich sichtbar, wenn Sie die gesamte Analyse booten. IMO auf diese Weise ist die einzige Option für eine bessere Genauigkeit eine robuste Modellierungstechnik (reguliert oder randomisiert) und zur Erklärung einiger Is-Attribut-besser-als-Rauschen-Tests.
1
Ich habe CV nicht beschuldigt. Das Problem ist erschöpfende Suche, denke ich ..
Michael R. Chernick
Ja, es war erwähnenswert, dass der Lebenslauf weitaus besser ist als die erneute Substitution für die Funktionsauswahl, da dies manchmal immer noch verwendet wird, aber es ist die Überoptimierung, die das Problem darstellt.
Dikran Marsupial
0

Ich denke, dies ist ein gültiges Verfahren für die Merkmalsauswahl, das nicht anfälliger für Überanpassungen ist als andere Merkmalsauswahlverfahren. Das Problem bei diesem Verfahren besteht darin, dass es einen großen Rechenaufwand aufweist und kaum für reale Datensätze verwendet werden kann.

Löwe
quelle
2
Ich denke nicht, dass das richtig ist. Wenn Sparsity durch Regularisierung erreicht wird, z. B. durch einen LASSO-Ansatz, ist die Menge der Feature-Teilmengen, die generiert werden können, wahrscheinlich viel kleiner als die Anzahl, die durch eine umfassende Suche untersucht wurde. Dies bedeutet, dass weniger Möglichkeiten zur Überanpassung bestehen, da der "Modellraum" stärker eingeschränkt ist. Ich würde eine erschöpfende Suche nur empfehlen, wenn der Datensatz sehr groß und die Anzahl der Features sehr klein ist (natürlich wird es mit der Anzahl der Features ohnehin schnell rechnerisch unmöglich).
Dikran Marsupial
Ich stimme den Fragen zu, die Dikran bei einer umfassenden Suche aufwirft.
Michael R. Chernick
0

Ich denke, wenn Sie in jeder Falte der Kreuzvalidierung eine Funktionsauswahl treffen, ist das in Ordnung. Wie oben in den Postern angegeben, passen Sie jedes Modell mit den ausgewählten Funktionen an, die Sie aus dem oben beschriebenen Verfahren erhalten haben. Dies liegt daran, dass alle Daten einen gewissen Einfluss auf die Merkmalsauswahlroutine hatten.

BGreene
quelle
1
Leider ist dies auch falsch. Das Problem der Überanpassung tritt wahrscheinlich immer dann auf, wenn Sie eine Statistik über eine endliche Stichprobe von Daten minimieren. Wenn die Statistik eine Varianz ungleich Null aufweist, ist ein gewisses Maß an Überanpassung unvermeidlich, wenn die Statistik vollständig minimiert wird. Wenn Sie die Merkmalsauswahl unabhängig in jeder Falte durchführen, ist die resultierende Kreuzvalidierungsschätzung (fast) unvoreingenommen. Dies bedeutet jedoch nicht, dass das Modell nicht überpasst wird, sondern nur, dass die Leistungsschätzung die Auswirkungen der Überbewertung berücksichtigt -passend zu.
Dikran Beuteltier