3

我按照教程显示了 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>

我该如何解决这个问题?

4

3 回答 3

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 曲线。

ROC 曲线

免责声明:请注意,这使用了我构建的scikit-plot库。

于 2017-02-22T13:34:27.983 回答
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')
于 2016-08-12T07:09:21.523 回答
0
ggplot(df, aes(x='fpr', y='tpr'))+\
geom_line()+\
geom_abline(linetype='dashed',slope=1,intercept=0)

错误说您必须添加 args slope=? 和拦截=?。之后它的工作原理

于 2016-08-12T08:54:17.180 回答