Ich verwende die logistische Regression für die binäre Klassifizierung. Ich habe einen großen Datensatz (zufällig sehr unausgeglichen: 19: 1). Also benutze ich Scikit-Learns LogisticRegression()
, um 80% meiner beschrifteten Daten zu trainieren, und validierte dann mit den anderen 20% (ich habe mir den Bereich unter ROC sowie den Präzisionsrückruf angesehen, weil die Daten so unausgewogen waren; ich habe auch das Modell mit verwendet class_weight='auto'
).
Meine Hauptfrage lautet wie folgt: Wenn ich mit der Erstellung von Vorhersagen für unbeschriftete Eingabevektoren (unter Verwendung predict_proba()
) beginne , wie kann ich feststellen, welche der Funktionen am meisten zur Vorhersage dieser bestimmten Eingabe beigetragen haben ? Ich stelle mir vor, dass dies anders sein könnte als die "wichtigsten Merkmale", die im Allgemeinen für das Modell basierend auf den gekennzeichneten Trainingsdaten (z. B. Koeffizientengröße) bestimmt werden.
Ich hatte eine sehr grundlegende Idee:
Nehmen Sie das komponentenweise Produkt meiner eingegebenen Merkmalswerte mit dem absoluten Wert meiner Merkmalskoeffizienten. Das am meisten beitragende Merkmal ist dann dasjenige, das dem Eintrag mit dem größten Wert entspricht.
Tun Sie (1), aber verwenden Sie Z-Scores für alles (Trainings- und Eingabefunktionen). Ich dachte, dies wäre wichtig, weil ich befürchtete, dass einige Funktionsbereiche sich stark von anderen unterscheiden könnten und die bloße Einnahme von Produkten dies möglicherweise nicht erfasst. Aber ich denke, die Koeffizienten sollten Bereiche widerspiegeln, also spielt das vielleicht keine Rolle.
Alle Gedanken wären sehr dankbar, da ich neu in diesem Bereich bin. Dinge, die für die logistische Regression spezifisch sind (dh Sigmoid statt nur lineare Funktion), und Hinweise darauf, wie bestimmte Aktionen (z. B. Transformationen) in Scikit-Learn implementiert werden, wären sehr willkommen, da ich tatsächlich ein Projekt mit realen Daten durchführe.