我在 python 中调整随机森林,想知道我的模型是否/为什么过度拟合。数据集描述如下:
- 1700 例阳性病例 / 54000 例总病例 ~ 3.2%(不平衡)
- 50 个数值特征,~450 个标签/热编码特征(后数据缩减)
- 10Fold CV 使用 85% 的数据,15% 用于最终测试
- 分类指标 = AUC 或 F1(因为数据不平衡)
我得到的结果倾向于建议使用非常深的树,即深度 18,对每个拆分的样本数没有限制 = 2(默认)。在这种情况下,训练 AUC 为 99.9%,最大测试 AUC 为 84%。我的分数在树的最大深度上也几乎单调增加。鉴于结果和树的深度 - 我怀疑模型过度拟合?如果是这种情况,那么为什么我不会在 AUC 中观察到某种样本外的减少,因为深度和 min_samples_split 通常会限制随机森林?还是我在调音中忽略了什么?
我在 CV Grid Search 中的范围或多或少:
- n_estimates : 范围(100,1000,by=100)
- 最大特征:{sqrt(p),0.3,0.4,0.5}
- 最大深度:范围(2,20,by=1)
- min_samples_split : 范围(2,50,by=1)
- 类权重:{平衡,无}
谢谢