ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spark 频繁模式挖掘

2020-09-29 17:31:23  阅读:320  来源: 互联网

标签:FP model 项集 频繁 Growth 挖掘 Spark spark


Spark - Frequent Pattern Mining

官方文档:https://spark.apache.org/docs/2.2.0/ml-frequent-pattern-mining.html

挖掘频繁项、项集、子序列或者其他子结构通常是大规模数据分析的第一步,这也是近些年数据挖掘领域的活跃研究话题;

目录:

  • FP-Growth

FP-Growth

FP-Growth算法基于这篇论文,“FP”的意思就是频繁模式,提供一个处理后的数据集,FP-Growth第一步是计算项的频率,同时标识频繁项,因为一些目的与类似Apriori算法在设计上有不同之处,FP-Growth第二步是使用一个后缀树(FP树)结构在没有生成显示候选集的情况下进行编码转换,生成候选集通常是代价高昂的,第二步之后,可以通过FP树来提取项集的频率,在spark.mllib中,实现了一个并行版本的FP-Growth算法,叫做PFP,PFP基于后缀转换来分配FP树的生长工作,因此相对比单机版本更有扩展性;

spark.ml的FP-Growth实现了以下超参数:

  • minSupport:一个项集被定义为频繁的最小支持度,如果一个项在5次事务中出现3次,那么它的支持度就是3/5=0.6;
  • minConfidence:生成关联规则的最小可信度,可信度用于指示一个关联规则多久被发现为真,例如,如果项集X出现了4次,X和Y同时发生了2次,那么关联规则X=>Y的可信度就是2/4=0.5,这个参数不会影响频繁项集的挖掘,但是会影响从频繁项集中生成关联规则;
  • numPartitions:使用多少分区来分配任务,默认不设置该参数,使用输入数据集的分区数;

FPGrowthModel提供如下属性:

  • freqItemsets:DataFrame格式的频繁项集数据;
  • associationRules:生成的可信度大于minConfidence的关联规则,同样是DataFrame格式;
  • transform;
from pyspark.ml.fpm import FPGrowth

df = spark.createDataFrame([
    (0, [1, 2, 5]),
    (1, [1, 2, 3, 5]),
    (2, [1, 2])
], ["id", "items"])

fpGrowth = FPGrowth(itemsCol="items", minSupport=0.5, minConfidence=0.6)
model = fpGrowth.fit(df)

# Display frequent itemsets.
model.freqItemsets.show()

# Display generated association rules.
model.associationRules.show()

# transform examines the input items against all the association rules and summarize the
# consequents as prediction
model.transform(df).show()

标签:FP,model,项集,频繁,Growth,挖掘,Spark,spark
来源: https://www.cnblogs.com/helongBlog/p/13750802.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有