我有一个数据矩阵X
n
x 2和相应的二进制标签数组y
,说明第i个人是否是赢家。我试图创建一个散点图,其上面有一个热图,它显示了图上每个点的预测概率。这是我到目前为止的代码
import matplotlib.pyplot as plt
from sklearn.externals import joblib
from sklearn.linear_model import LogisticRegression
X = joblib.load('X.pkl')
y = joblib.load('y.pkl')
lr = LogisticRegression()
lr.fit(X, y)
plt.scatter(X[y == 1, 0], X[y == 1, 1], color='r', label='winners', s=1)
plt.scatter(X[y == 0, 0], X[y == 0, 1], color='b', label='losers', s=1)
plt.legend()
# Want to add a heatmap in the background for predicted probabilities here
plt.show()
基本上,我希望背景在预测概率高的地方更红,在低预测概率时更蓝。我可以使用lr.predict_proba(X)[:0]
获得一组点的概率。
如何为背景着色,使图表中的每个点(x1,x2)都根据其预测的获胜概率给出颜色?
答案 0 :(得分:0)
您要找的是指定点的c值和色彩映射:
props = lr.predict_proba(X)
plt.scatter(X[y == 1, 0], X[y == 1, 1], c=props[:, 1], cmap='Reds', label='winners', s=1)
plt.scatter(X[y == 0, 0], X[y == 0, 1], c=props[:, 0], cmap='Blues', label='losers', s=1)
如果您需要不同的色彩映射,请查看此链接以获取完整列表: https://matplotlib.org/examples/color/colormaps_reference.html