Ich habe spärliche Merkmale, die prädiktiv sind, und ich habe einige dichte Merkmale, die auch prädiktiv sind. Ich muss diese Funktionen kombinieren, um die Gesamtleistung des Klassifikators zu verbessern.
Wenn ich nun versuche, diese Merkmale zu kombinieren, dominieren die dichten Merkmale tendenziell stärker als die spärlichen Merkmale, wodurch sich die AUC im Vergleich zu Modellen mit nur dichten Merkmalen nur um 1% verbessert.
Ist jemand auf ähnliche Probleme gestoßen? Wirklich schätzen die Eingänge, Art stecken. Ich habe bereits viele verschiedene Klassifikatoren, Kombinationen von Klassifikatoren, Merkmalsumwandlungen und die Verarbeitung mit verschiedenen Algorithmen ausprobiert.
Vielen Dank im Voraus für die Hilfe.
Bearbeiten :
Ich habe bereits die Vorschläge ausprobiert, die in den Kommentaren angegeben sind. Was ich beobachtet habe, ist, dass spärliche Features für fast 45% der Daten sehr gut funktionieren. Ich erhalte eine AUC von etwa 0,9 mit nur spärlichen Features, aber für die verbleibenden dichten Features ist eine AUC von etwa 0,75 gut. Ich habe versucht, diese Datensätze aufzuteilen, aber ich erhalte die AUC von 0,6. Daher kann ich ein Modell nicht einfach trainieren und entscheiden, welche Funktionen verwendet werden sollen.
In Bezug auf das Code-Snippet habe ich so viele Dinge ausprobiert, dass ich nicht sicher bin, was ich genau teilen soll :(
quelle
Antworten:
Dies scheint ein Job für die Hauptkomponentenanalyse zu sein. In Scikit ist PCA gut implementiert und es hat mir viele Male geholfen.
PCA kombiniert in gewisser Weise Ihre Funktionen. Indem Sie die Anzahl der Komponenten begrenzen, holen Sie Ihr Modell mit rauschfreien Daten (im besten Fall). Weil Ihr Modell so gut ist wie Ihre Daten.
Betrachten Sie unten ein einfaches Beispiel.
Warum habe ich 80 ausgewählt? Wenn ich die kumulative Varianz zeichne, sehe ich folgendes: Mit ~ 80 Komponenten erreiche ich fast die gesamte Varianz.
Also würde ich sagen, probieren Sie es aus, verwenden Sie es in Ihren Modellen. Es sollte helfen.
quelle
Features lassen sich am besten mit Ensemble-Methoden kombinieren. Grundsätzlich gibt es drei verschiedene Methoden: Absacken, Boosten und Stapeln. Sie können entweder Adabbost Augmented with Feature Selection (diesbezüglich sowohl spärliche als auch dichte Features) oder Stacking-basiert (zufälliges Feature - zufälliger Unterraum) verwenden. Ich bevorzuge die zweite Option, mit der Sie eine Reihe von Basislernern (Entscheidungen. Bäume) mithilfe von Zufall trainieren können Teilmengen und Zufallsfunktion (Behalten Sie die Lernenden der Schulungsbasis bei, bis Sie alle Funktionen abgedeckt haben.) Der nächste Schritt besteht darin, die Schulungsgruppe zu testen, um die Metadaten zu generieren. Verwenden Sie diese Metadaten, um einen Metaklassifikator zu trainieren. Der Meta-Klassifikator ermittelt, welche Funktion wichtiger ist und welche Art von Beziehung verwendet werden sollte
quelle
Die variablen Gruppen können multikollinear sein oder die Konvertierung zwischen dünn und dicht kann schief gehen. Haben Sie darüber nachgedacht, einen Klassifikator / eine Ensemble-Klassifikation zu verwenden? http://scikit-learn.org/stable/modules/ensemble.html Auf diese Weise können Sie die beiden oben genannten Probleme lösen.
quelle
Zusätzlich zu einigen der obigen Vorschläge würde ich die Verwendung eines zweistufigen Modellierungsansatzes empfehlen .
quelle
Probieren Sie PCA nur für Features mit geringer Dichte aus und kombinieren Sie die PCA-Ausgabe mit Features mit hoher Dichte.
So erhalten Sie einen dichten Satz von (ursprünglichen) Features + einen dichten Satz von Features (die ursprünglich spärlich waren).
+1 für die Frage. Bitte aktualisieren Sie uns mit den Ergebnissen.
quelle