R:xgboost曲线roc曲线

时间:2015-11-04 09:29:27

标签: r plot machine-learning

绘制roc曲线:

library(ROCR)
<data cleaning/scrubbing>
<train data>
.....
.....
rf.perf = performance(rf.prediction, "tpr", "fpr") #for RF
logit.perf = performance (logit.prediction, "tpr", "fpr") #for logistic reg
tree.perf = performance(tree.prediction, "tpr", "fpr") #for cart tree
...
plot(re.perf) #a RF roc curve

如果我想运行xgboost分类并随后绘制roc: objective =&#34; binary:logistics&#34;

我对xgboost的论据指标&#34; auc&#34; CRAN manual的第9页)感到困惑,它说区域。 如何使用tpr和fpr绘制曲线以进行模型比较?

我尝试搜索网络和github,最重视功能重要性图表(xgboost)。

由于

1 个答案:

答案 0 :(得分:2)

首先我来谈谈ROC曲线

  

通过在各种阈值设置下绘制真阳性率(TPR)与误报率(FPR)来创建ROC曲线。

在python中,它可以很容易地完成:

from sklearn import metrics
def buildROC(target_test,test_preds):
    fpr, tpr, threshold = metrics.roc_curve(target_test, test_preds)
    roc_auc = metrics.auc(fpr, tpr)
    plt.title('Receiver Operating Characteristic')
    plt.plot(fpr, tpr, 'b', label = 'AUC = %0.2f' % roc_auc)
    plt.legend(loc = 'lower right')
    plt.plot([0, 1], [0, 1],'r--')
    plt.ylabel('True Positive Rate')
    plt.xlabel('False Positive Rate')
    plt.gcf().savefig('roc.png')

enter image description here

例如在上图中,在某个阈值和假阳性率0.2的成本,我们可以得到真正的正近0.96 - 0.97

A good documentation on ROC