TL: DR
Es wird keinen Unterschied geben, wenn Sie F-regression
nur die F-Statistik berechnen und die besten Funktionen auswählen. Es könnte einen Unterschied in der Rangfolge geben, vorausgesetzt, dass F-regression
Folgendes zutrifft :
- Beginnen Sie mit einem konstanten Modell, M0
- Probieren Sie alle Modelle aus, die nur aus einem Merkmal bestehen, und wählen Sie das beste anhand der F-Statistik ausM1
- Probieren Sie alle Modelle aus, die aus M 1 und einem weiteren Merkmal bestehen, und wählen Sie ...M2M1
Da die Korrelation nicht bei jeder Iteration gleich ist. Sie können dieses Ranking dennoch erhalten, indem Sie nur die Korrelation bei jedem Schritt berechnen. Warum wird F-regression
dann ein zusätzlicher Schritt ausgeführt? Es macht zwei Dinge:
- Featureauswahl: Wenn Sie die besten Features in einer Pipeline für maschinelles Lernen auswählen möchten , bei der es nur auf Genauigkeit ankommt und Maßnahmen zur Anpassung von Unter- / Überanpassung vorhanden sind, interessiert Sie möglicherweise nur die Rangfolge, und die zusätzliche Berechnung ist nicht hilfreich.k
- Signifikanztest: Wenn Sie versuchen, die Auswirkung einiger Variablen auf eine Ausgabe in einer Studie zu verstehen, möchten Sie möglicherweise ein lineares Modell erstellen und nur die Variablen einbeziehen, die Ihr Modell in Bezug auf einen bestimmten Wert erheblich verbessern . Hier ist es praktisch.p
F-regression
Was ist ein F-Test?
Ein F-Test (Wikipedia) ist eine Methode, um die Bedeutung der Verbesserung eines Modells in Bezug auf das Hinzufügen neuer Variablen zu vergleichen. Sie können es verwenden, wenn Sie ein Grundmodell und ein komplizierteres Modell M 1 haben , das alle Variablen von M 0 und einige mehr enthält. Der F-Test zeigt Ihnen, ob M 1 in Bezug auf einen p- Wert signifikant besser als M 0 ist .M0M1M0M1M0p
Dazu verwendet es die verbleibende Quadratsumme als Fehlermaß und vergleicht die Fehlerreduzierung mit der Anzahl der hinzugefügten Variablen und der Anzahl der Beobachtungen (weitere Details auf Wikipedia ). Das Hinzufügen von Variablen, auch wenn sie völlig zufällig sind, soll dem Modell immer helfen, einen geringeren Fehler zu erzielen, indem eine weitere Dimension hinzugefügt wird. Ziel ist es herauszufinden, ob die neuen Features wirklich hilfreich sind oder ob es sich um Zufallszahlen handelt, die dem Modell jedoch trotzdem helfen, da sie eine Dimension hinzufügen.
Was macht f_regression
das ?
Beachten Sie, dass ich mit der Scikit-Lernimplementierung nicht vertraut bin, aber versuchen Sie, herauszufinden, was zu f_regression
tun ist. Die Dokumentation besagt, dass die Prozedur sequentiell ist. Wenn das Wort sequentiell dasselbe bedeutet wie in anderen statistischen Paketen, wie z. B. Matlab Sequential Feature Selection , würde ich davon ausgehen, dass es folgendermaßen abläuft:
- Beginnen Sie mit einem konstanten Modell, M0
- Probieren Sie alle Modelle aus, die nur aus einem Merkmal bestehen, und wählen Sie das beste anhand der F-Statistik ausM1
- Probieren Sie alle Modelle aus, die aus M 1 und einem weiteren Merkmal bestehen, und wählen Sie ...M2M1
Im Moment denke ich, dass es eine gute Annäherung ist, um Ihre Frage zu beantworten. Gibt es einen Unterschied zwischen der Rangfolge f_regression
und der Rangfolge nach Korrelation?
Wenn Sie mit dem konstanten Modell und versuchen, das beste Modell mit nur einem Merkmal, M 1 , zu finden, wählen Sie das gleiche Merkmal aus, unabhängig davon, ob Sie einen korrelationsbasierten Ansatz verwenden, da beide ein Maß für die lineare Abhängigkeit sind. Wenn Sie jedoch von M 0 auf M 1 und dann auf M 2 wechseln würden, gäbe es einen Unterschied in Ihrer Wertung.M0M1f_regression
M0M1M2
Angenommen, Sie haben drei Merkmale, , wobei sowohl x 1 als auch x 2 in hohem Maße mit der Ausgabe y , aber auch in hohem Maße miteinander korreliert sind, während x 3 nur in mittlerem Maße mit y korreliert ist . Ihre Bewertungsmethode würde die besten Bewertungen für x 1 und x 2 vergeben , die sequentielle Methode jedoch möglicherweise nicht. In der ersten Runde würde es das beste Feature auswählen, z. B. x 1 , um M 1 zu erstellen . Dann würde es beide auswertenx1,x2,x3x1x2yx3yx1x2x1M1 und x 3 für M 2 . Da x 2 in hohem Maße mit einem bereits ausgewählten Merkmal korreliert, sind die meisten darin enthaltenen Informationen bereits in das Modell integriert, und daher kann die Prozedur x 3 auswählen. Während es weniger mit y korreliert,ist es mehr mit denResiduenkorreliert, dem Teil, den x 1 nicht bereits erklärt, als mit x 2 . So unterscheiden sich die beiden von Ihnen vorgeschlagenen Vorgehensweisen.x2x3M2x2x3yx1x2
Sie können mit Ihrer Idee immer noch den gleichen Effekt erzielen, indem Sie Ihr Modell nacheinander erstellen und die Verstärkungsdifferenz für jedes zusätzliche Feature messen, anstatt sie mit dem konstanten Modell wie Sie es jetzt tun. Das Ergebnis würde sich nicht von den Ergebnissen unterscheiden. Der Grund für die Existenz dieser Funktion besteht darin, diese sequentielle Merkmalsauswahl bereitzustellen und das Ergebnis zusätzlich in ein F-Maß umzuwandeln, mit dem Sie die Signifikanz beurteilen können.M0f_regression
Ziel des F-Tests ist es, ein Signifikanzniveau bereitzustellen. Wenn Sie sicherstellen möchten, dass die von Ihnen eingeschlossenen Funktionen in Bezug auf Ihren Wert von Bedeutung sind, verwenden Sie einen F-Test. Wenn Sie nur die k besten Merkmale einbeziehen möchten, können Sie nur die Korrelation verwenden.pk
Zusätzliches Material: Hier finden Sie eine Einführung in den F-Test, die Sie möglicherweise hilfreich finden