最初,我有一个数据集,其中每一行都有他购买的user_id和product_ids。
在该数据集中,有478191种产品是由不同的用户购买的。
为了发现一起购买的频繁项目,我将使用关联规则,先验算法。因为先验算法希望有一个热编码的特性。我需要product_ids单热编码。
Scikit-学习一个热编码(稀疏matrix=True)导致内存错误。我还能用什么方法呢?(使用Python)
发布于 2018-06-10 23:29:19
显然,您需要一个支持稀疏特征向量的先验算法(或任何您想要使用的算法)的实现。如果还不存在,您可能需要自己实现它。
或者,您可以使用特征散列技巧。但是,请注意,它是可能会导致准确性的丧失和可解释性的丧失;没有什么是免费的。
发布于 2018-06-11 11:59:59
当项目集非常大时,您可以获取一个有代表性的示例:
1-首先取一个内存可以处理的示例,然后从该示例生成一些规则(将Apriori算法应用于样本而不是总体)
2-对照大型数据集检查规则(计算已知规则的可信度在计算上并不重)
3-重复步骤1和2,直到你的规则确定为止(没有新规则或附加规则很少被挖掘)。
有关处理大型项目集的更多方法,请参见https://pdfs.semanticscholar.org/3825/172284e1902f107540a52ae47a656c99eaba.pdf
另一个可能的解决方案是云计算,有许多云计算服务提供商,如Amazon服务AWS
https://datascience.stackexchange.com/questions/32918
复制相似问题