数据挖掘--“分类”详解、K最近邻、决策树、贝叶斯分类、支持向量机--算法讲解

一. 什么是分类?

  • 分类技术或分类法(Classification) 是一种根据输入样本集建立类别模型,并按照类别模型对未知样本类标号进行标记的方法。在这种分类知识发现中,输入样本个体或对象的类标志是已知的,其任务在于从样本数据的属性中发现个体或对象的一般规则,从而根据该规则对未知样本数据对象进行标记。分类是一种 重要的数据分析形式,根据重要数据类的特征向量值及其他约束条件,构造分类函数或分类模型(分类器),目的是根据数据集的特点把未知类别的样本映射到给定类别中。

二. 分类步骤

  • 数据分类过程主要包括两个步骤,即学习和分类。第一步,建立一个模型。第二步,使用模型进行分类。

  • 分类分析在数据挖掘中是一项比较重要的任务,目前在商业上应用最多。分类的目的是从历史数据记录中自动推导出对给定数据的推广描述,从而学会一个分 类函数或分类模型(也常常称作分类器),该模型能把数据库中的数据项映射到给定类别中的某一个类中。要构造分类器模型,需要有一个训练样本数据集作为预先的数据集或概念集,通过分析由属性/特征描述的样本(或实例、对象等)来构造模型。

  • 为建立模型而被分析的数据元组形成训练数据集,由一组数据库 记录或元组构成,每个元组是一个由有关字段 (又称属性或特征)值组成的特征向量,此外,每”个训练样本都有一个预先定义的类别标记,由一个被称为类标签的属性确定。一一个具体样本的形式可表示为: {X1…Xn,C};其中Xn表示字段值,C表示类别。由于样本数据的类别标记是已知的,在预先知道目标数据的有关类的信息情况下,从训练样本集中提取出分类的规则,用于对其他标号未知的对象进行类标识。因此,分类又称为有监督的学习。

三. 分类算法有哪些?

1. K最近邻算法

  • K最近邻算法KNN (K-Nearest Neighbor)分类基于类比学习,是一种基于实例的学习,它使用具体的训练实例进行预测,而不必维护源自数据的抽象(或模型)。它采用n维数值属性描述训练样本,每个样本代表n维空间的一个 点,即所有的训练样本都存放在n维空间中。若给定一个未知样本,用K最近邻分类法搜索模式空间,计算该测试样本与训练集中其他样本的邻近度,找出最接近未知样本的k个训练样本,这k个训练样本就是未知样本的k个“近邻”。其中的“邻近度”一般采用欧几里得距离定义。

  • 最近邻分类是基于要求的或懒散的学习法,即它存放所有的训练样本,并且直到新的(未标记的)样本需要分类时才建立分类。其优点是可以生成任意形状的决策边界,能提供更加灵活的模型表示。但当训练样本数量很大时,懒散学习法可能导致很高的计算开销。另外,由于采用了局部分类决策,当k很小时,最近邻分类器对噪声非常敏感。

2. 决策树

  • 决策树(Decision Tree)最早产生于20世纪60年代,是一种生成分类器的有效方法,它从一组无次序、无规则的事例中推理出决策树表示形式的分类规则。在数据处理过程中,将数据按树状结构分成若干分枝形成决策树,每个分枝包含数据元组的类别归属共性,从决策树的根到叶节点的每条路径都对应着一条合取规则,整棵决策树就对应着组析取表达式规则。因此,从本质上来说,决策树就是通过一系列规则对 数据进行分类的过程。基于决策树的分类算法的一个最大优点就是它在学习过程中不需要使用者了解很多背景知识,只要训练例子能够用属性一结论式表示出来就能使用该算法来学习。

  • 决策树分类算法通常分为两个步骤:构造决策树和修剪决策树。

  • 构造决策树算法采用自上向下的递归构造,输入-组带有类别标记的例子,构造的结果是一棵二叉树或多又树,其内部节点是属性,边是该属性的所有取值,树的叶子节点都是类别标记。构造决策树的方法如下。
    (1)根据实际需求及所处理数据的特性,选择类别标识属性和决策树的决策属性集。
    (2)在决策属性集中选择最有分类标识能力的属性作为决策树的当前决策节点。
    (3)根据当前决策节点属性取值的不同,将训练样本数据集划分为若干子集。
    (4)针对上一步中得到的每个子集,重复进行(2)和(3)两个步骤,直到最后的子集符合以下约束的3个条件之一。

  • ①子集中的所有元组都属于同一类。
    ②该子集是已遍历了所有决策属性后得到的。
    ③子集中的所有剩余决策属性取值完全相同,已不能根据这些决策属性进一步划分子集。

  • 对满足条件①所产生的叶子节点,直接根据该子集的元组所属类别进行类别标识。满足条件②或条件③所产生的叶子节点,选取子集所含元组的代表性类别特征进行类别。
    (5)根据符合条件不同生成叶子节点。

  • 由于训练样本中的噪声数据和孤立点,构建决策树可能存在对训练样本过度适应问题,从而导致在使用决策树模型进行分类时出错。因此,需要对决策树进行修剪,除去不必要的分枝,同时也能使决策树得到简化。常用的决策树修剪策略可以分为3种,分别为基于代价复杂度的修剪(Cost-complexity Pruning)、悲观修剪(Pessimistic Pruning)和最小描述长度(Minimum Desription Length, MDL)修剪;也可以按照修剪的先后顺序分为先剪枝(Pre prning)和后剪枝(Post-pruning)。先剪枝技术限制决策树的过度生长(如CHAID、ID3、 C4.5 算法等),后剪枝技术则是待决策树生成后再进行剪枝(如CART算法等)。

3. 贝叶斯分类器

  • 贝叶斯分类器的基本思想是对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,其中最大分类出现的概率,就可以认为此待分类项属于该类别。例如:水果摊上的甘蔗,如果问甘蔗的产地,一般人会回答来自海南,因为海南是种植甘蔗的主要产地,当然也可能来自东南亚,但在没有更多可用信息情况下,一般会选择条件概率最大的类别,这就是贝叶斯的基本思想。

  • 贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。同时,贝叶斯模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上,通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类,贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为贝叶斯模型假设属性之间相互独立,但这个假设在实际应用中往往是不成立的,这给贝叶斯模型的正确分类带来了一定的影响。在属性个数比较多或者属性之间相关性较大时,贝叶斯模型的分类效率比不上决策树模型。而在属性相关性较小时,贝叶斯模型的性能最为良好。

4. 支持向量机

  • 支持向量机SVM (Support Vector Machine)是Cortes和Vapnik于195131年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。目前,该思想已成为最主要的模式识别方法之使用SVM可以在高维空间构造良好的预测模型,该算法在OCR、语言识别、图像识别等应用上得到广泛的应用。

  • 支持向量机方法是建立在统计学习理论的VC维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(对特定训练样本的学习精度,Accuracy) 和学习能力(无错误地识别任意样本的能力)之间寻求最佳折中,以期获得最好的推广能力(或称泛化能力)。

  • VC维是对函数类的一种度量, 可以简单地理解为问题的复杂程度,VC 维越高,一个问题就越复杂。机器学习本质上就是一种对问题真实模型的逼近(选择个认为比较好的近似模型,这个近似模型就称为一个假设),由于没法得知选择的假设与问题真实解之间究竟有多大差距,这个与问题真实解之间的误差,就称为风险。 真实误差无从得知,但可以用某些可以掌握的量来逼近它,即使用分类器在样本数据上的分类的结果与真实结果(因为样本是已经标注过的数据,是准确的数据)之间的差值来表示,这个差值称为经验风险Repm (W)。传统的机器学习方法都把经验风险最小化作为努力的目标,但后来发现很多能够在样本集上达到100%的正确率的分类函数,实际分类的效果不能令人满意,说明仅仅满足经验风险最小化的分类函数推广能力差,或泛化能力差,究其原因,因为相对于实际数据集,样本数是微乎其微的,经验风险最小化原则只在占很小比例的样本上做到没有误差,当然不能保证在更大比例的真实数据集上也没有误差。

  • 统计学习因此而引入了泛化误差界的概念,就是指真实风险应该包括两部分内容,其一.是经验风险,代表了分类器在给定样本上的误差;其二是置信风险,代表了在多大程度上可以信任分类器在未知数据上分类的结果。很显然,第二部分是没有办法精确计算的,因此, 只能给出一个估计的区间,也使得整个误差只能计算上界,而无法计算准确的值(所以叫作泛化误差界,而不叫泛化误差)。

  • 置信风险与两个量有关,一是样本数量,显然给定的样本数量越大,学习结果越有可能正确,此时置信风险越小:二是分类函数的VC维,显然VC维越大,推广能力越差,置信风险会变大。

猜你喜欢

转载自blog.csdn.net/qq_38132105/article/details/107080236