zoukankan      html  css  js  c++  java
  • 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()
    
  • 相关阅读:
    原生js可爱糖果数字时间特效
    jQuery绑定事件的四种方式
    jQuery选择器总结
    正则表达式
    this对象
    网页瀑布流效果实现的几种方式
    关于DOM
    SparkSQL读写外部数据源--数据分区
    SparkSQL读写外部数据源-通过jdbc读写mysql数据库
    SparkSQL读写外部数据源-基本操作load和save
  • 原文地址:https://www.cnblogs.com/helongBlog/p/13750802.html
Copyright © 2011-2022 走看看