大型数据集的一种热编码方式

时间:2020-09-30 11:27:48

标签: pandas scikit-learn one-hot-encoding apriori mlxtend

我想使用在mlxtend库先验算法中实现的关联规则来构建推荐系统。在我的销售数据中,有关于3600万笔交易和5万种独特产品的信息。 我尝试使用sklearn OneHotEncoder和pandas get_dummies(),但由于无法创建形状为(36 mil,50k)的框架,两者均出现OOM错误

MemoryError: Unable to allocate 398. GiB for an array with shape (36113798, 50087) and data type uint8

还有其他解决方法吗?

1 个答案:

答案 0 :(得分:0)

我认为一个好的解决方案是使用嵌入而不是一键编码来解决您的问题。此外,我建议您将数据集分成较小的子集,以进一步避免内存消耗问题。

您还应该参考以下线程:https://datascience.stackexchange.com/questions/29851/one-hot-encoding-vs-word-embeding-when-to-choose-one-or-another