之前我们提到的分类问题主要是单标签分类问题,即每个实例只属于一个类别,又叫二分类问题(即使是多标签分类也是采用了二分类方法);多标签就是每个实例,可能同时属于多个类别,较复杂些。
之前我们提到的分类问题主要是单标签分类问题,即每个实例只属于一个类别,又叫二分类问题(即使是多标签分类也是采用了二分类方法);多标签就是每个实例,可能同时属于多个类别,较复杂些。
支持度:事务D中同时包含X和Y的百分比,概率。
置信度:D中事务已经包含X的情况下,包含Y的百分比,条件概率。
满足最小支持度阈值和最小置信度阈值,则认为这个关联规则是有趣的。
例子,表1是顾客购买记录的数据库D,包含6个事务。项集I={网球拍,网球,运动鞋,羽毛球}。
TID |
网球拍 |
网 球 |
运动鞋 |
羽毛球 |
1 |
1 |
1 |
1 |
0 |
2 |
1 |
1 |
0 |
0 |
3 |
1 |
0 |
0 |
0 |
4 |
1 |
0 |
1 |
0 |
5 |
0 |
1 |
1 |
1 |
6 |
1 |
1 |
0 |
0 |
考虑关联规则(频繁二项集):网球拍与网球,事务1,2,3,4,6包含网球拍,事务1,2,6同时包含网球拍和网球,X^Y=3, D=6,支持度(X^Y)/D=0.5;X=5, 置信度(X^Y)/X=0.6。若给定最小支持度α = 0.5,最小置信度β = 0.6,认为购买网球拍和购买网球之间存在关联。
主要利用了向下封闭属性:如果一个项集是频繁项目集,那么它的非空子集必定是频繁项目集。
算法:
(1)先生成1-频繁项目集,再利用1-频繁项目集生成2-频繁项目集。
(2)然后根据2-频繁项目集生成3-频繁项目集。
(3)依次类推,直至生成所有的频繁项目集
(1)先生成所有的1-后件(后件只有一项)强关联规则;
(2)然后再生成2-后件强关联规则;
(3)依次类推,直至生成所有的强关联规则。
1对生成的关联规则集合进行排序,按照置信度,支持度,集合基数,标签频度依次排序。
2排序后的第一条关联规则开始,若这条规则至少覆盖一个训练实例,将这条规则加入分类器,并且同时删除所有属性属于规则体的实例。
3迭代步骤2,直到所有的实例被删除或说的规则都被测试过停止。
(步骤2,3中,约简了大部分规则集)
4若最后,存在没有类别的训练实例,使用默认规则:将类别出现频度最大的标签给这个实例。
1有序规则集中第一条规则开始,若规则体完全包含于测试实例的属性集,则该实例具有这条规则的标签;
2循环步骤1,直到没有完全包含测试实例属性集的规则,停止。
3若没有规则集的规则体完全包含于测试实例的属性集,我们取第一条有交集的规则,将其标签赋给测试实例。
4若不存在与测试实例属性集有交集的规则体,则使用默认规则:将最大频度的标签赋给测试实例。