9.分类:高级方法
9.1 贝叶斯信念网络
贝叶斯信念网络是一种概率的图模型,不假定类条件独立性,说明联合条件概率分布,允许在变量的子集间定义类条件独立性,提供一种因果关系的图形模型,可以在其上进行学习。
贝叶斯信念网络由两个成分定义,有向无环图和条件概率表的集合。网络变量可以是可观测的,或隐藏在所有或某些训练元组中。隐藏数据的情况也称为缺失值或不完全数据。如果网络拓扑已知并且变量是可观测的,则训练网络是直接的。当网络拓扑给定,而某些变量是隐藏时,可以选择不同的方法来训练信念网络,如梯度下降法。
信念网络是计算密集的。因为信念网络提供了因果结构的显示表示,因此专家可以用网络拓扑和/或条件概率值的形式提供先验知识。
9.2 用后向传播分类
后向传播是一种神经网络学习算法。神经网络的优点包括其对噪声数据的高承受能力,以及它对未经训练的数据的模式分类能力。在缺乏属性与类之间的联系时适用。
后向传播算法在多层前馈神经网络上学习,迭代地学习用于元组类标号预测的一组权重。多层前馈神经网络由一个输入层、一个或多个隐藏层和一个输出层组成。网络的输入对应于每个训练元组的观测属性。
训练之前,要定义神经网络的拓扑结构,包括输入层单元数、隐藏层数、每个隐藏层的单元数和输出层的单元数。
后向传播通过迭代地处理训练元组数据集,把每个元组的网络预测与实际已知的目标值相比较进行学习。目标值可以是训练元组已知类标号或者是连续值,对于每个训练样本,修改权重使得网络预测和实际目标值之间的均方误差最小。
算法整个过程:初始化权重、向前传播输入、向后传播误差、终止迭代。
9.3 支持向量机
支持向量机(Support Vector Machine,SVM),一种对线性和非线性数据进行分类的方法。SVM使用一种非线性映射,把原训练数据映射到较高的维上,在新的维上,搜索最佳分离超平面(即将一个类的元组与其他类分离的决策边界)。映射到足够高维上的、合适的非线性映射,两个类的数据总可以被超平面分开。SVM使用支持向量(基本训练元组)和边缘(由支持向量定义)发现超平面。
对于非线性可分的情况,采用核技巧实现原输入数据到较高维空间的非线性变换。通过核函数,避免在高维空间计算点积(计算成本和开销大),而直接通过核函数在原数据空间计算实现高维空间的点积。核函数包括多项式、高斯径向、S型等。
核方法的理解参考:http://blog.csdn.net/fjssharpsword/article/details/79092082
9.4 使用频繁模式分类
频繁模式显示了频繁地出现在给定数据集中的属性-值对之间的有趣联系。把每个属性-值对看做一个项,因此搜索这种频繁模式称做频繁模式挖掘或频繁项集挖掘。
关联分类的三种方法:CBR基于分类的关联、CMAR基于多关联规则的分类和基于预测关联规则的分类CPAR。关联规则的分类一般包括以下步骤:
1)挖掘数据,得到频繁项集,即找出数据中经常出现的属性-值对;
2)分析频繁项集,产生每个类的关联规则,它们满足置信度和支持度标准;
3)组织规则,形成基于规则的分类器。
基于有区别力的频繁模式分类,一般框架如下:
1)特征产生:根据类标号划分数据集D,使用频繁项集挖掘,发现每个分区中满足最小支持度的频繁模式。频繁模式的集合F形成候选特征。
2)特征选择:对F进行特征选择,得到选择后(更有区别能力)频繁模式集Fs。可以使用信息增益、Fisher得分或其他评估度量。也可以把相关性检验应用于清除冗余模式。数据集D变换成D’,其中特征空间现在包含单个特征和选择的频繁模式Fs。
3)学习分类模型:在数据集D’上建立分类器。
9.5 惰性学习法(近邻学习)
急切学习法(eager learner)在接收待分类的新元组(如检验元组)之前就构造泛化模型(即分类模型),通俗地说,学习后的模型准备就绪,可以随时对未见过的元组进行分类。
惰性学习法(lazy learner)简单存储,并且一直等待,直到给定一个检验元组。仅当它看到检验元组时,才进行泛化,以便根据与存储的训练元组的相似性对该元组进行分类。惰性学习在提供训练元组时只做少量工作,而在进行分类或数值预测时做更多的工作。惰性学习存储训练元组或实例,也称为基于实例的学习法。
在做分类或数值预测时,惰性学习法的计算开销相当大,需要有效的存储技术,并且非常适合在并行硬件上实现。它们不提供多少解释或对数据结构的洞察。然后,惰性学习法天生地支持增量学习,它们也能对具有超多边形形状的复杂决策空间建模。
K-最近近邻分类法搜索模式空间,找出最接近未知元组的k个训练元组。未知元组被指派到它的k个最近邻中的多数类。最近邻分类法使用基于距离的比较,本质上赋予每个属性相等的权重。因此,当数据存在噪声或不相关属性时,其准确率会受到影响。改进的方法中,结合属性加权和噪声数据元组的剪枝。距离度量的选择也很重要。最近邻分类法检验元组分类时会比较慢。加快分类速度的技术包括使用部分距离计算和编辑存储的元组。部分距离方法基于n个属性的子集计算距离。如果该距离超过阈值,则停止给定存储元组的进一步计算,该过程转向下一个存储元组。编辑方法可以删除被证明是无用的元组,也叫剪枝或精简,大大减少了存储元组的总数。
基于案例的推进(Case-Based Reasoning,CBR)分类法使用一个存放问题解的数据库来求解新问题。和最近邻分类法把训练元组作为欧氏空间的点存储不同,CBR把问题解决方案的元组或案例作为复杂的符号描述存储。
9.6 其他分类方法
1)遗传算法:易于并行,用于分类和其他优化问题,在挖掘中也可用于评估其他算法的拟合度。
2)粗糙集方法:用于分类,发现不准确数据或噪声数据内的结构联系,用于离散值属性。
3)模糊集方法:可能性理论,处理模糊或不精确的事实。
9.7 关于分类的其他问题
1)多类分类:一对所有OVA(one versus all),所有对所有AVA(all versus all),使用纠错码提高多类分类的准确性。
2)半监督分类:使用有类标号的数据和无类标号的数据构建分类器。自我训练和协同训练。
3)主动学习:一种迭代的监督学习,适合数据丰富但类标号稀缺或获取昂贵的情况。有目的地向用户(如专家、智者)询问类标号。这种方法用于学习概念的元组数远少于典型的监督学习所需要的数量。主动学习程序的目标是使用尽可能少的有标号实例来获得高准确率。
4)迁移学习:旨在从一个或多个源任务提取知识,并将这种知识用于目标任务。
9.8 小结
1)贝叶斯信念网络允许在变量子集之间定义类条件独立性,提供了一种因果关系的图形模型,在其上进行学习。训练后的贝叶斯信念网络可用来分类。
2)后向传播是一种用于分类的使用梯度下降法的神经网络算法。它搜索一组权重,对数据建模,使得数据元组的网络类预测和实际类标号之间的平均平方距离最小。可以从训练过的神经网络提取规则,帮助改进学习网络的可解释性。
3)支持向量机SVM是一种用于线性和非线性数据的分类算法,把源数据变换到较高维空间,使用支持向量的基本元组,从中发现分离数据的超平面。
4)频繁模式反映数据中属性-值对或项之间的强关联,可以用于基于频繁模式的分类。方法包括关联分类和基于有区别能力的频繁模式分类。在关联分类中,使用从频繁莫欧式产生的关联规则构建分类器。在基于有区别能力的频繁模式分类中,在建立分类模型时,除考虑单个特征之外,频繁模式充当组合特征。
5)急切学习方法都使用训练原则构造一个泛化模型,从而为新元组的分类做好准备。惰性学习存储训练元组,等到检验原则出现才泛化。惰性学习需要有效的索引技术。
6)在遗传算法中,规则总体通过交叉和变异操作进化,直到总体中所有的规则都满足指定的阈值。粗糙集理论可以用来近似地定义类,这些类基于可用的属性是不可区分的。模糊集方法用隶属度函数替换连续值属性的脆弱的阈值。
7)可以调整二元分类方法,如支持向量机,处理多类分类,涉及构造二元分类器的组合分类器,可以使用纠错码提高组合分类器的准确率。
8)当存在大量无标号的数据时,半监督学习是有用的。半监督学习使用有标号和无标号数据建立分类器。半监督分类的例子包括自我训练和协同训练。
9)主动学习是一种监督学习,适合数据丰富、但类标号稀缺或难以获得的情况。学习算法可以主动地向用户询问类标号。为了保持低代价,主动学习的目标是使用尽可能少的有标号的实例来获得高准确率。
10)迁移学习旨在从一个或多个源任务提取知识,并把这些知识运用于目标任务。TrAdaBoost是进行迁移学习的基于实例方法的一个例子,它对来自源任务的某些元组重新加权,并使用它们学习目标任务,因此只需要很少有标号的目标任务元组。