数据集:属性之间有依赖性的数据集
方法:针对每个可能出现在规则右边的表达式执行一个分治的规则归纳过程。
特点:能够预测任何属性而不仅仅是类,同时也能预测属性的组合。
想法:根据原始数据产生达到指定最小覆盖量(或者支持度)的项集,然后从每一个项集中找出能够达到最小准确率(或者置信度)的规则。
样本数据:
以天气数据为例,如下:
outlook
(Attribute)
|
temperature
(Attribute)
|
humidity
(Attribute)
|
windy
(Attribute)
|
play
(Category)
|
sunny
|
hot
|
high
|
false
|
no
|
sunny
|
hot
|
high
|
true
|
no
|
overcast
|
hot
|
high
|
false
|
yes
|
rainy
|
mild
|
high
|
false
|
yes
|
rainy
|
cool
|
normal
|
false
|
yes
|
rainy
|
cool
|
normal
|
true
|
no
|
overcast
|
cool
|
normal
|
true
|
yes
|
sunny
|
mild
|
high
|
false
|
no
|
sunny
|
cool
|
normal
|
false
|
yes
|
rainy
|
mild
|
normal
|
false
|
yes
|
sunny
|
mild
|
normal
|
true
|
yes
|
overcast
|
mild
|
high
|
true
|
yes
|
overcast
|
hot
|
normal
|
false
|
yes
|
rainy
|
mild
|
high
|
true
|
no
|
算法实现:
下面介绍一个实现的算法,如下:
(1) 建立项集。
a.建立1项集。统计每个属性值在数据集上出现的次数,将合格(大于最小覆盖量)的1项集保存在哈希表中。
b.建立2项集。将1项集中的单个项进行配对,然后在遍历一次数据集,统计每个2项集的覆盖量,最终将合格
(大于最小覆盖量)的2项集保存在哈希表中。在进行单个项的配对时,没有必要建立一个包含两个相同属性的2项集。
c.依次建立后续的n项集。
产生的数据如下:
编号 | 1项集 | 数量 | 2项集 | 数量 | 3项集 | 数量 | 4项集 | 数量 |
1 | outlook=sunny | 5 | outlook=sunny temperature=mild | 2 | outlook=sunny temperature=mild humidity=high | 2 | outlook=sunny temperature=mild humidity=high play=no | 2 |
… | … | … | … | … | … | … | … | … |
38 |
|
| humidity=normal windy=false | 4 | humidity=normal windy=false play=yes | 4 |
|
|
… | … | … | … | … | … | … | … | … |
47 |
|
| windy=false play=no | 2 |
|
|
|
|
(2) 项集转化成规则。有些项集产生多个规则,而另一些项集根本不产生任何规则。
例如,我们以编号38的3项集为例子
,
humidity=normal,windy=false,
play=yes,这个3项集将产生7个潜在的规则,如下:
潜在规则 |
准确率
|
if humidity=normal then windy=false and play=yes
|
4/7
|
if windy=false then humidity=normal and play=yes
|
4/8
|
if play=yes then humidity=normal and windy=false
|
4/9
|
if humidity=normal and windy=false then play=yes
|
4/4
|
if humidity=normal and play=yes then windy=false
|
4/6
|
if windy=false and play=yes then humidity=normal
|
4/7
|
if - then humidity=normal and windy=false and play=yes
|
4/14
|
其中,准确率=三个条件都满足时的实例数目(即覆盖量)/条件满足时的实例数量*100%。最后一个规则不存在条件,它的分母是数据集中实例的总数。
(3) 生成最终规则集。
根据每一个项集生成的潜在规则,选择能够达到最小准确率的规则,形成最终的规则集。
总结:建立关联规则所需要的计算量取决于指定的最小覆盖量,准确率的影响比较小。很多情况下,我们需要在满足指定的最小准确率下,获得一定数量的覆盖量最大的规则。处理方法是指定一个较高的覆盖量,然后逐渐降低,对于每一个覆盖量,重复执行整个寻找规则的算法,直到达到所要求的规则数量为止。