Ich versuche, Feature-Auswahl für Textfunktionen für ein Regressionsproblem zu machen. Derzeit hat das Trainingssatz ~ 200K Features - viel zu viele. Ich möchte einige der Feature-Auswahl-Tools in scikit-learn verwenden, aber ich habe Probleme mit scipy dünn besetzten Matrizen, insbesondere beim Versuch, die f_regression
Scoring-Funktion an die SelectKBest
Transformator übergeben.F-Regression Feature-Auswahl mit Scipy Sparse Arrays
Es scheint, dass die f_regression
Scoring-Funktion als Argument nimmt eine X
Merkmalsmatrix, einen y
Antwortvektor, und ein optionales center
Argument, das standardmäßig auf TRUE gesetzt ist. Ich glaube, was würde das Problem lösen ist, wenn ich f_regression
mit center=False
zum SelectKBest
Transformator passieren könnte, aber wenn ich versuche, so etwas wie:
f_regressor = f_regression(X, y, center=False)
feature_selector = SelectKBest(f_regressor, k=k)
selected_features = feature_selector.fit_transform(X, y)
ich einen Fehler erhalten, dass die Scoring-Funktion nicht aufrufbar ist. Ich nehme an, dass das ist, weil, wenn ich es als f_regress
initialisiere, es sofort p-Werte und f-Kerben für die Eigenschaften zurückgibt.
Ferner wurde in dem Quellcode für den SelectKBest
Transformator, ist es nicht wie die Fit-Funktion aussehen tut jede Prüfung für dieses center
Argument, so dass ich sehe keine einfache Möglichkeit, diese Bewertungsfunktion mit center=False
an das weitergeben Transformator:
Wenn jemand eine Abhilfe für diese in der nahen Zukunft hat, würde das sehr geschätzt werden. Vielen Dank im Voraus für das Lesen.
Also funktioniert es, wenn Sie 'f_regression' anstelle von' f_regressor' übergeben? Wie wäre es mit einer Cover-Funktion oder Lambda, die 'X, y' nimmt, aber' center' so einstellt, wie Sie es wollen? Anstatt es zu bewerten, machen Sie eine neue Funktion. – hpaulj
@hpaulj: Danke, dass du mich dazu gebracht hast, langsamer zu werden und nachzudenken. Es gibt (natürlich) eine vollkommen elegante Lösung - die Bibliothek 'functools'. Danke für den Vorschlag von Cover/Lambda-Funktionen. – kylerthecreator