Das Zeichnen einer ROC-Kurve in einem Scikit ergibt nur 3 Punkte
TLDR: scikitsroc_curve
ie @ -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.