Das Zeichnen einer ROC-Kurve in einem Scikit ergibt nur 3 Punkte

TLDR: scikitsroc_curveie @ -Funktion gibt nur 3 Punkte für einen bestimmten Datensatz zurück. Warum könnte dies sein und wie steuern wir, wie viele Punkte zurückgegeben werden sollen?

Ich versuche eine ROC-Kurve zu zeichnen, erhalte aber immer ein "ROC-Dreieck".

lr = LogisticRegression(multi_class = 'multinomial', solver = 'newton-cg')
y = data['target'].values
X = data[['feature']].values

model = lr.fit(X,y)

# get probabilities for clf
probas_ = model.predict_log_proba(X)

Nur um sicherzustellen, dass die Längen in Ordnung sind:

print len(y)
print len(probas_[:, 1])

Gibt 13759 für beide zurück.

Dann läuft:

false_pos_rate, true_pos_rate, thresholds = roc_curve(y, probas_[:, 1])
print false_pos_rate

returns [0. 0.28240129 1.]

Wenn ich Bedrohungen anrufe, erhalte ich ein Array ([0.4822225, -0.5177775, -0.84595197]) (immer nur 3 Punkte).

Es ist daher nicht verwunderlich, dass meine ROC-Kurve wie ein Dreieck aussieht.

as ich nicht verstehen kann ist warum scikitroc_curve gibt nur 3 Punkte zurück. Hilfe sehr geschätzt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage