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


14

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

train,test=train_test_split(myDataset, test_size=0.25, stratify=y)

Answers:


13

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

现在,您的模型将有能力或至少有足够的能力来预测数量过多的类(数量较少的类)。这就是为什么不仅仅计算准确性,还为您提供了诸如“ 灵敏度”和“特异性”之类的其他指标的原因。注意这些,这些是监护人。

希望这可以帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.