1.6.4 基于规则的机器学习
任何识别、学习或演化“规则”,并对其进行存储、维护或应用的机器学习方法都是基于规则的机器学习(RBML)方法。它的特征是识别和利用一组关系规则,这些规则共同代表系统捕获的知识。基于规则的机器学习方法包括学习分类器系统、关联规则学习、人工免疫系统,以及任何其他依赖于一组规则的方法,每个规则都涵盖了上下文知识。
虽然从概念上讲,基于规则的机器学习是一种基于规则的系统,但它与传统的基于规则的系统(通常是手工制作的)以及其他基于规则的决策不同。这是因为基于规则的机器学习应用某种形式的学习算法来自动识别有用的规则,而不是人类需要应用先前的领域知识来手动构建规则和策划规则集。而基于规则的系统则使用一些逻辑学机制来模仿大脑神经网络的功能,即通过某个对象的模式、性质、相关反应与一些推断规则(逻辑规则等)来认识世界上的一些东西或者理解一些东西的行为。譬如看到一辆汽车就反应出它主要是由金属构成、需要用到油、会运动、能沿线行驶、能载客等;又譬如见到交通灯,就要注意亮红灯要停住、亮绿灯可通行。
规则通常采用{if:then}表达式的形式,例如{if 'condition' then 'result'}或{if 'red' and 'octagon' then 'stop-sign'}。单独的规则本身并不是一个模型,因为规则只有在其条件满足时才适用。因此,基于规则的机器学习方法通常由一组规则或知识库组成,它们共同构成了预测模型。
对于一组样本构成的样本集,任何一个样本都可以对应一个规则,只是这个规则适用的条件和范围有所不同,因此,对规则需要有一定的指标来定义其有用性和有效性。这里,我们可以借用数据挖掘里对“关联规则”的描述指标,最常用的是支持度、置信度和提升度。事实上,对于一个通用规则而言,规则的条件与规则的结果组合起来可以构成一个“关联规则”。
1.6.4.1 支持度
支持度(support)是指支持关联规则的实际样本数量,包括先行项集和后续项集。称为“支持”,是因为支持度用于计算样本数据支持该关联规则的有效性的程度。
给定一个关联规则:
ZY 也就是说 IF Z THEN Y
其中,先行项集是Z,后续项集是Y。项集Z的频率是f(Z),表示包含Z的实际样本的数目。支持计数是f(Z∪Y),表示同时包含Z和Y的实际样本的数目。我们将上述关联规则的支持度定义为
1.6.4.2 置信度
除了支持度外,还有另外一种方法来表达if-then规则的不确定性程度。这就是所谓的关联规则的置信度(confidence),它是一种度量方法,是包括所有先行项集和后续项集(支持计数)的实际样本数量与包括所有先行项集的实际样本数量之比,定义为
为了从不同的角度看待支持度和置信度之间的关系,我们用概率函数来表示这些方法。可以将支持度表示为从实际样本中随机选取的项包含前后项的概率,即可将f(Z∪Y)/N看作p(Z∪Y)的经验估计,因为该样本包括先行项集的所有项,也就是说,我们可以将
看作经验估计
注意,与简单的基于频率的估计不同,我们可以对小样本量的概率函数P(Z∪Y)和P(Y|Z)使用更稳健的估计。然而,由于关联规则通常用于具有非常大数据集的应用程序,在这种情况下,基于频率的简单估计就足够了。
还要注意,关联规则的推断并不一定意味着因果关系。因果关系需要关于数据中的因果属性的知识,而模型是从这些数据(如决策树)中派生出来的,用于预测给定输入的未知输出。关联规则不能唯一地预测给定先行项集的后续项是什么。对于给出不同结果值的先行项集,各种规则都有效(不是单一规则)。
因此,关联规则集提供的数据集基于的是并不一致的全局描述。然而,关联规则或频繁项集的集合可以被认为是原始数据集的替代表示,在简化形式中,此表示形式将是有用的。
1.6.4.3 提升度
提升度(lift)是另一种衡量关联规则能力的方法,它将关联规则的置信度与基准值进行比较,其中假定先行项集和后续项集是独立的。假设独立性成立时,支持度为P(Z∪Y)=P(Z)P(Y),基准置信度为P(Z)P(Y)。
提升度(也称为改进度)是关联规则的置信度与基准置信度的比值,定义为
如果Lift>1,则规则ZY是有效的强关联规则,表明该规则有一定的用处。提升越大,关联性也就越强。如果Lift≤1,则规则ZY是无效的强关联规则。特别地,如果Lift=1,则表示Z与Y相互独立。
1.6.4.4 规则度量值计算实例
我们根据表1.4所示的天气与是否打网球的部分数据,具体计算一些规则的度量值。
表1.4 是否打网球数据集
(续)
天气x1取值为(晴朗,阴天,下雨),温度x2取值为(热,温和,凉爽),湿度x3取值为(高,正常),风力x4取值为(弱,强),打网球y取值为(是,否)。实际样本数据集的总项数为14项。
从表1.4中,我们可以看到一条反映样本s(8)的规则:
Rule1: IF x1==晴朗 AND x2==温和 AND x3==高 AND x4==弱 THEN y=否
或者说:
晴朗AND温和AND高AND弱→否
下面,我们分别计算其支持度、置信度和提升度:
这说明该规则中,先行项集与后续项集的关联性很强。我们再来看另一个规则:
Rule2: IF x1==晴朗AND x2==温和THEN y=否
或者说:
晴朗AND温和→否
下面,我们分别计算其支持度、置信度和提升度:
这说明该规则中,先行项集与后续项集的关联性相对减弱。我们再来看一个规则:
Rule3: IF x3==高AND x4==弱THEN y=否
或者说:
高AND弱→否
这说明该规则中,先行项集与后续项集的关联性相对减弱。
这些指标对规则的定量描述也有一定作用。一般来说,只有支持度和置信度均比较高的规则才是有用的规则。
决策树算法虽然是一种经典的有监督机器学习方法,但决策树路径也可以显式生成一组规则,因此,从这个意义上讲,决策树算法也是一种基于规则的机器学习方法,上述的概念也适用于决策树算法。