Ich habe erfolgreich ein logistisches Regressionsmodell aus dem scikit-learn SGDClassifier Paket ausgeführt, kann aber die Koeffizienten des Modells (Zugriff über SGDClassifier.coef_
) nicht einfach interpretieren, da die Eingabedaten über Scikit transformiert wurden -learns OneHotEncoder.Abrufen von Originalvariablen nach Scikit Model Run mit OneHotEncoding
My ursprünglichen Eingangsdaten X
ist der Form (12000,11):
X = np.array([[1,4,3...9,4,1],
[5,9,2...3,1,4],
...
[7,8,1...6,7,8]
])
I dann eine heiße Codierung angewendet:
from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder()
X_OHE = enc.fit_transform(X).toarray()
die eine Anordnung von Form erzeugt (12000, 696) :
X_OHE = np.array([[1,0,1...0,0,1],
[0,0,0...0,1,0],
...
[1,0,1...0,0,1]
])
ich dann die die prod mit SGDClassifier.coef_
Koeffizienten zuzugreifen Modell uces eine Reihe von Form (1696):
coefs = np.array([[-1.233e+00,0.9123e+00,-2.431e+00...-0.238e+01,-1.33e+00,0.001e-01]])
Wie ich die Koeffizientenwerte ordne wieder auf die ursprünglichen Werte in X
, so kann ich etwas sagen wie: „wenn die Variable foo
einen Wert von bar
hat, das Ziel Variable erhöht/verringert sich um bar_coeff
"?
Lassen Sie mich wissen, wenn Sie mehr Informationen über die Daten oder die Modellparameter benötigen. Vielen Dank.
fand ich eine offene Frage dazu auf SO: How to retrieve coefficient names after label encoding and one hot encoding on scikit-learn?
Nehmen wir an, ein einzelnes Feature in Originaldaten wird in ein Hot-codierten Daten in 4 Features konvertiert. Alle diese 4 Funktionen haben unterschiedliche Koeffizienten, wie wollen Sie diese in die ursprüngliche Funktion kombinieren? –
Ich denke, Sie haben gerade die gleiche Frage gestellt, die ich oben gepostet habe. – NickBraunagel
Ja, genau das habe ich versucht zu sagen. Es ist nicht in der Bibliothek verfügbar, da es keine feste Möglichkeit ist, die Ergebnisse zu interpretieren. Die andere Frage, die Sie verlinkt haben, besagt, dass sie auf Cross-validiert gestellt wurde, hier aber verwiesen wird. Ich würde dir raten, dies nochmal auf Kreuz-validiert zu stellen, aber nicht mit dem aktuellen Frageformular. Entfernen Sie lieber die Bibliotheken und die Programmierung und beschreiben Sie einfach, was Sie tun möchten und welche Best Practices dafür geeignet sind. Wenn und wenn Sie einen zufriedenstellenden Weg finden, die einheiß codierten Koeffe zu interpretieren, versuchen Sie es zu programmieren. Hoffe ich bin klar. –