是否需要分层抽样(随机森林、Python)?

数据挖掘 机器学习 Python 随机森林 采样 训练
2021-09-28 01:47:26

我使用 Python 在我的不平衡数据集上运行随机森林模型(目标变量是二进制类)。在拆分训练和测试数据集时,我纠结于是否使用分层抽样(如代码所示)。到目前为止,我在我的项目中观察到分层案例会导致更高的模型性能。但我想如果我将使用我的模型来预测新案例,这些新案例的目标类分布与我当前的数据集很可能不同。所以我倾向于放松这个约束并使用未分层的拆分。任何人都可以建议澄清这一点吗?

train,test=train_test_split(myDataset, test_size=0.25, stratify=y)
1个回答

如果属于每个类的值的数量不平衡,则使用分层抽样是一件好事。您基本上是在要求模型采用训练和测试集,以使类比例与整个数据集的比例相同,这是正确的做法。如果你的班级是平衡的,那么洗牌(这里不需要分层)基本上可以保证公平的测试和训练拆分。

现在,您的模型将能够或至少有足够的能力来预测数量过多的类别(数量较少的类别)。这就是为什么不只是计算准确度,而是为您提供其他指标,例如敏感度和特异性留意这些,这些是监护人。

希望这可以帮助。