Traçar uma curva ROC no scikit produz apenas 3 pontos

TLDR: scikit'sroc_curve A função está retornando apenas 3 pontos para um determinado conjunto de dados. Por que isso pode acontecer e como controlamos quantos pontos voltar?

Estou tentando desenhar uma curva ROC, mas sempre recebo um "triângulo 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)

Apenas para garantir que os comprimentos estejam corretos:

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

Retorna 13759 em ambos.

Em seguida, executando:

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

retorna [0. 0.28240129 1.]

Se eu chamar threasholds, recebo array ([0,4822225, -0,5177775, -0,84595197]) (sempre apenas 3 pontos).

Portanto, não é surpresa que minha curva ROC pareça um triângulo.

O que eu não consigo entender épor que o scikitroc_curve está retornando apenas 3 pontos. Ajuda extremamente apreciada.

questionAnswers(1)

yourAnswerToTheQuestion