【发布时间】:2018-07-31 05:10:58
【问题描述】:
我的数据资源:https://www.kaggle.com/mlg-ulb/creditcardfraud 数据集高度不平衡,正类(欺诈)占所有交易的0.172%,
我正在使用 PRROC 包来获取 ROC 曲线的 AUC,这是我的随机森林代码:
rf.model <- randomForest(Class ~ ., data = training, ntree = 2000, nodesize = 20)
rf_pred <- predict(rf.model, test,type="prob"
所以,正如预期的那样,rf_pred 应该返回每个类的概率: 然后,我使用了以下代码:
fg_rf <- rf_pred[test$Class==1]
bg_rf <- rf_pred[test$Class==0]
roc_rf <- roc.curve(scores.class0 = fg_rf,scores.class1 = bg_rf,curve = T)
然而,ROC CURVE 结果并非我所期望的那样
PR曲线也出现了同样的问题。是因为班级的高度不平衡吗?
并且假设 rf_pred 返回 0/1 的概率,如何让 fg_rf 等于 calss=1 的概率,我的代码:fg_rf <- rf_pred[test$Class==1] 正确吗?
【问题讨论】:
-
如果您制作了一个可重复的示例,我们可以检查一下 :-) 数据是什么? stackoverflow.com/questions/5963269/…
-
您好,我的数据在类中高度不平衡,0:199021; 1:345。在使用这些训练数据训练模型之前,我应该在训练数据中平衡类吗?
标签: r machine-learning random-forest roc auc