绘制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
)。
由于
答案 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')
例如在上图中,在某个阈值和假阳性率0.2的成本,我们可以得到真正的正近0.96 - 0.97