Ich habe Probleme mit dem richtigen Aufruf von Scikits logistischer Regression für den Mehrklassenfall. Ich benutze den lbgfs Solver, und ich habe den multi_class Parameter auf Multinomial gesetzt.Mehrklassenlogistische Regression in SciKit Learn
Es ist mir unklar, wie die zutreffenden Klassenbeschriftungen beim Anpassen des Modells übergeben werden. Ich hatte angenommen, dass es ähnlich/wie für die Random Forest Classifier Multiklasse, wo Sie [n_samples, m_classes] Dataframe übergeben. Dadurch bekomme ich jedoch einen Fehler, dass die Daten eine schlechte Form haben. ValueError: schlechte Eingabeform (20, 5) - in diesem winzigen Beispiel gab es 5 Klassen, 20 Beispiele.
Bei der Überprüfung der Dokumentation für die Fit-Methode heißt es, dass die Wahrheitswerte als [n_samples,] übergeben werden - was dem Fehler entspricht, den ich bekomme - aber ich habe keine Ahnung, wie man das Modell dann trainiert mehrere Klassen. Also, das ist meine Frage: Wie übertrage ich den ganzen Satz von Klassenbezeichnungen an die Fit-Funktion?
Ich konnte Beispielcode im Internet nicht finden, um modellieren, noch diese Frage auf StackOverflow .. aber ich bin sicher, dass jemand wissen muss, wie es geht!
in dem folgenden Code, train_features = [N_SAMPLES, nn_features], truth_train = [N_SAMPLES, m_classes]
clf = LogisticRegressionCV(class_weight='balanced', multi_class='multinomial', solver='lbfgs')
clf.fit(train_features, truth_train)
pred = clf.predict(test_features)
Dank für Ihre Antwort danken. Ich suche eigentlich nach Multi-Klasse, das heißt, jede Probe ist nur einer Klasse. ABER, was ich mit der Gesamtstruktur gemacht hatte, war, die Klassenzuweisungen in boolesche Arrays umzuwandeln, und so kam ich zum n x m Array. Also, wenn ich Sie richtig verstehe, sollte ich meine Klassenbezeichnungen in Ganzzahlen konvertieren und ein einzelnes n_sample long-Array erstellen, in dem die Werte, die es annehmen kann, den verschiedenen Klassenbezeichnungen zugeordnet werden. Ist das korrekt? Danke für Ihre Hilfe. –
Ja, und Sie sollten das gleiche mit Bäumen tun. Andernfalls passen Sie stattdessen das Multilabel-Modell an. – lejlot
@lejlot Ich habe Scikit logistische Regression für Multi-Vorhersage von Skalaren verwendet. Antwort von dukebody in https://stackoverflow.com/questions/36760000/python-how-to-use-multinomial-logistic-regression-using-sklearn funktioniert auch für mich. Vielleicht habe ich deine Antwort missverstanden? –