2016-09-09 5 views
-1

Ich möchte eine Feature-Auswahlmethode verwenden, bei der "Kombinationen" von Features oder "zwischen Features" Interaktionen für eine einfache lineare Regression berücksichtigt werden.SKlearn (scikit-learn) multivariate Feature-Auswahl für Regression

SelectKBest betrachtet nur jeweils eine Funktion für das Ziel und ordnet sie nach Pearsons R-Werten an. Das ist zwar schnell, aber ich fürchte, es ignoriert einige wichtige Interaktionen zwischen Funktionen.

Rekursive Feature Elimination verwendet zuerst alle meine Features, passt auf ein lineares Regressionsmodell und startet dann das Feature mit dem kleinsten absoluten Wertkoeffizienten. Ich bin mir nicht sicher, ob dies für die Interaktion zwischen den Features verantwortlich ist ... Ich denke nicht, da es einfach den kleinsten Koeffizienten nacheinander auswirft, bis er die angegebene Anzahl von Features erreicht.

Was ich suche ist, für die erfahrenen Feature-Auswahl Wissenschaftler da draußen, eine Methode, um die beste Teilmenge oder Kombination von Features zu finden. Ich lese alle Feature Selection-Dokumentation durch und kann keine Methode finden, die beschreibt, was ich vorhabe.

Alle Tipps werden sehr geschätzt werden !!!!!!

+0

Zuerst sollten Sie die Varianz-Kovarianz-Plots beobachten. Dies gibt Ihnen ein Gefühl der paarweisen Korrelation zwischen Ihren Funktionen. – ketan

Antwort

0

Ich möchte eine Featureauswahlmethode verwenden, bei der "Kombinationen" von Features oder Interaktionen zwischen Features für eine einfache lineare Regression berücksichtigt werden.

Für diesen Fall könnten Sie (tatsächlich oder, die elastic net refinement) mit Lasso betrachten. Lasso versucht, lineare kleinste Quadrate zu minimieren, aber mit absoluten Wertstrafen für die Koeffizienten. Einige Ergebnisse der Convex-Optimierungs-Theorie (hauptsächlich zur Dualität) zeigen, dass diese Einschränkung "zwischen Merkmal-Wechselwirkungen" berücksichtigt und die schlechteren der korrelierten Merkmale entfernt. Da Lasso bekanntermaßen einige Unzulänglichkeiten aufweist (z. B. ist es in der Anzahl der auswählbaren Merkmale eingeschränkt), ist eine neuere Variante das elastische Netz, das sowohl absolute Werte als auch quadratische Terme der Koeffizienten benachteiligt.

In sklearn, sklearn.linear_model.ElasticNet implementiert dies. Beachten Sie, dass Sie für diesen Algorithmus die Strafen anpassen müssen, die Sie normalerweise mit der Kreuzvalidierung durchführen würden. Glücklicherweise enthält sklearn auch sklearn.linear_model.ElasticNetCV, was eine sehr effiziente und bequeme Suche nach den Werten dieser Strafterme ermöglicht.

Verwandte Themen