1.数据量十几万条!
2.想做数据挖掘的关联分析 (啤酒与尿布的故事)
3.使用apriori算法与fp_tree算法根本跑不动大数据
求问还有什么算法或者方法可以做大数据的关联分析?
该回答引用ChatGPT4与博主@晓码自在合作编写:
对于大数据的关联分析,可以考虑以下几个方面:
- 采样:只使用数据集的一个样本,而不是全部数据。比如随机采样10万条数据进行分析。采样可以大大减小计算量,而结果也不会有太大偏差。
- 分片:将数据分割成多个片段,在每个片段上分别进行关联分析,然后聚合结果。每个片段的计算量都会小很多,所以更容易完成。
- 并行化:采用Spark, Flink等大数据框架,通过并行化大大提高apriori和FP-growth算法的性能,使其能够处理更大的数据集。
- 改进的算法:
- FP-growth*:一种改进的FP-growth算法,通过剪枝和合并可以提高效率。
- 基于位图的算法:通过位图来表示项集和交易记录,可以大大压缩空间和提高效率。
- 支持度剪枝:按支持度阈值更早剪枝,可以提前终止 recursion,减少计算量。
- 拟合简单模型:通过决策树,Logistic回归等简单模型对全部数据集进行拟合和预测,得到规则和关联结果。这种bayesian学习的方法更适合超大数据集。
- 如果数据集太大,建议从1-3开始尝试,采样、分片和并行化能够在不改变算法的情况下大幅提高性能。
- 如果1-3还不够,可以尝试4中的改进算法和新方法。特别推荐基于位图的算法,它在空间和时间上的优化都很显著。
- 如果都不行,才使用5中通过机器学习简单模型来拟合和分析全数据集。这需要对机器学习有一定基础。