Функция TL;DR: scikit roc_curve
возвращает только 3 балла для определенного набора данных.
Почему это возможно, и как мы можем контролировать, сколько очков нужно вернуть?
Я пытаюсь нарисовать кривую ROC, но последовательно получаю "треугольник ROC".
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)
Просто чтобы убедиться, что длина в порядке:
print len(y)
print len(probas_[:, 1])
Возвращает 13759 на обоих.
Затем выполняется:
false_pos_rate, true_pos_rate, thresholds = roc_curve(y, probas_[:, 1])
print false_pos_rate
возвращает [0. 0.28240129 1.]
Если я вызываю threasholds, я получаю массив ([0.4822225, -0.5177775, -0.84595197]) (всегда только 3 балла).
Поэтому неудивительно, что моя кривая ROC выглядит как треугольник.
То, что я не могу понять, - это , почему scikit roc_curve
возвращает только 3 пункта.. Помощь очень ценится.