监督模式挖掘及其在分类中的应用
1 引言
早期的频繁项集挖掘(FIM)形式的受限模式挖掘主要集中在无监督环境中,而将这些技术应用于有监督环境是一种自然的扩展。在有监督环境中,一个属性(有时是一小部分属性)被视为特殊属性,我们只关注该属性与其他属性之间的关系。这种有针对性的分析虽然会限制发现的模式数量,但能使分析更具目标性,在很多情况下更有用。
有监督模式挖掘技术找到的模式通常可以解释为规则,这些技术与机器学习相关,因为许多传统机器学习算法也是基于规则的。传统机器学习技术通过启发式方法处理潜在规则的大搜索空间,而模式挖掘方法则提供了更有效的方法来彻底遍历搜索空间,有望找到比传统规则学习器更好的规则。
最早整合这两个领域的技术与FIM技术非常相似,使用支持度和置信度来约束项集和规则,并利用支持度的反单调性来修剪搜索空间。有监督模式挖掘不仅带来了新挑战,也带来了新机遇,因为监督允许使用额外的质量度量,并根据这些度量的约束属性进行修剪。如今,该领域已经有了很大发展,涵盖了其他表示形式,融入了机器学习领域开发的方法和质量度量,并非常关注模式集挖掘。
模式集挖掘在构建分类器、规则列表或集合、决策树或非符号分类器时尤为重要,因为模式之间的冗余或无关性通常会损害分类器的性能。
2 监督模式挖掘
2.1 相关定义
- 事务数据集 :给定描述数据中潜在事务语法的数据语言 $L_D$,事务数据集 $D \subseteq L_D$ 的形式为 $D = {d_1, \ldots, d_n}$,其中 $d_i \in L_D$。
- 模式匹配 :给定模式语言 $L_{\pi}$,定义函数 $match : L_{\pi} \times L_D \rightarrow {0, 1}$,用于判断模式是否出现在事务中。
- 模式覆盖 :模式 $\pi$ 在数据集 $D$ 中匹配的事务集合称为其覆盖,记为 $cov_D(\pi) = {d \in D | match(\pi, d) = 1}$,覆盖的大小称为 $\pi$ 的(绝对)支持度,记为 $supp_D(\pi) = |cov_D(\pi)|$。
在项集数据库的情况下,$L_{\pi} = L_D = 2^I$,且 $match(\pi, d) = 1 \Leftrightarrow \pi \subseteq d$。对于其他类型的数据,如序列、树或图结构数据,可使用不同的 $L_D$、$L_{\pi}$ 和 $match$ 定义。
有监督模式挖掘与无监督模式挖掘的最大区别在于存在一个感兴趣的变量,通常是可以取几个标称类标签之一的类变量。
2.2 显式类标签
一种直接的解释是将类标签视为事务数据中的额外项,即 $I’ = I \cup C$,并对从中挖掘的项集施加语法约束:每个项集必须恰好包含一个类标签项。这样可以直接使用现有的FIM技术,如Apriori、Eclat或FPGrowh。
典型的FIM挖掘方法通过使用最小支持度阈值来识别有趣的项集,使用最小置信度阈值来选择相关规则。由于模式的特化(如项集的扩展)的支持度小于或等于原模式,因此可以修剪搜索空间,实现穷举枚举。
具体步骤如下:
1. 对于所有类标签 $C$:
- 挖掘所有包含 $C$ 且超过最小支持度阈值的项集。
- 保留所有超过最小置信度阈值的关联规则 $r \rightarrow C$。
得到的关联规则称为类关联规则(CARS),其右侧只能是类项。其质量通常使用置信度评估,定义为 $conf(r \rightarrow c) = \frac{supp_D(r \cup c)}{supp_D(r)}$。
一些基于类关联规则的分类学习器,如CBA和CMAR算法,以及Harmony算法和ART技术,都采用了这种方法。但这些方法通常只使用单一的最小支持度和置信度阈值,在类分布不均衡的情况下可能不太合适。不过,它们可以受益于FIM研究的所有进展,如更好的规则质量度量和更高效的算法。
2.3 类作为数据子集
另一种解释是将每个类视为一个独立的数据集,整个数据库是这些子集的并集。例如,ARC - BC算法分别从每个类中挖掘CARS,使用单个相对支持度阈值依次对每个类进行约束。
这种解释带来了以下新可能性:
-
适用于所有模式语言
:无论是项集、序列、树还是图结构的数据和模式,相关技术都适用。
-
新的显著性和质量度量方法
:
-
多支持度阈值
:可以为每个类使用单独的最小支持度阈值,如XRules分类器。也可以使用最大支持度约束,例如某些技术会寻找在一个类中频繁但在其他类中不频繁的模式。CCCS分类器甚至只依赖最大支持度约束,完全去除了最小支持度约束。但这些方法都面临如何设置参数的问题。
-
统计度量
:可以使用专门为有监督数据设计的度量约束,如准确率度量。大多数评估规则预测能力的度量可以表示为列联表中值的函数,如信息增益、$\chi^2$ 等。加权相对准确率(WRAcc)常用于子组发现,它与准确率在分类和子组发现中的表现有所不同。在分类中,目标是找到具有良好预测准确率的规则,而子组发现旨在表征数据子集的差异。
-
消除最小支持度
:可以将质量度量的阈值转换为支持度阈值,从而自动确定用于模式挖掘算法的额外支持度阈值。对于凸函数的质量度量,可以根据最小可接受值的阈值推导出模式的 $p$ 和 $n$ 的阈值,并在挖掘过程中强制执行。此外,还可以进行top - k挖掘,只寻找得分最高的 $k$ 个模式。
2.4 数值目标值
与前面讨论的每个事务被标记为一组离散标签之一的设置不同,数值目标变量可能有无限多个值。每个事务的目标值可能不同,学习特定值的预测器或将数据划分为具有相同目标值的子集的策略可能不太成功。不过,存在一些将数值值离散化的技术,这样问题就可以简化为分类设置。
2.5 流程图
graph TD;
A[监督模式挖掘] --> B[显式类标签];
A --> C[类作为数据子集];
A --> D[数值目标值];
B --> B1[使用现有FIM技术];
B --> B2[挖掘类关联规则];
C --> C1[多支持度阈值];
C --> C2[统计度量];
C --> C3[消除最小支持度];
D --> D1[离散化数值值];
2.6 表格
| 方法 | 特点 | 示例算法 |
|---|---|---|
| 显式类标签 | 将类标签视为额外项,使用FIM技术 | Apriori、Eclat、FPGrowh、CBA、CMAR等 |
| 类作为数据子集 - 多支持度阈值 | 为每个类使用不同支持度阈值 | XRules、CCCS等 |
| 类作为数据子集 - 统计度量 | 使用专门的统计度量 | 基于准确率、WRAcc等的方法 |
| 类作为数据子集 - 消除最小支持度 | 将质量度量阈值转换为支持度阈值 | 基于凸函数质量度量的方法、top - k挖掘 |
| 数值目标值 | 离散化数值值 | 多种离散化技术 |
3 模式集挖掘
模式集挖掘在监督模式挖掘中具有重要意义,因为在构建分类器、规则列表、决策树等时,模式之间的冗余或无关性会对性能产生不利影响。以下是模式集挖掘的一些常见方式:
3.1 后处理
后处理是从单次模式挖掘步骤的结果集中选择一些模式。例如,通过设定特定的规则,筛选出符合某些质量标准的模式。具体步骤如下:
1. 执行一次模式挖掘,得到大量的模式集合。
2. 根据预设的质量度量标准,如规则的置信度、支持度、准确率等,对模式进行评估。
3. 选择满足质量标准的模式作为最终的模式集。
3.2 迭代模式挖掘
迭代模式挖掘则是多次进行模式挖掘过程。每次挖掘可能会基于前一次的结果进行调整,逐步优化模式集。具体流程如下:
1. 进行第一次模式挖掘,得到初始模式集。
2. 对初始模式集进行评估,分析模式之间的关系和质量。
3. 根据评估结果,调整挖掘参数,如支持度阈值、置信度阈值等。
4. 再次进行模式挖掘,得到新的模式集。
5. 重复步骤2 - 4,直到满足停止条件,如模式集的质量不再提升或达到预设的迭代次数。
3.3 模式集挖掘的影响因素
模式集挖掘过程可能会受到特定模型的引导,也可能是无模型引导的。有模型引导时,挖掘过程会根据特定模型的要求和目标进行,例如根据分类器的性能指标来选择模式。无模型引导时,则更侧重于模式本身的质量和特征。
3.4 流程图
graph TD;
A[模式集挖掘] --> B[后处理];
A --> C[迭代模式挖掘];
B --> B1[执行一次模式挖掘];
B --> B2[评估模式];
B --> B3[选择模式];
C --> C1[第一次模式挖掘];
C --> C2[评估初始模式集];
C --> C3[调整挖掘参数];
C --> C4[再次模式挖掘];
C4 --> C2;
3.5 表格
| 模式集挖掘方式 | 特点 | 步骤 |
|---|---|---|
| 后处理 | 从单次挖掘结果中选择模式 | 执行挖掘、评估模式、选择模式 |
| 迭代模式挖掘 | 多次挖掘并调整 | 初始挖掘、评估、调整参数、再次挖掘(循环) |
4 分类器构建
在完成模式挖掘和模式集挖掘后,接下来就是构建分类器。分类器的构建是将挖掘得到的模式集转化为能够对新数据进行分类预测的工具。以下是一些常见的分类器构建方法:
4.1 基于规则的分类器
基于规则的分类器使用挖掘得到的规则来进行分类。例如,类关联规则(CARS)可以直接用于构建分类器。具体步骤如下:
1. 从模式集挖掘中得到一组规则。
2. 对规则进行排序,例如按照置信度从高到低排序。
3. 对于新的数据实例,依次应用规则进行匹配。
4. 如果某个规则匹配成功,则根据规则的结论对数据实例进行分类。
4.2 决策树分类器
决策树分类器通过构建决策树来进行分类。决策树的每个内部节点是一个属性上的测试,每个分支是测试输出,每个叶节点是一个类别。构建决策树的步骤如下:
1. 选择一个属性作为根节点的测试属性。
2. 根据该属性的不同取值,将数据集划分为多个子集。
3. 对每个子集递归地重复步骤1 - 2,直到满足停止条件,如子集中的数据实例都属于同一类别或达到预设的树深度。
4.3 非符号分类器
非符号分类器不依赖于显式的规则或符号表示,如神经网络、支持向量机等。这些分类器通常需要对模式集进行进一步的处理和转换,以适应其输入要求。例如,将模式集转换为数值特征向量,然后输入到神经网络中进行训练。
4.4 分类器构建的注意事项
在构建分类器时,需要注意模式之间的冗余和无关性对分类器性能的影响。冗余的模式可能会导致分类器过拟合,而无关的模式则会增加计算复杂度。因此,在模式集挖掘阶段需要进行有效的筛选和优化。
4.5 流程图
graph TD;
A[分类器构建] --> B[基于规则的分类器];
A --> C[决策树分类器];
A --> D[非符号分类器];
B --> B1[获取规则];
B --> B2[规则排序];
B --> B3[规则匹配分类];
C --> C1[选择根属性];
C --> C2[划分数据集];
C --> C3[递归构建树];
D --> D1[模式集转换];
D --> D2[分类器训练];
4.6 表格
| 分类器类型 | 构建步骤 | 特点 |
|---|---|---|
| 基于规则的分类器 | 获取规则、排序规则、规则匹配分类 | 规则直观,易于解释 |
| 决策树分类器 | 选择根属性、划分数据集、递归构建树 | 结构清晰,可解释性较强 |
| 非符号分类器 | 模式集转换、分类器训练 | 适合处理复杂数据,但可解释性较差 |
综上所述,监督模式挖掘及其在分类中的应用是一个复杂而又充满挑战的领域。从模式挖掘到模式集挖掘,再到分类器构建,每个环节都有多种方法和技术可供选择。在实际应用中,需要根据具体的问题和数据特点,选择合适的方法和参数,以构建出性能良好的分类器。
超级会员免费看

被折叠的 条评论
为什么被折叠?



