文档章节

spark mllib FP树 FP-growth 关联关系 挖掘算法

ericSM
 ericSM
发布于 2016/07/29 19:31
字数 486
阅读 748
收藏 0

运行代码如下

package spark.AssociationRules

import org.apache.spark.mllib.fpm.FPGrowth
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkContext, SparkConf}

/**
  * 关联规则:研究不同类型的物品相互之间的关联关系的规则.
  * 应用于"超市购物分析"( 啤酒与尿布), "网络入侵检测","医学病例共同特征挖掘"
  * 支持度:表示 X 和 Y 中的项在同一条件下出现的次数
  * 置信度:表示 X 和 Y 中的项在一定条件下出现的概率
  * Apriori算法:属于候选消除算法.是一个生成候选集,消除不满足条件的候选集,不断循环,知道不在产生候选集的过程.
  * FP-growth算法过程:
  * (1) 扫描样本数据库,将样本按照体递减规则排序,删除小于最小支持度的样本数
  * (2) 重新扫描样本数据库,并将样本按照上标的支持度数据排列
  * (3) 将重新生成的表按顺序插入 FP 树中,继续生成FP树,直到形成完整的FP树
  * (4) 建立频繁项集规则 
  * FP-Growth
  * Created by eric on 16-7-22.
  */
object FPGrowth {
  val conf = new SparkConf()                                     //创建环境变量
    .setMaster("local")                                             //设置本地化处理
    .setAppName("fp-growth")                              //设定名称
  val sc = new SparkContext(conf)

  def main(args: Array[String]) {
    val data = sc.textFile("./src/main/spark/AssociationRules/fp.txt")
    val transactions: RDD[Array[String]] = data.map(s => s.trim.split(' '))
    val fp = new FPGrowth()
      .setMinSupport(0.5)//设置最小支持度与整体的比值
      .setNumPartitions(10)//设置分区数

    val model = fp.run(transactions)

    model.freqItemsets.collect().foreach { itemset =>
      println(itemset.items.mkString("[", ",", "]") + ", " + itemset.freq)
    }

//      [z], 5
//      [x], 4
//      [x,z], 3
//      [y], 3
//      [y,x], 3
//      [y,x,z], 3
//      [y,z], 3
//      [r], 3
//      [s], 3
//      [s,x], 3
//      [t], 3
//      [t,y], 3
//      [t,y,x], 3
//      [t,y,x,z], 3
//      [t,y,z], 3
//      [t,x], 3
//      [t,x,z], 3
//      [t,z], 3


  }
}

fp.txt

r z h k p
z y x w v u t s
s x o n r
x z y m t s q e
z
x z y r q t p

结果如下

© 著作权归作者所有

ericSM
粉丝 18
博文 142
码字总数 154379
作品 0
南京
项目经理
私信 提问
加载中

评论(0)

Spark数据挖掘-FPGrowth算法

Spark数据挖掘-FPGrowth算法 主要内容 什么是关联规则挖掘? 关联规则有哪些术语? 什么是FP-Growth算法? 1.1 FPGrowth算法 1.1.1 基本概念 关联规则挖掘的一个典型例子是购物篮分析。关联规...

clebeg
2015/11/03
728
0
基于Spark的机器学习实践 (二) - 初识MLlib

1 MLlib概述 1.1 MLlib 介绍 ◆ 是基于Spark core的机器学习库,具有Spark的优点 ◆ 底层计算经过优化,比常规编码效率往往要高 ◆ 实现了多种机器学习算法,可以进行模型训练及预测 1.2 Spark ...

javaedge
2019/04/09
0
0
Spark2.1.0之模块设计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/beliefer/article/details/80386736 在阅读本文之前,读者最好已经阅读了《Spark2.1.0之初识Spark》和《Spark...

泰山不老生
2018/06/05
0
0
Spark 数据分析导论-笔记

Spark Core Spark Core 实现了Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。 Spark Core 中还包含了 对弹性分布式数据集(resilient distributed dataset,简...

Java搬砖工程师
2018/12/26
87
0
上海大数据实战开发转型—程序员未来的筹码

活动将长期(每周六)举行,报名后我们会第一时间与您联系 活动流程 13:30 签到 14:00 老师分享 16:00 互动交流 16:30 活动结束 (Hadoop) (含项目实战) NoSQL专题(含HBase) Hadoop企业项...

简直是天才
2018/05/15
26
0

没有更多内容

加载失败,请刷新页面

加载更多

天津哪里可以开发票

天津哪里可以开发票【電徴同步;132 * 29 30 * O5 68】李生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridg...

8398400
11分钟前
20
0
使用public.xml来自定义资源id,支持最新gradle 5.4.1

来源: https://blog.csdn.net/m0_37165550/article/details/102716420 总结: 了解 aapt 是Android Asset Packaging Tool的缩写,是编译和打包资源的工具。而aapt2是在aapt上做了优化 。 熟...

Gemini-Lin
14分钟前
25
0
21天完美搞定Vue框架技术(第3天)

前言: 上一节我们主要学的是【选项合并】,了解了初始化阶段各个选项的合并策略, 本节课我们来学一下【数据代理】这个知识点。 1、数据代理的定义 数据代理,也叫作数据劫持。有两个核心作...

有鱼是只猫
今天
39
0
OSChina 周二乱弹 —— 一山里不容二猫

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《数え歌》- 池田綾子 手机党少年们想听歌,请使劲儿戳(这里) @诺墨 :哈哈哈哈...

小小编辑
今天
49
2
敏捷开发验收评审会议

迭代验收评审是Scrum中的重要活动之一,迭代验收评审会议召开过程是否符合敏捷原则,实践是否贴近实际,参照以下:要点一:参加迭代验收评审会议的角色是否完整和投入 ●敏捷团队所有...

沐沐爸比
今天
43
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部