微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将大数据集拆分为块并执行 fit_transform / fit_resample 和 union 结果?

如何解决如何将大数据集拆分为块并执行 fit_transform / fit_resample 和 union 结果?

我正在处理高度不平衡的大型数据集。我正在努力学习

smote_nc = SMOTENC(categorical_features=[df.dtypes=='category'],random_state=0)
X,y = smote_nc.fit_resample(X,y)    

却陷入了MemoryError

MemoryError: Unable to allocate 15.2 GiB for an array with shape (190824,10724) and data type float64

有没有办法将这个操作分块并将平衡的结果保存到数据帧中?

数据集示例如下所示

enter image description here

解决方法

Smote 是一种过采样方法。它会生成新的额外训练样本,帮助您克服原始数据集的不平衡。此方法创建了一个无法放入内存的非常大的数据集。您可以尝试的一件事是指定 sampling strategy 关键字。例如,对于二元分类,您可以将比率设置为 0.3。输出数据集应该更小,因此适合内存。

请注意,我还没有测试过。这只是一个建议。如果这不是您的选择,您可以随意粘贴一些示例数据,以便我们查看。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。