TLDR: scikit'in roc_curve
işlevi yalnızca belirli bir veri kümesi için 3 puan döndürüyor. Neden böyle olabilir ve kaç puan geri döneceğimizi nasıl kontrol ederiz?Scikit'te bir ROC eğrisinin çizilmesi sadece 3 puan verir
ROC eğrisi çizmeye çalışıyorum ama sürekli olarak "ROC üçgeni" elde ediyorum.
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)
Sadece uzunlukları Tamam olduğundan emin olmak için:
print len(y)
print len(probas_[:, 1])
hem 13.759 döndürür.
sonra çalışan:
false_pos_rate, true_pos_rate, thresholds = roc_curve(y, probas_[:, 1])
print false_pos_rate
döner [0 0,28240129 1.]
I threasholds çağrı, ben dizi ([0,4822225, -,5177775, -,84595197]) (her zaman sadece 3 puan).
Bu nedenle ROC eğimimin bir üçgen gibi görünmesi sürpriz değil.
Neyi anlayamadığım neden scikit's roc_curve
yalnızca 3 puan döndürüyor. Kesinlikle takdir edilmesine yardımcı olun.
"probas _ [:, 1]' içindeki değerleri kontrol ettiniz mi? 13759 uzunluğuna sahip olmasına rağmen, sadece 3 değer içerebilir ... – pyan
Yardımlarınız için teşekkür ederim, [print pd.Series (probas _ [:, 1]). Unique()] 've gerçekten sadece 2 uniques ('[-0.84595197 -0.5177775]') –
'a iade edildi. İsterseniz cevabı kabul edin. – pyan