Inhaltsverzeichnis:
- Auswahl durch univariate Measures
- Bei einer univariaten Selektion müssen Sie selbst entscheiden, wie viele Variablen Sie behalten möchten: Die Greedy-Selektion reduziert automatisch die Anzahl der Merkmale eines Lernmodells auf Basis ihres effektiven Beitrags zum Leistung gemessen durch die Fehlermessung.
Video: Python Web Apps with Flask by Ezra Zigmond 2024
Die Auswahl der richtigen Variablen in Python kann den Lernprozess in der Datenwissenschaft verbessern, indem die Menge des Rauschens reduziert wird (nutzlos). Informationen), die die Schätzungen des Lernenden beeinflussen können. Die variable Auswahl kann daher die Varianz von Vorhersagen effektiv reduzieren. Um nur die nützlichen Variablen in das Training einzubeziehen und die redundanten auszulassen, können Sie diese Techniken verwenden:
-
Univariate Ansatz: Wählen Sie die Variablen aus, die am meisten mit dem Zielergebnis zusammenhängen.
-
Gieriger oder rückständiger Ansatz: Behalten Sie nur die Variablen, die Sie aus dem Lernprozess entfernen können, ohne deren Leistung zu beeinträchtigen.
Auswahl durch univariate Measures
Wenn Sie eine Variable anhand ihrer Assoziationsstufe mit ihrem Ziel auswählen, bietet die Klasse SelectPercentile ein automatisches Verfahren, um nur einen bestimmten Prozentsatz der besten, zugeordneten Features beizubehalten. Die verfügbaren Metriken für die Zuordnung sind
-
f_regression: Wird nur für numerische Ziele verwendet und basiert auf der linearen Regressionsleistung.
-
f_classif: Wird nur für kategoriale Ziele verwendet und basiert auf dem statistischen Test der Varianzanalyse (ANOVA).
-
chi2: Führt die Chi-Quadrat-Statistik für kategoriale Ziele aus, was für die nichtlineare Beziehung zwischen der Vorhersagevariablen und ihrem Ziel weniger sinnvoll ist.
Bei der Bewertung von Kandidaten für ein Klassifizierungsproblem liefern f_classif und chi2 tendenziell denselben Satz von Top-Variablen. Es ist immer noch empfehlenswert, die Auswahl aus beiden Zuordnungsmetriken zu testen.
Neben der direkten Auswahl der besten Perzentilzuordnungen kann SelectPercentile auch die besten Variablen einordnen, um die Entscheidung zu erleichtern, bei welcher Perzentile ein Merkmal von der Teilnahme am Lernprozess ausgeschlossen wird. Die Klasse SelectKBest ist in ihrer Funktionalität analog, wählt aber die Top-k-Variablen aus, wobei k eine Zahl und kein Perzentil ist.
von sklearn. feature_selection import SelectPercentile aus sklearn. feature_selection import f_regression Selector_f = AuswählenPerzentil (f_regression, percentile = 25) Selector_f. fit (X, y) für n, s in zip (boston. feature_names, Selector_f. score_): print 'F-score:% 3. 2ft für Merkmal% s '% (s, n) F-Wert: 88. 15 für Merkmal CRIM F-Wert: 75. 26 für Merkmal ZN F-Wert: 153. 95 für Merkmal INDUS F-Wert: 15. 97 für Feature CHAS F-Score: 112. 59 für Feature NOX F-Score: 471. 85 für Feature RM F-Score: 83.48 für Feature AGE F-Score: 33. 58 für Feature DIS F-Score: 85. 91 für Feature RAD F-Score: 141. 76 für Feature TAX F-Score: 175. 11 für Feature PTRATIO F-Score: 63. 05 für Merkmal B F-Score: 601. 62 für Merkmal LSTAT
Die Verwendung des Assoziationsausgabelevels hilft Ihnen bei der Auswahl der wichtigsten Variablen für Ihr maschinelles Lernmodell, aber Sie sollten auf diese möglichen Probleme achten: > Einige Variablen mit hoher Assoziation könnten ebenfalls stark korreliert sein und doppelte Informationen einbringen, die als Rauschen im Lernprozess wirken.
-
Einige Variablen können bestraft werden, insbesondere binäre Variablen (Variablen, die einen Status oder ein Merkmal anzeigen, wenn der Wert 1 vorhanden ist, 0, wenn dies nicht der Fall ist). Beachten Sie zum Beispiel, dass die Ausgabe die binäre Variable CHAS als die am wenigsten mit der Zielvariable verknüpfte Ausgabe anzeigt (aber Sie wissen aus vorherigen Beispielen, dass sie aus der Kreuzvalidierungsphase einen Einfluss haben).
-
Der univariate Auswahlprozess kann Ihnen einen echten Vorteil verschaffen, wenn Sie eine große Anzahl von Variablen zur Auswahl haben und alle anderen Methoden rechnerisch undurchführbar sind. Die beste Vorgehensweise besteht darin, den Wert von SelectPercentile um die Hälfte oder mehr der verfügbaren Variablen zu reduzieren, die Anzahl der Variablen auf eine verwaltbare Zahl zu reduzieren und folglich die Verwendung einer ausgeklügelteren und präziseren Methode wie einer gierigen Suche zuzulassen.
Greedy-Suche verwenden
Bei einer univariaten Selektion müssen Sie selbst entscheiden, wie viele Variablen Sie behalten möchten: Die Greedy-Selektion reduziert automatisch die Anzahl der Merkmale eines Lernmodells auf Basis ihres effektiven Beitrags zum Leistung gemessen durch die Fehlermessung.
Die RFECV-Klasse, die die Daten anpasst, kann Ihnen Informationen über die Anzahl der nützlichen Merkmale liefern, sie auf Sie hinweisen und die X-Daten durch die Methodenumwandlung automatisch in einen reduzierten Variablensatz transformieren, wie in Das folgende Beispiel:
aus sklearn. feature_selection importiert den Selektor RFECV selector = RFECV (Schätzer = Regression, cv = 10, scoring = "mean_squared_error"). fit (X, y) print ("Optimale Anzahl von Features:% d"% selector. n_features_) Optimale Anzahl von Features: 6
Es ist möglich, einen Index für die optimale Variable zu erhalten, indem das Attribut support_ vom RFECV aufgerufen wird. Klasse, nachdem Sie es passen.
drucke boston. feature_names [Auswahl. support_] ['CHAS "NOX" RM "DIS" PTRATIO "LSTAT']
Beachten Sie, dass CHAS jetzt zu den prädiktivsten Merkmalen gehört, was mit dem Ergebnis der univariaten Suche kontrastiert. Die RFECV-Methode kann erkennen, ob eine Variable ist wichtig, egal ob es binär, kategorisch oder numerisch ist, weil es direkt die Rolle des Merkmals in der Vorhersage bewertet.
Die RFECV-Methode ist im Vergleich zum -univariaten Ansatz sicherlich effizienter, weil sie berücksichtigt hochgradig korrelierte Merkmale und ist darauf abgestimmt, die Bewertungsmaßnahme (die normalerweise nicht Chi-Quadrat oder F-Score ist) zu optimieren.Es ist ein gieriger Prozess, der rechenintensiv ist und nur den besten Satz von Prädiktoren approximiert.
Da RFECV die beste Menge von Variablen aus den Daten lernt, kann die Auswahl überanpassen, was bei allen anderen maschinellen Lernalgorithmen geschieht. Das Testen von RFECV an verschiedenen Proben der Trainingsdaten kann die besten zu verwendenden Variablen bestätigen.