我是否过度拟合了我的随机森林模型(描述中的更多信息)?

数据挖掘 机器学习 r 随机森林 过拟合
2022-02-12 12:19:21

首先,对不起,如果这是一个新手问题!对所有这些东西都比较陌生。在 Stack Overflow 上发布了这个,有人把我送到了这里!希望是对的地方。

无论如何,我正在使用 22 个数据集,每个数据集都有 180 个“Oddball”数据观察值和 720 个“标准”数据观察值。我正在尝试使用随机森林进行分类(即,oddball=1,standard=0)。我知道这两个因素应该有大致相等的试验/观察,但如果我使用 75% 的古怪数据,那么我几乎不会使用超过 18% 的标准数据。这些数据变化很大,我认为这可能是有问题的。

如果我制作了四个模型,每个模型仍然使用相同的训练数据,我是否过度拟合了我的模型?我写的还有很多,但这基本上是我想要做的:

jj = sample(1:180,(180*75),replace = F #Take 75% of all oddball data
kk = sample(181:900,(720*.75),replace = F) #Take 75% of all standard data
jj = sample(jj); kk = sample(kk) #Mix them up
kk = matrix(kk,4) #Divide the standard data so there are 4 sets of equal numbers for jj
  
samp1 = c(jj,kk[1,])
samp2 = c(jj,kk[2,])
samp3 = c(jj,kk[3,])
samp4 = c(jj,kk[4,])

然后,我将使用这些样本集中的每一个创建四个模型(同时不涉及样本外数据),并对它们的所有预测进行平均,从而给我一个“主”概率(即,0.8 的平均值将被视为怪人)。

这是过度拟合数据吗?使用随机森林时甚至可能过度拟合数据吗?这种直觉有​​问题吗?

感谢任何帮助的人!非常感谢您的时间和专业知识。

2个回答

我认为没有必要通过平均概率将 4 个模型组合成一个模型(你怎么知道它们具有相同的权重?让学习者处理这些权重),因为你使用的是相同的特征和作为一个整体的学习者(它将弱学习者组合成一个本机已经)。因此,最好考虑这 4 个模型的标签和类别平衡。

这是过度拟合数据吗?使用随机森林时甚至可能过度拟合数据吗?这种直觉有​​问题吗?

为了说明您是否过度拟合,应该提供训练和测试错误与测试错误相比,简单的训练错误非常低,这意味着过度拟合。

其次,集成模型可能会由于它们的贪婪而过度拟合。最后,你提到了一些阶级不平衡。因此,您应该根据您的情况而不是准确性检查诸如roc aucrecall等指标。precision

因此我的建议是:

  1. 对所有 4 个模型应用超参数调整。
  2. 使用相关性能指标报告平均训练和测试错误(对于不平衡的考虑使用 roc auc)。
  3. 如果测试和训练错误之间存在巨大差异,请尝试更改您的模型/特征集等,因为您过度拟合(例如:0.99 用于训练,0.70 用于测试)。否则选择 4 个模型中的最佳估计器并将其用作最终估计器。

最后评论:随着复杂性的增加,模型更有可能过度拟合(与 rf、gbm、xgboost 等集成树相比,逻辑回归不太可能过拟合)。因此,在使用集成时始终调整您的参数。

希望能帮助到你!

这更像是评论而不是答案,但我的新手状态不允许我发表评论。

您可能有兴趣阅读这篇文章: 随机森林

在我看来,4 个样本的样本数量很少,我建议您尝试使用更多样本并比较您的结果。

此外,该算法有一些很好的实现,您是否出于学术目的尝试重新实现它?