Ich bin auf der Suche nach Feature-Auswahl mit einem Multi-Label-Datensatz mit Sklearn. Ich möchte den letzten Satz von Funktionen über Etiketten bekommen, die ich dann in einem anderen Machine Learning-Paket verwenden werde. Ich plante, die Methode zu verwenden, die ich sah here, die relevante Merkmale für jedes Etikett separat auswählt.Multi-Label-Feature-Auswahl mit Sklearn
from sklearn.svm import LinearSVC
from sklearn.feature_selection import chi2, SelectKBest
from sklearn.multiclass import OneVsRestClassifier
clf = Pipeline([('chi2', SelectKBest(chi2, k=1000)),
('svm', LinearSVC())])
multi_clf = OneVsRestClassifier(clf)
Ich plane, dann die Indizes der enthaltenen Merkmale zu extrahieren, pro Etikett, mit diesem:
selected_features = []
for i in multi_clf.estimators_:
selected_features += list(i.named_steps["chi2"].get_support(indices=True))
Nun, meine Frage ist, wie kann ich wählen, welche Funktionen in meinem letzten aufzunehmen ausgewählt Modell? Ich könnte jede einzigartige Funktion verwenden (die Funktionen enthalten würde, die nur für ein Label relevant sind), oder ich könnte etwas tun, um Features auszuwählen, die für weitere Labels relevant sind.
Meine anfängliche Idee besteht darin, ein Histogramm der Anzahl der Etiketten zu erstellen, für die ein bestimmtes Merkmal ausgewählt wurde, und einen Schwellenwert basierend auf visueller Inspektion zu identifizieren. Meine Sorge ist, dass diese Methode subjektiv ist. Gibt es eine prinzipielle Möglichkeit, die Merkmalsauswahl für Multilabel-Datensätze mit sklearn durchzuführen?
Soweit ich weiß, sind die Merkmalsauswahlmethoden in sklearn für binäre Klassifikatoren. Sie können die ausgewählten Features für jedes Label einzeln abrufen, aber meine Frage ist, wie Sie einen endgültigen Satz von Features ermitteln können, die prinzipienübergreifend über alle Labels hinweg funktionieren. – user2589328
Ich bin mir nicht sicher, ob ich verstehe, was du meinst. Beispielsweise ist SelectKBest modellunabhängig, und Sie können ein Beispiel für RFE sehen, das Ihnen zeigt, wie Sie das endgültige Feature-Set in den Dokumenten erhalten. http: // scikit-lernen.org/stable/auto_examples/feature_selection/plot_rfe_with_cross_validation.html # Beispiel-Feature-Auswahl-Plot-rfe-mit-Kreuz-Validierung-py Zusätzlich viele/am meisten implementieren eine Transformationsfunktion, die die trainierten besten Funktionen aus den Eingaben auswählen wird. – Chris
Aber das letzte Feature-Set ist für einen Klassifizierer, oder? Da binäre Relevanzmethoden das Multilabel-Klassifikationsproblem in eine Reihe von binären Klassifikationen zerlegen, entspricht dieser letzte Merkmalssatz nur einem meiner vielen Labels. Ich habe ein Feature-Set, das von den Feature-Auswahlmethoden für jedes einzelne Label zurückgegeben wird, aber ich möchte die ausgewählten Features kombinieren, um ein Feature-Set zu erstellen, das für alle Labels gut funktioniert. – user2589328