Genauigkeit Punktzahl : ValueError: nicht Verarbeiten Kann mischen binäre und kontinuierliche
Ich bin mit linear_model.LinearRegression von scikit-learn als ein prädiktives Modell aus. Es funktioniert und es ist perfekt. Ich habe ein problem, zu bewerten, die prognostizierten Ergebnisse mit der accuracy_score Metrik.
Dies ist meine wahre Daten :
array([1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0])
Und das ist mein predictive Data :
array([ 0.07094605, 0.1994941 , 0.19270157, 0.13379635, 0.04654469,
0.09212494, 0.19952108, 0.12884365, 0.15685076, -0.01274453,
0.32167554, 0.32167554, -0.10023553, 0.09819648, -0.06755516,
0.25390082, 0.17248324])
Mein code :
accuracy_score(y_true, y_pred, normalize=False)
- Und das ist die Fehlermeldung :
"ValueError: nicht verarbeiten Kann mischen von binären und kontinuierlichen"
Helfen ? Danke.
Was sind die dtypes? Kann Sie nur gegossen
Es ist die überprüfung der
y_true
zu numpy.int8
? Vielleicht suchen Sie Logistische regression statt, um vorherzusagen, kategoriale Variablen?Es ist die überprüfung der
type_of_target(y_true)
und type_of_target(y_pred)
(in utils.multiclass.py
). Wenn das array nur 2 eindeutige Werte es ist klassifiziert als binary
.InformationsquelleAutor DataAddicted | 2016-06-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
wenn Sie es vorziehen, mehr Kontrolle über die Schwelle verwenden
(y_pred>threshold).astype(int)
statty_pred.round()
wothreshold
ist Ihr Wert zur Trennung der zwei Klassen.Ein Hinweis auf das erwartete array. Ich sehe, Sie haben negative Werte. Im Normalfall sollte man Wahrscheinlichkeiten zwischen 0 und 1. Sie könnte konvertieren, um Wahrscheinlichkeiten mithilfe der softmax-Funktion finden Sie unter stackoverflow.com/questions/34968722/softmax-function-python
Hallo, ich bin mit Ihrem Vorschlag für die Verwendung Schwelle, wie auch immer, ich bin nicht sicher, wie Sie Sie zu kommen mit der richtigen Schwelle noch, ich dachte, wenn es möglich ist, verwenden Sie die hyper-parameter-Optimierung Bibliotheken für diesen Zweck. Lassen Sie mich wissen, Ihre Ansichten bitte
InformationsquelleAutor natbusa
Den sklearn.Metriken.accuracy_score(y_true, y_pred) - Methode definiert y_pred:
y_pred : 1d-array-like, oder label indicator array /sparse-matrix. Vorhergesagten Etiketten, zurückgegeben durch einen Klassifizierer.
Was bedeutet y_pred hat, um ein array von 1 s oder 0 s (ausgesagt Etiketten). Sollten Sie nicht Wahrscheinlichkeiten.
Die ausgesagt Etiketten (1 und 0) und/oder vorhergesagten Wahrscheinlichkeiten erzeugt werden kann, mit Hilfe der LinearRegression () - Modell die Methoden predict() und predict_proba() bzw..
1. Generieren vorhergesagten labels:
Ausgabe:
'y_preds' kann jetzt verwendet werden, für die accuracy_score () - Methode:
accuracy_score(y_true, y_pred)
2. Generieren Wahrscheinlichkeiten für Etiketten:
Einige Metriken wie 'precision_recall_curve(y_true, probas_pred)" erfordern Wahrscheinlichkeiten, die erzeugt werden kann, wie folgt:
Ausgabe:
InformationsquelleAutor MLKing
Das problem ist, dass der wahre y Binär (Nullen und Einsen), während Ihre Vorhersagen nicht. Sie wahrscheinlich generiert Wahrscheinlichkeiten und keine Vorhersagen, daher ist das Ergebnis 🙂
Versuchen Sie stattdessen zu generieren-Klasse-Mitgliedschaft, und es sollte funktionieren!
InformationsquelleAutor JohnnyQ
Vielleicht hilft dies ja jemand, der findet diese Frage:
Als JohnnyQ bereits darauf hingewiesen, das problem ist, dass Sie nicht-Binär (nicht 0 noch 1) die Werte in Ihrem
y_pred
ich. e. beim hinzufügensehen Sie
True
in der Ausgabe. (Der Befehl findet heraus, ob es irgendeinen Wert, der nicht 0 oder 1).Können Sie Ihre nicht-binäre Werte mit:
Einer print-Anweisung ausgegeben werden können, die oben abgeleitete Variablen.
Schließlich, diese Funktion reinigen können Sie Ihre Daten von allen nicht-binäre Einträge:
InformationsquelleAutor Manu CJ
accuracy_score ist eine Klassifikation, die Metrik, die Sie verwenden können es für eine regression-problem.
Sehen Sie die verfügbaren regression Metriken hier
InformationsquelleAutor Amey Yadav