我有一个非常简单的问题,我的结果是二元的,我正在尝试使用逻辑回归(使用 tidymodels)根据一些预测变量(其中一些是众所周知的良好预测变量)进行分类。
我将因子结果编码为 0 和 1(1=正,这是我最感兴趣的)。
当我使用 types="class" 和 types="prob" 运行预测函数时,我得到名为:.pred_class、.pred_0 和 .pred_1 的列。
然后,例如,绘制 ROC 曲线时,我想知道是否应该使用
roc1 <- roc_curve(data_test_pred, outcome, .pred_1)
或
roc1 <- roc_curve(data_test_pred, outcome, .pred_0).
第一个(我认为是正确的)在对角线下方给出了一个糟糕的 ROC 曲线,第二个给出了一个不错的 ROC 曲线。
所以,我只是不明白这里发生了什么,我不知道如何继续。
yardstick 使用第一级作为事件。因此,如果您的
outcome
是具有级别 c(0,1)
的因子,则标准将第一个级别 0
作为事件级别。然后,当提供 .pred_0
作为包含事件的类概率的列时,这与您获得合理的曲线相匹配。
如果想使用第二个因子级别作为事件级别,可以在
event_level = "second"
中设置roc_curv()
,另请参阅https://yardstick.tidymodels.org/reference/roc_auc.html#relevant-level。