Frequent Pattern

本文介绍了数据挖掘中的频繁模式,它是推荐算法的基础。主要内容包括:Item Sets(Apriori 和 FP-tree)、Sequences(GSP 和 PrefixSpan)、Tree Patterns(范围编码、树结构表示及算法)以及Graph Pattern(AGM、FSG和gSpan)。文章通过实例解释了各种算法的工作原理和应用场景。
摘要由CSDN通过智能技术生成

博客引流

作为Data mining 的第一篇 先来讲讲频繁模式

频繁模式是推荐算法的基础

主要解决的是从一堆数据中挖掘出频繁的组合模式

举个简单的例子

可能买了Mac的人,过几天会去买贴膜
可能买考研英语书的人,过几天会去买考研数学书

如何在大量数据中找到可能相关的几个问题,称之为Frequent Pattern

频繁程度通过支持度、置信度两个参数来衡量

A->B support: 即模式A, B出现频率
A->B configure: 即模式A发生情况下B发生的概率

Item Sets

Item Sets指的是假设不考虑数据之间的顺序

Apriori

我们可以得出

  • 如果一个集合是频繁集,那么它的所有子集都是频繁集
  • 如果一个集合不是频繁集,那么它的所有超集都不会是频繁集

根据这一点,Agrawal & Srikant 在94年提出了著名的Apriori算法

主要思想就是从大小1开始遍历可能频繁集k
当满足V所有集合子集都在之前计算过的频繁集k中,且出现次数满足频繁要求
则V为k+1频繁集

伪代码:

Ck: Candidate itemset of size k
Lk : Frequent itemset of size k

L1 = {frequent items};
for (k = 1; Lk !=; k++) do begin
     Ck+1 = candidates generated from Lk;
    for each transaction t in database do
       increment the count of all candidates in Ck+1
    that are contained in t
    Lk+1  = candidates in Ck+1 with min_support
    end
return k Lk;

举个简单的例子
图片.png | center | 556x200

但Apriori也有一些缺点

  1. 多次读取数据,复杂度高
  2. n较大,可能的取值较多

Apriori也有一系列改进算法,比如说用hash存储可能的取值,做剪枝等等

FP-tree

仔细想一下上述算法的实现过程

一层层扩展,从大小为1开始,到2,再到k,到k+1

是不是很像BFS

那么我们不免想是不是会有类似DFS的算法

Jiawei Han, Jian Pei 在2000年提出FP-tree算法

通过构造前缀树来实现类似深度搜索的算法

先把所有集合按字母出现频次逆序排列&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值