Ist es tatsächlich in Ordnung, vor der Kreuzvalidierung eine unbeaufsichtigte Funktionsauswahl durchzuführen?

9

In den Elementen des statistischen Lernens habe ich die folgende Aussage gefunden:

Es gibt eine Einschränkung: Erste unbeaufsichtigte Screening-Schritte können durchgeführt werden, bevor die Proben weggelassen werden. Zum Beispiel könnten wir die 1000 Prädiktoren mit der höchsten Varianz über alle 50 Stichproben auswählen, bevor wir mit der Kreuzvalidierung beginnen. Da diese Filterung keine Klassenbezeichnungen umfasst, verschafft sie den Prädiktoren keinen unfairen Vorteil.

Ist das tatsächlich gültig? Ich meine, durch vorheriges Filtern von Attributen ahmen wir die Trainingsdaten / die neue Datenumgebung nicht nach. Ist es also wichtig, dass die von uns durchgeführten Filterungen nicht überwacht werden? Ist es nicht besser, alle Vorverarbeitungsschritte innerhalb des Kreuzvalidierungsprozesses durchzuführen? Wenn dies nicht der Fall ist, bedeutet dies, dass die gesamte unbeaufsichtigte Vorverarbeitung im Voraus durchgeführt werden kann, einschließlich Funktionsnormalisierung / PCA usw. Wenn wir dies jedoch für den gesamten Trainingssatz tun, verlieren wir tatsächlich einige Daten an den Trainingssatz. Ich kann zustimmen, dass diese Unterschiede bei einem relativ stabilen Datensatz höchstwahrscheinlich sehr gering sein sollten - aber das bedeutet nicht, dass sie nicht existieren, oder? Was ist der richtige Weg, um darüber nachzudenken?

Matek
quelle

Antworten:

2

In einer Phase vor der Kreuzvalidierung ähnelt die unbeaufsichtigte Merkmalsauswahl der Merkmalsnormalisierung:

  1. Unter dem Gesichtspunkt einer bestimmten Falte in der Kreuzvalidierung haben die Zugdaten einen Blick auf die Testdaten geworfen (allerdings nur in den unabhängigen Variablen).

  2. Dieses Spähen ist relativ mild.

In dieser Frage wurde die Merkmalsnormalisierung vor der Kreuzvalidierung erörtert . Zitiert die Antwort von Dikran Marsupial

Die Kreuzvalidierung wird am besten als Methode zur Schätzung der Leistung eines statistischen Verfahrens und nicht als statistisches Modell angesehen. Um eine unvoreingenommene Leistungsschätzung zu erhalten, müssen Sie daher jedes Element dieser Prozedur in jeder Falte der Kreuzvalidierung, einschließlich der Normalisierung, separat wiederholen.

Wenn Sie also die Ressourcen schonen können, ist es am besten, wenn jede Kreuzvalidierungsfalte eine datenabhängige Verarbeitung von Grund auf neu durchführt.

Wie die Antworten auf diese Frage jedoch sagen, würde eine Umkehrung der Reihenfolge in der Praxis wahrscheinlich nicht viel ändern. Es gibt sicherlich nicht den wesentlichen unfairen Vorteil, den die abhängige Merkmalsauswahl aufweist. IMHO, das ist die Interpretation des Zitats aus Elements Of Statistical Learning .y

Ami Tavory
quelle
Nun, das stimmt im Grunde mit meinen Gedanken überein, und der letzte Satz hier ist eigentlich die kurze Antwort auf meine Frage. Danke, ich werde dies zu einer akzeptierten Antwort machen.
Matek
1
Der Effekt kann klein sein, aber es kann nicht sein , dass klein. Wie Sie sagen, ist es so, als würden Sie Ihre unabhängigen Variablen vor dem Lebenslauf vorskalieren, wobei "die Zukunft" (Testdaten) verwendet wird, um "die Gegenwart" (Trainingsdaten) zu skalieren, was in der realen Welt nicht der Fall ist. Wenn Sie zufällige Falten haben (ohne Zeitreihen, Schichtung usw.), ist dies weniger ein Effekt, aber warum sollten Sie die Zug- / Testbarriere durchbrechen und so weiter?
Wayne
@Wayne Ich stimme Ihnen mit Sicherheit zu, dass es nach Möglichkeit am besten ist, die Zug- / Testbarriere nicht zu durchbrechen. Persönlich bin ich noch nie auf Fälle in der realen Welt gestoßen, in denen dies einen Unterschied machte (bei unbeaufsichtigtem FS und / oder Normalisierung), aber ich bin auf Fälle gestoßen, in denen es absolut unmöglich war, die Merkmalsauswahl auf die "richtige Weise" (dh innerhalb der einzelnen) durchzuführen falten). Ich sehe jedoch aus Ihrer guten Antwort (die ich abstimme), dass Sie auf den umgekehrten Fall gestoßen sind, so dass anscheinend beide Szenarien existieren.
Ami Tavory
Ich bin mir nicht sicher, ob ich auf CV-Ergebnisse gestoßen bin, bei denen die Normalisierung ebenfalls einen Unterschied gemacht hat, was ich normalerweise dem 10-fachen CV zuschreibe, was bedeutet, dass die Testfalte nur 10% beträgt, was den Effekt verringert. Ich habe einen Unterschied mit so etwas wie einem 67/33 oder sogar 75/25 Nicht-CV-Split gesehen.
Wayne
9

Ich möchte mich in dieser Frage sowohl von der Meinung von @ AmiTavory als auch von den Elementen des statistischen Lernens unterscheiden.

Ich komme aus einem angewandten Feld mit sehr geringen Stichprobengrößen und habe die Erfahrung gemacht, dass auch unbeaufsichtigte Vorverarbeitungsschritte zu starken Verzerrungen führen können.

In meinem Bereich wäre dies am häufigsten PCA zur Dimensionsreduzierung, bevor ein Klassifikator trainiert wird. Obwohl ich die Daten hier nicht anzeigen kann, habe ich gesehen, dass PCA + (kreuzvalidierte LDA) vs. kreuzvalidierte (PCA + LDA) die Fehlerrate um etwa eine Größenordnung unterschätzt . (Dies ist normalerweise ein Indikator dafür, dass die PCA nicht stabil ist.)

Was die Argumentation "unfairer Vorteil" der Elemente betrifft, so ergeben sich, wenn die Varianz von Taining + Testfällen untersucht wird, Merkmale, die sowohl mit den Trainings- als auch mit den Testfällen gut funktionieren. So schaffen wir hier eine sich selbst erfüllende Prophezeiung, die die Ursache für die überoptimistische Tendenz ist. Diese Tendenz ist gering, wenn Sie einigermaßen komfortable Stichprobengrößen haben.

Daher empfehle ich einen Ansatz, der etwas konservativer ist als die Elemente:

  • Vorverarbeitungsberechnungen, die mehr als einen Fall berücksichtigen, müssen in die Validierung einbezogen werden: dh sie werden nur auf dem jeweiligen Trainingssatz berechnet (und dann auf die Testdaten angewendet).
  • Vorverarbeitungsschritte, die jeden Fall für sich betrachten (ich bin Spektroskopiker: Beispiele wären Grundlinienkorrektur und Intensitätsnormalisierung, was eine zeilenweise Normalisierung ist), können aus der Kreuzvalidierung herausgezogen werden, solange sie vor dem ersten Schritt liegen berechnet für mehrere Fälle.

Abgesehen davon ist auch die Kreuzvalidierung nur eine Abkürzung für eine ordnungsgemäße Validierungsstudie. So können Sie mit der Praktikabilität argumentieren:

  • Sie können überprüfen, ob die betreffende Vorverarbeitung stabile Ergebnisse liefert (Sie können dies z. B. durch Kreuzvalidierung tun). Wenn Sie feststellen, dass es bereits bei niedrigeren Stichprobengrößen vollkommen stabil ist, können Sie meiner Meinung nach argumentieren, dass durch das Herausziehen aus der Kreuzvalidierung nicht viel Verzerrung entsteht.

  • Um jedoch einen früheren Vorgesetzten zu zitieren: Die Berechnungszeit ist kein wissenschaftliches Argument.
    Ich mache oft eine "Vorschau" von wenigen Falten und wenigen Iterationen für die Kreuzvalidierung, um sicherzustellen, dass der gesamte Code (einschließlich der Zusammenfassung / Grafiken der Ergebnisse) und dann über Nacht oder über das Wochenende oder so auf dem Server für eine feinkörnigere Kreuzvalidierung.

cbeleites unzufrieden mit SX
quelle