python中fp是什么意思_详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3)...
详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3)
上一节简单讲了下FP树的生成,在这一节我将描述FP树的挖掘过程.
首先我们回顾一下要挖掘的特征项及样本空间:
items=('chips','eggs','bread','milk','beer','popcorn','butter')
sample=[
['milk','eggs','bread','chips'],
['eggs','popcorn','chips','beer'],
['eggs','bread','chips'],
['milk','eggs','bread','popcorn','chips','beer'],
['milk','bread','beer'],
['eggs','bread','beer'],
['milk','bread','chips'],
['milk','eggs','bread','butter','chips'],
['milk','eggs','butter','chips']
]
由于要寻找的关联规则的最小支持度为3,所以butter和popcorn两个特征项就可以首先被忽略掉了,因为它们的支持度都只有2。
根据挖掘的规则,挖掘将从支持度最接近3的特征项开始,即本例中的beer,它的支持度为4.
从图中可以看到beer的节点数为4,于是它有4个条件模式基(CPB):
{eggs,bread,chips:1}
{eggs,bread:1}
{eggs,chips:1}
{bread,milk:1}
生成的FP子树如下图:
(注意:在源代码中,我为milk的FP子树单独生成了一个对象,其实在实际使用中FP树会占用很大的内从空间,所以FP子树一般会利用FP树而不是重新生成,一个可行的办法是将FP树的节点支持度数表示为一个字典,例如{root:7,milk:3}表示该节点在FP树中支持度为7,而在特征项milk的FP子树中支持度为3)
得到FP子树后要进行两步操作:
第一步:将该子树中所有支持度大于3的特征项与milk作并集,得到满足条件的二项集:
(eggs,milk )
(bread,milk )
它们的支持度都为3。
第二步:判断这颗子树是否有必要进一步挖掘,这是难点,也是优化算法的一个方向。
判断的结果有三种:
1. 该树没有任何一个特征项的支持度 >= 3,那么等同于空树,就没有必要挖掘了。
2. 该树是一棵单路径的树。
3. 该树是一棵多路径的树。
情况2和情况3是怎么回事,又该如何处理,请看下节
python中fp是什么意思_详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3)...相关推荐
- python中list[1啥意思_详解Python中list[::-1]的几种用法
本文主要介绍了Python中list[::-1]的几种用法,分享给大家,具体如下: s = "abcde" list的[]中有三个参数,用冒号分割 list[param1:para ...
- python中yaml模块的使用_详解Python yaml模块
一.yaml文件介绍 yaml是一个专门用来写配置文件的语言. 1. yaml文件规则 区分大小写: 使用缩进表示层级关系: 使用空格键缩进,而非Tab键缩进 缩进的空格数目不固定,只需要相同层级的元 ...
- python中filepath路径怎么写_详解Python中的路径问题
1. 绝对路径引入 Python 在搜索模块时,依次搜索sys.path里的位置,直到找到模块为止.下面命令可以查看当前的搜索路径: import sys print(sys.path) sys.pa ...
- python中什么是可变参数_详解Python的三种可变参数
详解Python的三种可变参数 可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中, ...
- python中的符号下划线_详解Python中下划线的使用方法
编程派微信号:codingpy 这篇文章讨论Python中下划线_的使用.跟Python中很多用法类似,下划线 _ 的不同用法绝大部分(不全是)都是一种惯例约定. 单个下划线(_) 主要有三种情况: ...
- python中换行的转义符_详解Python中的各种转义符\n\r\t
Python中的各种转义符\n\r\t 转义符 描述 \ 续行符(在行尾时) \\ 反斜杠符号 ' 单引号 " 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 ...
- python中怎么做分组问题_详解Python中的分组函数groupby和itertools)
具体代码如下所示: from operator import itemgetter #itemgetter用来去dict中的key,省去了使用lambda函数 from itertools impor ...
- python中完整类的定义_详解Python中类的定义与使用
类顾名思义,就是一类事物.或者叫做实例,它用来描述具有共同特征的一类事物.我们在python中声明类的关键词是class,类还有功能和属性,属性就是这类事物的特征,而功能就是它能做什么,也是就是方法或 ...
- python中for循环怎么打开_详解Python中for循环的使用
for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程" 一文讨论了 if 语句和 while 循环,讨论了复合语句以及适当缩进 Python 语句来 ...
最新文章
- 算法笔记之分支限界法
- 【构建之法教学项目】一个简单的基于C#的电子商务系统演练场景的代码示例...
- mysql学习笔记-insert扩展
- chrome里面的一些小技巧
- 对listView的理解
- GDAL C# “OSGeo.GDAL.GdalPINVOKE”的类型初始值设定项引发异常 解决方法
- Citrix XenDesktop 4.0 Setup Wizard crash
- [UVA 11374] Airport Express
- 运维日常操作--linux命令
- 操作系统原理-----进程同步与通信
- mybatis分页插件 pagehelper点击末页跳到第8页
- WPS OFFICE
- spacy词性标注解释【dep、pos、tag】
- 面经分享:网友问我,怎样才能在谷歌匹兹堡办公室里写代码?下篇
- android自定义拨号键盘,Android拨号键盘增加魔力爱心数字
- Laravel 5.5 Eloquent ORM - 快速入门
- 苦难是人生最大的财富
- 二代征信报告解读及信贷风控中的应用
- mysql创建表里主码和外码_SQL语言创建表时候怎么定义主码和外码
- 关于51单片机驱动DS18B20代码的感想