Scikit Learn - 如何绘制概率

时间:2017-08-16 13:32:04

标签: scikit-learn

我想绘制模型预测概率。

 plt.scatter(y_test, prediction[:,0])
    plt.xlabel("True Values")
    plt.ylabel("Predictions")
    plt.show()

Graph

但是,我得到了如上图。哪种有意义,但我想更好地可视化概率分布。有没有办法可以做到这一点,我的实际类为0或1,预测介于0和1之间。

2 个答案:

答案 0 :(得分:2)

可以将预测的概率用于可视化模型性能。可以使用颜色指示真实标签。

尝试以下示例:

from sklearn.datasets import make_classification
import matplotlib.pyplot as plt

X, y = make_classification(n_samples=1000, n_features=4,
                           n_informative=2, n_redundant=0,
                           random_state=1, shuffle=False)
from sklearn.linear_model import LogisticRegression

lr=LogisticRegression(random_state=0, solver='lbfgs', max_iter=10)
lr.fit(X, y)

prediction=lr.predict_proba(X)[:,1]

plt.figure(figsize=(15,7))
plt.hist(prediction[y==0], bins=50, label='Negatives')
plt.hist(prediction[y==1], bins=50, label='Positives', alpha=0.7, color='r')
plt.xlabel('Probability of being Positive Class', fontsize=25)
plt.ylabel('Number of records in each bucket', fontsize=25)
plt.legend(fontsize=15)
plt.tick_params(axis='both', labelsize=25, pad=5)
plt.show() 

enter image description here

答案 1 :(得分:0)

您可以根据真值拆分值,然后为两个类绘制两个值的组合图,例如使用以下内容(至少如果您有一个numpy数组arr_true和{{1}这应该工作):

arr_pred

这应该是这样的:enter image description here