挖掘模式
特征化与区分
- 用汇总的、简洁的,精确的表达方式描述某个类
- 数据特征化:是模板数据的一般特征或特征的汇总
- 数据区分:是将目录数据对象的一般特性与一个或多个对比类对象的一般特征进行比较
频繁模式、关联和相关性
- 频繁模式:在数据中频繁出现的模式
- 频繁项集:在事务数据中一起出现的商品集合
- 挖掘模式中的关联和相关性
用于预测分析的分类和回归
- 基于训练实例构造模型
- 描述和区分未来预测的类和概念
- 预测未知类标签
- 典型的方法:决策树、贝叶斯分类、支持向量机、神经网络、logistic回归、基于规则的分类、基于模式的分类
数值类型,进行回归?
聚类分析
- 无监督学习(即类标签未知)、无指导学习
- 组数据以形成新的类别(即集群),例如集群类以找到分发模式
- 原则:最大化类内相似性和最小化类间相似性
进行群的划分。找到相似性
离群点分析
- 离群值:不符合数据一般行为的数据对象
- 噪音或异常?一个人的垃圾可能是另一个人的财富
- 方法:采用聚类分析或回归分析的方法
- 有用的欺诈检查,稀有事件分析
决策树
决策树是一种有指导学习的常用结构。大量的论文都写到决策树的解决现实世界问题的成功应用。
C4.5
4.5中用于创建决策树的算法思想
1、建立决策树的算法
- 决策树的创建仅仅使用最能区分所学概念的那些属性
- 首先,通过从训练集中选择实例的一个子集用来创建决策树
- 然后,算法使用这些子集构建一个决策树
- 剩下的训练集实例用于检测所建决策树的准确度
- 如果决策树能正确地对实例进行分类,该过程结束。
- 如果某实例的分类有误,那么该实例就被添加到所选训练实例子集中,并构建一棵新树。
- 该过程继续执行,直到创建了一个能正确分类所有未选实例的树,或者由整个训练集建立了这个决策树。
- 这里给出了该算法的简化版本,它使用整个训练实例集来创建决策树。算法步骤如下
2、步骤
- 假设T为训练实例集。
- 选择一个最能区别T中实例的属性。
- 创建一个树结点,它的值为所选择的属性1. 创建该结点的子链,每个子链代表所选属性的一个惟一值。使用子链的值,进一步将实例细分为子类。
- 对于步骤3所创建的每个子类:
- 如果子类中的实例满足预定义的标准,或者,如果树的这条路径的剩余可选属性集为空,为沿此决策路径的新实例指定类别。
- 如果子类不满足预定义的标准并且至少一个属性能进一步细分树的路径,设T为当前子类实例集合,返回步骤2。
在将算法应用到一组数据之前,应该先进行属性选取(算法步骤2)。属性选择对建立决策树的大小很重要。其中一个主要目标是使得树的层次和结点数最小,从而使数据概化最大化。
3、示例
将寿险促销设为输出属性,开发一个预测模型。因此,输入属性限制为收入范围、信用卡保险、性别和年龄。下表给出了训练数据。
首先选第一个输入属性以最好地划分训练数据实例。逐个考虑各种可能性。
Income Range 1 | Life Ins Promotion | Credit Card Insurance | Sex | Age |
40-50,000 | No | No | Male | 45 |
30-40,000 | Yes | No | Female | 40 |
40-50,000 | No | No | Male | 42 |
30-40,000 | Yes | Yes | Male | 43 |
50-60,000 | Yes | No | Female | 38 |
20-30,000 | No | No | Female | 55 |
30-40,000 | Yes | Yes | Male | 35 |
20-30,000 | No | No | Male | 27 |
30-40,000 | No | No | Male | 43 |
30-40,000 | Yes | No | Female | 41 |
40-50,000 | Yes | No | Female | 43 |
20-30,000 | Yes | No | Male | 29 |
50-60,000 | Yes | No | Female | 39 |
40-50,000 | No | No | Male | 55 |
20-30,000 | Yes | Yes | Female | 19 |
【收入范围】 作为顶点的决策树
将概化因子添加到准确度度量指标中的简单方法是,用训练集准确度除以添加到树中作为属性选择结果的分支总数,由此属性的选取能获得期望的更少的附加分支。将该方法应用到收入范围属性,我们用准确度值11/15除以4,得到属性收入范围的优度值约为0.183。####【信用卡保险】 作为顶点的决策树
现在考虑将 credit card insurance作为决策树顶层结点的候选项。
上图显示了算法步骤3所创建的部分树。使用刚才讨论过的同样的推理,终止这棵树的创建过程并计算部分树训练集的分类正确性。结果
训练集准确度为60%(15个中有9个正确)。用0.6除以添加到树中作为属性选择结果的分支数,得到优度值为0.30
数值类型顶点的处理方法
处理数值型数据的常用方式是对值进行排序并考虑每对值之间的二元分裂。对于我们的例子,用Y表示是,用N表示否,年龄首先排序为:
19 | 27 | 29 | 35 | 38 | 39 | 40 | 41 | 42 | 43 | 43 | 43 | 45 | 55 | 55 |
Y | Y | N | Y | Y | Y | Y | Y | N | Y | Y | N | N | N | N |
然后,为每个可能的分裂点计算优度值。这样,每个分裂点看成是有两个值的分裂属性。对每个选择点进行此计算,简单直观的推断告诉我们,43是最好的数据分裂点之一。将life insurance promotiom=yes与age<=43 结合以及将life insurance promotiom=no与age>43结合,训练集准确度
为80%(15中有12个正确),该属性的优度值为0.40。
####【年龄】 作为顶点的决策树
属性的优度值为0.40
计算一下sex作为顶层结点的候选项。选择sex的结果是优
度值是多少?
比较这4个结果,我们发现属性age给出了属性选择中的最佳值。因此,选择属性age并执行决策树算法的步骤3。
算法的步骤4a要求我们检查部分树的所有分支,以确定是否需要进一步执行树的创建过程。该算法说明了终止树的一条路径的两种可能性。首先,如果沿着一个给定分支的实例满足一个预定义的标准,该分支就成为一条终止路径。然后,为该路径赋予最频繁出现类的值。
一个明显的终止标准是沿着一条特定路径的所有实例都必须来自相同的类。终止树的一条路径的第二种可能是,没有一个属性能继续树的分裂过
程。
一棵决策树
图中的树是由C4.5的思想创建,它包含3个结点。值得注意的是,增益率的计算选择了age属性作为顶层结点,且在大于43处具有一个分裂。这棵树能准确分类15个实例中的14个。
沿图中 Credit Card Insurance = No 的路径的训练数据实例
Income Range | Life Insurance Promotion | Credit Card Insurance | Sex | Age |
40–50K | No | No | Male | 42 |
20–30K | No | No | Male | 27 |
30–40K | No | No | Male | 43 |
20–30K | Yes | No | Male | 29 |
前面给出的决策树,有一个错误的分类。
如果想成功分类所有训练实例,最终结果是一棵有5个结点的决策树。
另一棵决策树
决策树规则
考虑图中的决策树,沿着树的一条路径创建的一条规则:
IF age<=43&sex=male&Credit Card insurance=No
THEN Life insurance Promotion=No
该规则的前提条件覆盖了15个训练集实例中4个,其准确度为75%
决策树具有的优点
- 决策树容易理解,并且可以很好地映射到一组产生式规
则。 - 决策树已经成功地应用于现实问题。
- 决策树不需要对数据的性质做预先的假设。
- 决策树能够使用包含数值型和分类型数据的数据集建立模型。
决策树的问题
- 输出属性必须是分类型,不允许多个输出属性。
- 决策树算法不稳定。因为训练数据的微小变化将导致树中每个选择点处不同的属性选择。这种变化造成的影响很大,因为属性的选择影响着所有后续子树。
- 用数值型数据集创建的树是相当复杂的,因为数值型数据的属性分裂通常是二元分裂。