关联规则的挖掘,是发现数据项集之间的关联关系或相关关系。最常用的算法是 Aprior 算法和 FP-Groth 算法。
《量化投资:数据挖掘技术与实践(MatLab版)》读书笔记目录
作为数据挖掘中最重要和研究最多的技术之一,关联规则挖掘在1993年由Agrawal首先提出(Agrawal,1993),
被用来识别数据库中项目之间的关系。
关联规则的目标是提取数据集项之间的相关关系、频率形式、关联或随机结构。
这些关系不是基于数据的自身属性(例如函数依赖),而是基于数据集项的同时发生。
关联相关的概念
项和项集
数据中不可分割的最小单位称为项目($i$),项目的集合称为项集$I$。
对于项集$I = { {i}{1}, {i}{2},…,{i}_{k} }$, 称 I 为 k-项集。
事务
设$I = { {i}{1}, {i}{2},…,{i}{k} }$是所有项目构成的项集,
则一次处理所含项目的集合$T = { {t}{1}, {t}{2},…,{t}{n} }$,
其中每一个$${t}_{i}$$包含的项集都是 I 的子集。项集的频度(支持度,Support)
包含某一个项集的事务的个数,称为该项集的频度。
关联规则
如果$X \Rightarrow Y$,其中 X、Y 分别是 I 的子集,并且$X \bigcap Y = \varphi$。
X 称为 规则的前提, Y 称为规则的结果。表示如果出现 X 中的项目,则 Y 中的项目也会出现。
关联规则的支持度(Support)
交易集合中,同时包含 X、Y 的交易数与所有交易数之比。即:
$Support\left(X\Rightarrow Y \right) = Support X \bigcap Y = P(XY)$
关联规则的置信度(Confidence/Strength)
交易集中,同时包含 X、Y 的交易数与包含 X 的交易数之比。即:
$Confidence(X\Rightarrow Y) = \frac{support(X\bigcup Y}{support(X)}=P(Y\mid X)$
最小支持度与最小置信度
为了达到一定的要求,需要指定规则必须满足的支持度和置信度阈值。分别称为最小支持度阈值(min_sup)和
最小置信度阈值(min_conf)。当支持度和置信度都超高阈值时,称为$X\Rightarrow Y$是有趣的。
关联规则的性质
根据支持度和置信度的阈值,可以对关联规则进行分类:
+$Support\left(U \right) \geq min_sup$: 频繁项集
- 同时满足$Support\left(U \right) \geq min_sup$: 强关联规则,有趣的
- 同时满足$Support\left(U \right) \leq min_sup$: 弱关联规则
+$Support\left(U \right) \leq min_sup$: 非频繁项集
关联规则的分类
按照不同情况,关联规则可以进行如下分类:
基于规则中处理的变量数值类型,可以分为布尔型和数值型
布尔型关联规则处理的变量都是离散型的、种类化的,它显示了这些变量之间的关系。
数值型关联规则可以和多维关联或多层关联规则结合起来,对数值型字段进行处理,将其进行动态分割,
或直接对原始的数据进行处理,当然数值型关联规则中也可以包含种类变量。例如:类别=“大蓝筹”涨幅=“弱于大势”,是布尔型关联规则。
类别=“大蓝筹”avg(阿尔法)=-10%,涉及的输入是数值型,是一个数值型关联规则。
基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则
在单层关联规则中,所有的变量都没有考虑到现实的数据是具有多个不同层次的。
而在多层的关联规则中,对数据的多层性已经进行了充分的考虑。
例如,台式机=> Sony打印机,是一个较高层次和细节层次之间的多层关联规则。基于规则中所涉及的数据的维数,可以分为单维的和多维的
在单维的关联规则中,我们只涉及数据的一个维,如投资者购买的股票。
而在多维的关联规则中,要处理的数据将会涉及到多个维度。换句话说,单位关联规则是处理单个属性中的一些关系;多维关联规则是处理各个属性之间的某些关系。
例如,大蓝筹涨=>小盘股跌,这条规则只涉及股票类型;类别=“大蓝筹”=>涨幅=“弱于大势”,
这条规则就涉及两个字段的信息,是两个维度上的一条关联规则。
关联规则常用算法
关联规则最常用的算法是Apriori算法和 FP-tree算法。
Apriori算法
- 算法的基本思想
- 算法的步骤
- 算法的实例
- 算法的程序实现
- 算法的优缺点
FP-Growth算法
- 算法步骤
- 算法实例
- 算法的优缺点
实例:行业关联选股法
思路
- 选个股难,选对行业相对容易
- 有些行业具有联动效应
- 找到具有联动关联的行业,当某个行业出现涨势、但其相关行业没有开始上涨时,在相关行业中选择典型股票买入
过程
- 定义10个交易日内,涨幅超过大盘涨幅5%的行业为出现涨势
- 对数据进行预处理,标记出行业关联事务数据
- 用关联规则算法挖掘,这里使用Apriori算法
- 筛选结果,这里要求最小支持度达到3
- 计算出现联动的概率,根据概率制定操作策略
策略
略。