我正在处理高度不平衡的大型数据集。我在试着学习
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有没有办法将此操作分块并将平衡结果保存到dataframe?
数据集示例如下所示

发布于 2020-12-27 20:43:00
Smote是一种过采样方法。它会生成新的额外训练样本,帮助您克服原始数据集的不平衡。这个方法创建了一个内存无法容纳的非常大的数据集。可以尝试的一件事是指定sampling strategy关键字。例如,对于二进制分类,您可以将比率设置为0.3。输出数据集应该更小,因此可以放入内存。
请注意,我没有对其进行测试。这只是一个建议。如果这不是一个选择,您可以随意粘贴一些样本数据,以便我们可以进行查看。
https://stackoverflow.com/questions/65465624
复制相似问题