关联词语分类?

bdqnwqk2年前百科21

类关联规则实际上就是用关联规则做的分类器。

全名叫Class Based Association Rule,简称CBA,不要和中国男篮搞混了。

假设你的训练数据是一张表格,每行代表对一个物体的描述,每列代表物体某个属性的值,其中最后一列是物体的类别编号(其实就是分类问题的训练数据)

CBA的经典执行方法为:

1. 离散化该表格,针对每个连续属性,将其定义域分割成若干个区间,用数据所在的区间来代替原数据。

2. 对表格中出现过的每个属性的每个不同离散值赋予一个独一无二的整数编号。这样就成功把表格变成了挖掘经典关联规则所用的事务数据集。

3. 用关联规则挖掘算法从转换后的数据中挖掘关联规则。

4. 将那些后件中不包含类别信息的规则删除。

执行到这里,我们就获得了一些分类用的分类规则了,此时,若出现了一条不包含类别信息的新数据,就可以将该数据和规则库中的所有规则前件加以匹配,找出最符合的规则输出类别,就完成了分类。

前件匹配的优先级(仅仅是建议,具体还是要根据实践调整)

1. 前件与新数据的汉明距离,当然新数据也必须用同样的方法离散化。越小越好

2. 置信度越大越好

3. 支持度越大越好

4. 提升度,即前件出现的情况下,后件出现的概率与后件通常情况下出现概率的比值,越大越好

当然,经过许多年的学术研究,CBA的算法早已汗牛充栋,具体可在谷歌学术中搜索Class based association rule,国内的话可以用镜像“glgoo学术”。

CBA的优点是分类逻辑极其明确,不像许多其他分类器跟炼丹似的,完全不知道为什么work。而且,有研究显示,CBA的分类精度很高。缺点是太屌丝(因为挖规则,通过规则匹配来分类太容易懂,不怎么高大上),不容易忽悠个别好大喜功的老板。

总的来说,核心技术就是

数据转换+关联规则挖掘+规则匹配

我在我的github上分享了一些用c++写的Python2.7包,做关联规则用的。欢迎使用。

https://github.com/DMDarkness/Data-mining