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.