了解随机森林博客的几个问题

数据挖掘 r 随机森林 逻辑回归 交叉验证 采样
2022-02-20 02:25:28

我试图理解一篇关于随机森林和逻辑回归模型的敏感性与特异性之间权衡的好博客。我有几个问题:

ranger1)博客在包中使用了10折交叉验证R(见模型mod_rf),并将度量设置为ROC。那么,我们得到的最终输出(混淆矩阵)是否是 10 个验证集中具有最佳 ROC(AUC 值)的那个?

2)当我尝试查看变量重要性时varImp(mod_rf),它表示重要性值不可用。这是为什么?我怎么才能得到它?

3) 中的caretR允许上采样以调整数据的不平衡。他们尝试使用逻辑回归(参见模型sim_glm)进行上采样,并指定repeats = 2重复 10 倍交叉验证 2 次。它是如何工作的?我不清楚。它是否会在交叉验证的每一折之前对女性进行上采样以创建 50-50 的男性和女性比例?在随机森林的情况下,该过程如何用于上采样repeats = 2和 10 倍交叉验证?

4)如果我的训练数据中的 AUC(来自 ROC 曲线)比来自测试数据的 AUC 小约 10 个百分点,我应该如何解释(这发生在我的数据上)?我认为训练数据总是显示出比测试数据更高的 AUC,因为我们使用训练数据来构建我们的模型。

我很欣赏你的回应。

1个回答

我查看了您的问题并简要查看了您发布的博客。我不会详细回答您的所有问题,因为这需要时间并且应该有一个问题。尽管如此,我想在这方面给您一些提示,并在可能的情况下为您提供帮助。

  • 通常在测试集上进行混淆矩阵时,您还可以看到 where is used confusionMatrix(data = rparty.test, reference = testing$Sex)通常的做法是拥有一个训练集,经过交叉验证以选择超参数等,然后在测试集上对其进行测试。没有规则只是遵循一个合乎逻辑的程序。如果这些是新的,我建议深入了解什么是交叉验证与训练集、测试集和验证集。
  • 可能是在谈论 SMOTE 上采样(又名过采样)。该理论用于通过创建合成变量(通过结合前所未有的类别的特征)来创建新的人工变量。我再次建议您看看有很多方法可以处理不平衡的数据集。让我们举几个例子:欠采样、过采样、集成采样(结合前面的),或者您当然可以调整您的模型,以免对某个类不公平等等。
  • 不会详细介绍 ROC 曲线,但我建议您检查 AUC 图形,而不是在此示例中尝试理解。提示,训练数据集是平衡的,因此模型期望测试集的平衡数据集而不是不平衡是合理的。

总而言之,我有一个快速的概述并没有深入你的博客,我没有发现它非常全面,而且使用了令人困惑的术语(我记得),例如,过采样而不是上采样或精度而不是特异性并回忆起敏感性。我写了答案,因为我同情你是该领域的新人,但下次请只发布一个问题,如果适用,请在博客上提出这类问题,而不是在这里作者可以直接回答的问题。希望我对您有所帮助,但您也应该了解您打开了很多主题。