我按照教程显示了roc曲线和相应的auc;我从来没有使用过ggplot库,因此我无法理解我的错误在哪里。这里的代码如下:
from sklearn import metrics
import pandas as pd
from ggplot import *
preds = clf.predict_proba(Xtest)[:,1]
fpr, tpr, _ = metrics.roc_curve(ytest, preds)
df = pd.DataFrame(dict(fpr=fpr, tpr=tpr))
ggplot(df, aes(x='fpr', y='tpr')) + geom_line() + geom_abline(linetype='dashed')
这是错误:
slope needed for <ggplot.geoms.geom_abline.geom_abline object at 0x7fae7e7f8d90>
我该如何解决这个问题?
答案 0 :(得分:0)
ggplot(df, aes(x='fpr', y='tpr',ymin=0, ymax='tpr'))+ \
geom_area(alpha=0.2)+\
geom_line(x,y,aes(y='tpr'))+\
ggtitle("ROC Curve w/ AUC=%s" % str(auc))
import matplotlib.pyplot as plt
plt.plot(x,y,'--',color='grey')
答案 1 :(得分:0)
ggplot(df, aes(x='fpr', y='tpr'))+\
geom_line()+\
geom_abline(linetype='dashed',slope=1,intercept=0)
错误说你必须添加args slope =?并且拦截=?。之后它起作用
答案 2 :(得分:0)
这是绘制ROC曲线的最简单方法,给定一组地面实况标签和预测概率。最好的部分是,它绘制了所有类的ROC曲线,因此您也可以获得多个整齐的曲线。修改你的代码...
import scikitplot.plotters as skplt
import matplotlib.pyplot as plt
preds = clf.predict_proba(Xtest)
skplt.plot_roc_curve(ytest, preds)
plt.show()
您需要的只是预测的概率和真实标签。
这是plot_roc_curve生成的样本曲线。我使用了来自scikit-learn的样本数据集,因此有10个类。请注意,为每个类绘制了一条ROC曲线。
免责声明:请注意,这会使用我构建的scikit-plot库。