您确定要删除吗?

取消
首页 算法大全 应用模型 分析软件 算法学院数据中心 关于本站
在线咨询
400-820-6981
意见反馈
返回顶部

CBA

机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。主要研究计算机怎样模拟或实现人类的学习行为,以获取新的知识和技能,重新组织已有的知识结构,不断的改善自身的性能。

机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。这些算法是一类能从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。简而言之,机器学习主要以数据为基础,通过大数据本身,运用计算机自我学习来寻找数据本身的规律,而这是机器学习与统计分析的基本区别。

机器学习主要有三种方式:监督学习,无监督学习与半监督学习。

(1)监督学习:从给定的训练数据集中学习出一个函数,当新的数据输入时,可以根据函数预测相应的结果。监督学习的训练集要求是包括输入和输出,也就是特征和目标。训练集中的目标是有标注的。如今机器学习已固有的监督学习算法有可以进行分类的,例如贝叶斯分类,SVM,ID3,C4.5以及分类决策树,以及现在最火热的人工神经网络,例如BP神经网络,RBF神经网络,Hopfield神经网络、深度信念网络和卷积神经网络等。人工神经网络是模拟人大脑的思考方式来进行分析,在人工神经网络中有显层,隐层以及输出层,而每一层都会有神经元,神经元的状态或开启或关闭,这取决于大数据。同样监督机器学习算法也可以作回归,最常用便是逻辑回归。

(2)无监督学习:与有监督学习相比,无监督学习的训练集的类标号是未知的,并且要学习的类的个数或集合可能事先不知道。常见的无监督学习算法包括聚类和关联,例如K均值法、Apriori算法。

(3)半监督学习:介于监督学习和无监督学习之间,例如EM算法。

如今的机器学习领域主要的研究工作在三个方面进行:1)面向任务的研究,研究和分析改进一组预定任务的执行性能的学习系统;2)认知模型,研究人类学习过程并进行计算模拟;3)理论的分析,从理论的层面探索可能的算法和独立的应用领域算法。

算法描述

CBA(Classification base of Association)算法是一个基于关联规则进行分类的算法,该算法首先利用Apriori算法挖掘出的关联规则,然后进行分类判断。

CBA算法作为分类算法,它的判断依据是Apriori算法挖掘出的频繁项。如果一个项集中包含预先知道的属性,同时也包含分类属性值,然后计算该频繁项,能否计算出由已知属性推出决策属性的关联规则,如果满足规则的最小置信度的要求,那么可以把频繁项集中的决策属性值作为最后的分类结果。具体的算法细节如下:

1)输入数据记录;

2)对属性值作数字替换,形成类似关联规则算法的事务记录;

3)根据转化的事务记录,进行Apriori算法计算,挖掘频繁项集;

4)输入查询的属性值,找出符合条件的频繁项集(包含查询属性和分类决策属性);如果找到这样的规则,则算分类成功,输出结果。

Apriori使用逐层搜索的迭代方法。首先,通过扫描事务集,累计每个项的计数,并收集满足最小支持度的项,找出频繁1项集的集合,记为L1。然后用L1寻找频繁2项集的集合L2,依次类推,直到不能再找到频繁k项集。

算法背景

CBA算法是基于Apriori算法基础上,由Liu,Hsu和MA提出来的。主要是对已经挖掘出的关联规则,做分类判断,所以在某种程度上说CBA算法也是一种集成的挖掘算法。

相关应用

CBA算法应用广泛,如可用在保险领域、生物学领域、地震研究等领域中。

如可用于消费市场价格分析,猜测顾客的消费习惯;网络安全领域中的入侵检测技术;可用在用于高校管理中,根据挖掘规则可以有效地辅助学校管理部门有针对性的开展贫困助学工作;也可用在移动通信领域中,指导运营商的业务运营和辅助业务提供商的决策制定等。

参考资料

1范明,孟小峰译.数据挖掘:概念与技术.北京:机械工业出版社.2007

2 马克威分析系统使用教程,http://www.tenly.com

实例

假设下表为某商店的事务数据库D,数据库有9个事务,即 D =9,使用CBA算法寻找D中的频繁项集。

TID 商品ID的列表
T100 I1,I2,I5
T200 I2,I4
T300 I2,I3
T400 I1,I2,I4
T500 I1,I3
T600 I2,I3
T700 I1,I3
T800 I1,I2,I3,I5
T900 I1,I2,I3

CBA算法主要的计算过程与Apriori算法类似,主要的步骤包含如下:

1)第一次迭代过程,扫描所有的事务,对每项出现的次数计数;

2)假定要求的最小支持度计数为2。可以确定频繁一项集L1,它由满足最小支持度的候选1项集组成;

3)挖掘频繁2项集,其候选2项集C2主要是由频繁1项集组合而成;

4)扫描D中的事务集,计算C2中每个候选2项集的支持度计数;

5)确定频繁2项集的集合L2,它是由满足最小支持度的C2中的候选2项集组成;

6)候选3项集是由频繁2项集组合而成,记为C3;在该例中,候选3项集C3={{I1,I2,I3},{I1,I2,I5},{I1,I3,I5},{I2,I3,I4},{I2,I3,I5},{I2,I4,I5}};由Apriori性质知,频繁项集的所有子集也必须是频繁的。所以具体讨论下频繁3项集的产生过程。

根据Apriori性质进行剪枝,候选3项集的任意子集是否是频繁的呢?

{I1,I2,I3}的2项子集是{I1,I2},{I1,I3}和{I2,I3}。{I1,I2,I3}的所有2项子集都是L2的元素,因此{I1,I2,I3}是一个频繁3项集;

{I1,I2,I5}的2项子集是{I1,I2},{I1,I5}和{I2,I5}。{I1,I2,I5}的所有2项子集都是L2的元素,因此{I1,I2,I5}是一个频繁3项集;

{I1,I3,I5}的2项子集是{I1,I3},{I1,I5}和{I3,I5}。而{ I3,I5}的不是L2的元素,因此{I1,I3,I5}不是频繁3项集,从候选集C3中删除;

{I2,I3,I4}的2项子集是{I2,I3},{I2,I4}和{I3,I4}。而{ I3,I4}的不是L2的元素,因此{I2,I3,I4}不是频繁3项集,从候选集C3中删除;

{I2,I3,I5}的2项子集是{I2,I3},{I2,I5}和{I3,I5}。而{ I3,I5}的不是L2的元素,因此{I2,I3,I5}不是频繁3项集,从候选集C3中删除;

{I2,I4,I5}的2项子集是{I2,I4},{I2,I5}和{I4,I5}。而{ I4,I5}的不是L2的元素,因此{I2,I4,I5}不是频繁3项集,从候选集C3中删除;

7)扫描D中的事务集,确定频繁3项集L3,它是由满足最小支持度的C3中的候选3项集组成;

8)候选4项集是由频繁3项集组合而成,通过判断候选4项集是否满足最小支持度,以便确定最终的频繁4项集。

输入输出

输入要求:数值型数据

输出结果:找出所有的频繁项集,并根据挖掘频繁项集推到出分类规则

相关条目

Apriori、关联规则、频繁项集

优缺点

优点:分类的准确度较高,在大量数据集上比C4.5更精确。

确定