数据挖掘--频繁模式、关联性和相关性

一.基本概念 basic concepts

Frequent pattern: a pattern (a set of items, subsequences,substructures, etc.) that occurs frequently in a data set

频繁模式:频繁地出现在数据集中的模式

 

Motivation: Finding inherent regularities in data

目的:挖掘数据中的潜在规律

 

Freq. pattern: An intrinsic and important property of datasets

 

itemset: A set of one or more items  包含多个项的集合

k-itemset X = {x1, …, xk}

 

(absolute) support, or, support count ofX: Frequency or occurrenceof an itemset X

(relative) support, s, is the fraction of transactions thatcontains X (i.e., the probability that a transaction contains X)

 

An itemset X is frequent if X’s support is noless than aminsup threshold

 

Association Rules(关联规则)

support(支持度):probability thata transaction contains X È Y

 

confidence(置信度):conditional probability that a transaction having Xalso contains Y

 

一般而言,关联规则的挖掘是一个两步的过程:

1. 找出所有的频繁项集

2. 有频繁项集产生强关联规则

 

两个概念,项集是否是闭(closed)或者极大频繁项集(maximal frequent itemset),或者极大项集。

closed frequenct itemset 闭频繁项集

maximal frequent itemset 极大频繁项集

 

 

 

二.挖掘方法

The downward closure property of frequentpatterns 频繁项集的向下闭包性质

Any subset of afrequent itemset must be frequent

任何频繁项集的子集必定是频繁地

 

Scalable miningmethods: Three major approaches

Apriori

Freqence patterngrowth tree

Vertical dataformat approach 垂直数据格式方法

2.1  Apriori算法

Apriori pruningprinciple(Apriori 剪枝规则):如果任何一个由父集产生的子集不是频繁地,那么它也不是频繁地。

方法:

1. 扫描一遍数据库DB获得频繁一项集

2. 从频繁k项集产生频繁k+1项集

3. 测试候选集通过数据库

4. 在不存在频繁集或者候选集的时候终止

Ck: Candidate itemset of size k

Lk : frequent itemset of size k

伪代码

L1 = {frequent items};

for (k = 1; Lk!=Æ; k++) do begin

    Ck+1 = candidatesgenerated from Lk;

    foreach transaction t in database do

  increment the count of all candidates in Ck+1that are contained int

    Lk+1  = candidates in Ck+1 withmin_support

    end

return Èk Lk;

 

产生候选集的两个步骤

1. self-joining 自我连接,自我交集 Lk

2. pruning 剪枝

 

改进Apriori算法

三大计算问题

1. Multiple scans of transactiondatabase 多次扫描数据库

2. Huge number of candidates 大量的候选集

3. Tedious workload of supportcounting for candidates 冗余的对候选集支持度的计算

改进的方法也是从这3个方面入手:

1. 减少数据库扫描的次数

2. 缩减候选集的数量

3. 快速地计算候选集的支持度

 

Partition: Scan Database Only Twice 扫描数据库仅两次

Any itemset thatis potentially frequent in DB must be frequent in at least one of thepartitions of DB

如果一个项集可能是频繁的,那么在数据库划分成部分中至少一个是频繁的

第一次扫描:划分数据库和找出本地频繁模式

第二次扫描:合并成全局频繁模式

 

基于散列的技术:Reduce the Number of Candidates,减少候选集数量

 

 

事务压缩(压缩进一步迭代扫描的事务数):

不包含任何频繁k项集的事务不可能产生任何频繁(k+1)项集,加标记或删除。

 

2.2  频繁模式增长(Frequent-Pattern Growth,FP-growth)

采用分治策略:

第一步:将代表频繁项集的数据库压缩成一棵频繁模式树

第二步:将压缩后的数据库划分成一组条件数据库(一种特殊类型的投影数据库),每个数据库关联一个频繁项或模式段,并分别挖掘每个条件数据库

 

1.  扫描数据库一次,发现频繁1项集

2. 对频繁项集进行排序

3. 在此扫描数据库,构造FP-tree

 

列出频繁项集,并进行排序:

<(f:4), (c:4),(a:3),(b:3),(m:3),(p:3)>

 

 

TID

Items bought

(ordered) freq items

100

f, a, c, d, g, I, m, p

f, c, a, m, p

200

a, b, c, f, l,m, o

f, c, a, b, m

300

b, f, h, j, o

f, b

400

b, c, k, s, p

c, b, p

500

a, f, c, e, l, p, m, n

f, c, a, m, p

 

 

 

 

 

 

 

 

 

 

 

 


FP-Tree 构造

扫描数据库仅2次

子序列挖掘:基于FP-tree

第一步:形成条件模式基

第二步:构建条件FP-tree

第三步:迭代挖掘条件FP-tree

 

基本思想 (分而治之),分而治之的思想体现在哪里

用FP-tree递归增长频繁集

方法

对每个项,生成它的 条件模式库, 然后是它的 条件 FP-tree

对每个新生成的条件FP-tree,重复这个步骤

直到结果FP-tree为空, 或只含唯一的一个路径 (此路径的每个子路径对应的项集都是频繁集)

 

FPtree的优势:

完备性:

1. 不会打破交易中的任何模式

2. 包含了频繁模式挖掘所需的全部信息

紧密性:

1. 取出不相关信息—不包含非频繁集

2. 支持度降序排列:支持度高的项在FP-tree中共享机机会也高

3. 绝不会比元数据库大

 

 

 

 

2.3  闭模式和极大模式

Since BCDE is amax-pattern, no need to check BCD, BDE, CDE in later scan。

每次尽量挖掘极大频繁模式,建设扫描次数

Efficiently mininglong patterns from databases. SIGMOD’98

2.4  CHARM

1. Itemset-Tidset pair 项集-项id集对

2. Itemset-Tidset Search Tree 项集-项id集搜索树

3. Diffset 差集

 

 

 

 

 

 

 

 

 

 


Page 61不懂

 

三.有趣性评估:关联性 Correlations(Lift)

 

 

 

提升lift:相关性的测量

 

小于1,代表负相关,意味着一个出现另一个不出现

等于1,代表A与B之间独立,两者没有相关性

大于1,代表正相关,一个出现蕴含着另一个的出现

 

卡方分布

 

模式评估总共有6种方式:

1. 提升度(lift)

2. 使用卡方进行相关分析

3. 全置信度

4. 最大置信度

5. Kulczynski

6. 余弦

零不变形

不平衡比IR(Imblance Ratio):测量两个项集A与B的不平衡比

你可能感兴趣的:(数据挖掘)