Beim maschinellen Lernen werden spärliche und dichte Daten zusammengeführt, um die Leistung zu verbessern

17

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 :(

Sagar Waghmode
quelle
Wie spärlich sind deine Gesichtszüge? Sind sie zu 1% gefüllt oder noch weniger?
João Almeida
2
Außerdem sollten Sie beachten, dass wenn Ihre Features spärlich sind, sie nur einen kleinen Teil Ihres Datensatzes klassifizieren sollen, was bedeutet, dass sich die Genauigkeit insgesamt nicht wesentlich ändern sollte. Dies ist eine Art Vermutung, da ich nicht weiß, was die Merkmale Ihres Datensatzes sind.
João Almeida
@ JoãoAlmeida Sie sind nicht so spärlich. Sie sind zu ca. 5% gefüllt. Das Problem ist, wenn ich mir die Unterschiede bei den Vorhersagen von zwei Modellen anschaue, bei denen sich die Vorhersagen unterscheiden. Modelle mit spärlichen Merkmalen tendieren dazu, eine bessere Leistung zu erbringen. Deshalb habe ich erwartet, dass auch die AUC ansteigt, wenn ich sie mit dichten Merkmalen kombiniere . Ich bekomme einen Schub, scheint aber sehr niedrig.
Sagar Waghmode
hum ... Ich habe keine Ahnung für Sie dann
João Almeida
Ich bin auf das gleiche Problem gestoßen, vielleicht ist es keine gute Wahl, einfach nur dichte und spärliche Merkmale in ein einziges Modell zu integrieren. Vielleicht kannst du es mit einem breiten und tiefen Modell versuchen. Wenn Sie diese Methode ausprobiert haben, teilen Sie mir bitte die Antwort mit.
Jianye Ji

Antworten:

6

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.

from sklearn.pipeline import Pipeline
pipe_rf = Pipeline([('pca', PCA(n_components=80)),
                    ('clf',RandomForestClassifier(n_estimators=100))])
pipe_rf.fit(X_train_s,y_train_s)

pred = pipe_rf.predict(X_test)

Warum habe ich 80 ausgewählt? Wenn ich die kumulative Varianz zeichne, sehe ich folgendes: Mit ~ 80 Komponenten erreiche ich fast die gesamte Varianz. kumulative Varianz

Also würde ich sagen, probieren Sie es aus, verwenden Sie es in Ihren Modellen. Es sollte helfen.

HonzaB
quelle
4

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

Bashar Haddad
quelle
Können Sie bitte die entsprechenden Unterlagen weitergeben? Hast du nicht genau verstanden, was du meinst?
Sagar Waghmode
Sie können einen Artikel über das Abstecken von "Fragen in Stapeltechniken, 1999" lesen, der sich mit StackingC beschäftigt. Es ist sehr wichtig zu wissen, dass ich über den gesamten Vektor (z. B. 1x36 bei Hog) als ein Feature spreche, aber nicht über die Dimensionen darin. Sie müssen nachverfolgen, welche Funktion mit welchem ​​Grundschüler verwendet wird. Seien Sie vorsichtig mit dem Problem der Überanpassung
Bashar Haddad
Wenn Sie mehr Details über die Datenbank, die Anzahl der Klassen, die Anzahl der Beispiele, den Code, die ausprobierten Dinge, die Ihnen aufgefallen sind, das Problem mit dem Datenungleichgewicht, verrauschte Beispiele usw. angeben. All diese Details sind wichtig und können bei der Auswahl der besten Methode hilfreich sein. Geben Sie mir weitere Details, wenn dies in Ordnung ist, und ich kann besser helfen
Bashar Haddad
1

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.

Diego
quelle
Ich habe bereits die Ensembletechniken sowie die Wahlklassifikatoren ausprobiert. Immer noch kein Glück.
Sagar Waghmode
Sehen Sie also eine große Überschneidung zwischen den Vorhersagen aus den beiden Datensätzen? Kann es sein, dass es tatsächlich keine neuen Informationen gibt? Dh die Daten erzählen die gleiche Geschichte.
Diego
Ja, genau das habe ich getan. Obwohl sich die Vorhersagen nicht vollständig unterscheiden, ist die Anzahl der Stichproben, bei denen sich die Vorhersagen unterscheiden, ziemlich hoch (etwa 15 bis 20%). Bei diesen Beispielen schneidet das Modell mit spärlichen Merkmalen besser ab als das Modell mit dichten Merkmalen. Mein Punkt ist, wenn spärliche Merkmale eine bessere Leistung erbringen, warum werden sie in keinem der Modelle, die ich bisher ausprobiert habe, als wichtige Merkmale angesehen.
Sagar Waghmode
Welchen Prädiktoralgorithmus verwenden Sie?
Diego
Ich habe einige Algorithmen ausprobiert und mich für das Gradient Boosted Model entschieden, außerdem verwende ich Random Forests ziemlich oft für mein Problem.
Sagar Waghmode
1

Zusätzlich zu einigen der obigen Vorschläge würde ich die Verwendung eines zweistufigen Modellierungsansatzes empfehlen .

  1. Verwenden Sie zuerst die spärlichen Features und entwickeln Sie das beste Modell.
  2. Berechnen Sie die vorhergesagte Wahrscheinlichkeit aus diesem Modell.
  3. Geben Sie diese Wahrscheinlichkeitsschätzung in das zweite Modell ein (als Eingabe-Feature), das die dichten Features enthalten würde. Verwenden Sie mit anderen Worten alle dichten Features und die Wahrscheinlichkeitsschätzung, um das zweite Modell zu erstellen.
  4. Die endgültige Klassifizierung basiert dann auf dem zweiten Modell.
Vishal
quelle
0

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.

Tagar
quelle
Wow, das hat die AUC tatsächlich nach unten gebracht :( Ich bin nicht sicher, was es bedeutet, muss die Wichtigkeit der Merkmale und alles überprüfen. Aber meine Philosophie ist, dass ich von rund 2,3.000 spärlichen Merkmalen 1.000 Merkmale verwendet habe, die das Varianzverhältnis von 0,97 erklärten. Dieser Informationsverlust könnte AUC zum
Erliegen
Interessant. Danke für das Teilen. Wir haben einen sehr ähnlichen Datensatz wie Sie (1k-2k spärliche Merkmale). Wie viele Hauptkomponenten haben Sie aus Neugier generiert? Wenn diese Zahl zu niedrig ist, kann dies erklären, warum die AUC gesunken ist.
Tagar
Wie ich bereits sagte, habe ich 1k Hauptkomponenten generiert, die die Varianz von 0,97 erklärten.
Sagar Waghmode