机器学习-分类简介

一 分类概述

     分类在数据挖掘中是一项非常重要的任务。分类的目的是学会一个分类函数或分类模型(也常常称作为分类器),该模型能把数据库中的数据项映射到给定类别中的某一个类别。
     
      分类属于一种 有指导的学习,模型的学习是在被告知每个训练样本属于哪个类的“指导”下进行的,并随机的从样本群选取。每个训练样本还有一个特定的类标签与之对应,它不用于无指导的学习(聚类)。

 二 分类器
      分类器的构造方法有统计方法、机器方法、神经网络方法等。
统计方法
       包括贝叶斯和非参数法。常见的临近学习或基于事例的学习属于非参数方法。对应的知识表示则为判别函数和原型事例。
机器学习方法
      包括决策树法和规则归纳法。前者对应的表示为决策树或判别树,后者则有决策表和产生式规则等。
神经网络方法
        主要是BP算法,它的模型表示是前向反馈神经网络模型(由代表神经元的结点和代表联接权值的边组成的一种体系结构),BP算法本质上是一种非线性判别函数
        另外,许多技术,如粗糙集等,都可以用于分类器构造中。
       
       分类方法归结为四种类型:基于距离的分类方法(最临近方法)、决策树分类方法(ID3和C4.5算法)、贝叶斯分类方法(朴素贝叶斯算法和EM算法)和规则归纳(AQ算法、CN2算法和FOIL算法)等。

       要构造分类器,需要有一个训练样本数据作为输入。分类的目的是分析输入数据,通过在训练集中的数据表现出来的特性,为每一个类找到一种准确的描述或者模型。
  
     一般地,数据分类分为两个步骤,建模和使用:
           1. 建立一个模型,描述预定的数据集或概念集
           2. 使用模型进行分类
注:使用模型前需要评估模型的预测准确率。保持(Holdout)方法是一种使用类标号样本测试集的简单方法。这些样本随机选取,并独立于训练样本。模型在给定的测试集上的准确率是被模型正确分类的测试样本的百分比。对于每个测试样本,将已知的类标号与该样本的学习模型类预测比较。如果模型的准确率根据训练数据集进行评估,评估可能是乐观的,因为学习模型倾向于过分拟合数据。因此,使用交叉验证来评估模型是比较合理的。

三  朴素贝叶斯分类

      贝叶斯分类是统计分类方法。基本思想: 首先计算每个分类的先验概率,然后在每种分类上计算待分类样本的后验概率,在哪个分类上的后验概率大就属于哪个分类
       贝叶斯分类器的分类是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,所谓的后验概率也就是该对象属于某一类的概率,然后选择具有最大后验概率的类作为该对象所属的类,即在哪个分类上的后验概率大就属于哪个分类。

       朴素贝叶斯分类器基于一个简单的假定:给定目标值时属性之间相互条件独立
    
     每个数据样本用一个n维特征向量 表示,分别描述对n个属性A1,A2,A3,......,An样本的n个度量。
      假定有m个类C1,C2,......,Cm,给定一个不知类别的数据样本X,分类器将预测X属于具有最高后验概率(条件X下)的类。也就是说朴素贝叶斯分类将未知的样本分配给类Ci(1<=i<=m)当且仅当P(Ci | X) > P(Cj | X),对任意的j=1,2,.....,m,j!=i.这样最大化的P(Ci|X)对应的类Ci称为最大后验假定,而P(Ci|X)可以根据下面的贝叶斯定理来确定:
                                                    
      由于P(X)对于所有类为常数,只需要P(X|Ci)P(Ci)最大即可。如果Ci类的先验概率未知,则通常假定这些类是等概率的,即P(C1)=P(C2)=.....=P(Cm), 假设不是等概率,那么类的先验概率可以用P(Ci)=Si/S计算,其中Si是类Ci中的训练样本数,而S是训练样本总数。 因此问题就转化为对P(X|Ci)的最大化。 P(X|Ci)常被称为给定Ci时数据X的似然度,而使P(X|Ci)最大的假设Ci称为最大似然假设。
     给定具有许多属性的数据集,计算P(X|Ci)的开销是可能非常大。为降低计算P(X|Ci)的开销,可以做类条件独立的朴素假定。给定样本的类标号,假定属性值相互条件独立,即在属性间不存在依赖关系。这样:
                                             
  其中概率P(x1|Ci)、P(x2|C2)、P(x3|C3),.....,P(xn|Cn)可以由训练样本估值。
       如果Ak是离散属性,则P(xk|Ci) = sik/si,其中sik是在属性Ak上具有值xk的类Ci的训练样本数,而si是Ci的训练样本数。

         
三 决策树分类

       从数据中生成分类器的一个特别有效的方法是生成一个决策树(Decision Tree),决策树表示方法是应用最广泛的逻辑方法之一,它从一组无序、无规则的事例中推理出决策树表示形式的分类规则。
      决策树方法采用自顶向下的递归方式,在决策树的内部结点进行属性值的比较并根据不同的属性值判断从该结点向下的分支,在决策树的叶节点得到结论。
       决策树是一个类似于流程图的树结构,其中每个内部结点表示在一个属性上的测试,每个分支代表一个测试输出,而每个树叶结点代表类或类分布。树的最顶层结点是根结点。一棵典型的决策树如下图所示。内部结点用矩形表示,而树叶节点用椭圆表示。为了对未知的样本分类,样本的属性值在决策树上测试。
      决策树从根到叶结点的一条路径就对应者一条合取规则,因此决策树容易转换成分类规则。
         

        多叉树的内部结点是属性,边是该属性的所有取值,有几个取值,就有几条边。数据的叶子结点都是类别标记。
       决策树是应用非常广泛的分类方法,目前有多种决策树方法,如ID3、CN2、SQIQ、SPRINT等。大多数已开发的决策树是一种核心算法的变体。
      ID3算法是一种经典的决策树学习算法,由Quinlan于1979年提出。ID3算法的基本思想是,以信息熵为度量,用于决策树节点的属性选择,每次优先选取信息量最多的属性,亦即能使系统熵值变为最小的属性,以构造一颗熵值下降最快的决策树,到叶子节点的熵值为0,此时,每个叶子节点对应的实例属于同一类。
        决策树分类算法通常分为两个步骤,决策树生成和决策树修剪。

信息熵
   在信息论中,熵被用来衡量一个随机变量出现的期望值,它是随机变量的期望,用来度量信息的不确定程度。熵是整个系统的平均消息量。 一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。所以,信息熵也可以说是系统有序化程度的一个度量。处理信息就是为了把信息搞清楚,就是熵减少的过程。一个属性的熵越大,它蕴含的不确定信息越大,越有利于数据的分类。这种信息理论方法使得对一个对象分类所需的期望测试数目达到最小,并尽量确保找到一棵简单的树来刻画相关的信息。
        信息论中,事件ai信息量(又叫信息本体I(ai )可如下度量:      
                                                       
         其中p(ai)表示事件ai发生的概率。假设n个互不相容的事件a1,a2,a3,….,an,它们中有且仅有一个发生,则其平均的信息量(又叫先验熵)可如下度量:
                     
     
      设S是s个数据样本的集合。假设类标号属性具有m个不同的值,定义m个不同类

Ci(i=1,2,....,m)。设si是Ci中样本的个数。对一个给定的样本分类所需的期望信息量有下面

公式给出:
                           

       其中pi是任意样本属于Ci的概率,一般可用si/s来估计。
    
      设属性A具有v个不同的值{a1,a2,...,av}。可以用属性A将S划分为v个子集{S1,S2,....Sv},其

中Sj包含S中这样的一些样本,它们在A上具有值aj。如果用A作为测试属性(即最好的分裂

属性), 则这些子集对应于包含集合S的结点生长出来的分支。
      
      设sij是集合Sj中类Ci的样本数。根据由属性A划分子集的熵由下式给出:
                             
              
   当第j个子集的权,并且等于字集(即A值为aj)中样本个数除以S中样本总数。熵值越小,子集划分的纯度越高,说明选择属性A作为决策节点的效果 越好。
              
       由期望信息和熵值可以得到对应的信息增益值。对于在A上分支将获得的信息增益可

以由下面的公式得到:
                       
          信息增益就是这两个熵的差值。熵表示系统的不稳定程度,Gain(S,A)越大,系统熵减小的也就越快,表示条件A对于确定系统的贡献越大,说明选择测试属性A作为决策节点对分类提供的信息越多,系统趋于稳定的速度也更快。

      ID3根据信息增益,运用自顶向下的贪心策略建立决策树。信息增益用于度量某个属性对样本集合分类的好坏程度。由于采用了信息增益,ID3算法建立的决策树规模比较小,查询速度快。


ID3算法缺点

       信息增益度度量存在一个内在偏置,它偏袒具有较多值的属性,举一个极端的例子,如果有一个属性为日期,那么将有大量的值,太多的属性值把训练样例分割成非成小的空间,单独的日期就可能完全预测训练数据的目标属性,因此,这个属性可能会有非常高的信息增益,该属性可能会被选为根结点的决策属性并形成一棵深度为一级但却非常宽的树,这棵树可以理想的分类训练数据。但是这个决策树对于测试数据的分类性能可能会非常差,因为它过分完美地分割了训练数据,它不是一个好的分类器。

       除此之外,ID3算法增长树的每一个分支深度,指导恰好能对训练样例完美的分类。然而整个策略并非行得通。事实上,当数据中有噪声或训练样例的数量太少以至于不能产生目标函数的有代表性采样时,这个策略便会遇到困难,导致过度拟合训练集

     另外ID3算法只能处理离散类型的数据。

       ID3算法在搜索的过程中不能进行回溯,每当在树的某一层次选择了一个属性进行测试,它不会再回溯重新考虑这个选择。所以,它易受无回溯的爬山搜索中的常见风险影响:收敛到局部最优的答案,而不是全局最优。

      ID3算法在搜索的每一步都使用当前的所有训练样例,以统计为基础决定怎样精化当前的假设。这与那些基于单独的训练样例递增作出决定的方法不同。使用所有样例的统计属性(例如:信息增益)的一个优点是大大降低了对个别训练样例错误的敏感性。因此,通过修改ID3算法的终止准则以接受不完全拟合训练数据的假设,是可以很容易的扩展到处理含有噪声的训练数据。

剪枝
    有几种途径可被用来避免决策树学习中的过度拟合,它们分为两类:
         1.预先剪枝 及早停止树的增长,在ID3算法完美分类训练数据之前就停止树的增长。
         2.后剪枝     即允许树过度拟合数据,然后对这个树进行后修剪。
    
     尽管第一种方法可能看起来更直接,但是对过度拟合的树进行后修剪的第二中方法在实践中更成功。这是因为在第一种方法中精确地估计何时停止树增长是很困难的。
  
C4.5算法概述
     C4.5算法是从ID3算法演变而来,除了拥有ID3算法的功能外,C4.5算法引入了新的方法和增加了新的功能。例如:
      1.用信息增益比例的概念
                   
       这里属性A具有v个不同的值{a1,a2,...,av}。可以用属性A将S划分为v个子集{S1,S2,....Sv},其
中Sj包含S中这样的一些样本,它们在A上具有值aj。
     
      2. 合并具有连续值的属性
         ID3算法最初假定属性离散值,但在实际环境中,很多属性值是连续的。C4.5算法能够处理具有连续的属性值。
       
     3. 处理含有未知属性值的训练样本
         C4.5处理的样本可以含有未知属性值,其处理方法是用最常用的值替代或者将最常用的值分在同一类中。具体采用概率的方法,依据属性已知的值,对属性和每一个值赋予一个概率,取得这些概率依赖于该属性已知的值。

     4. 产生规则
        一旦树被简历,就可以把树转换成if-then规则。


四 小结
        分类可用于预测,分类的目的是从历史数据记录中自动推导出对给定数据的趋势描述,从而能对未来数据进行预测。统计学中常用的预测方式是回归。数据挖掘中的分类和统计学中的回归方法是一对联系又有区别的概念。一般地, 分类的输出是离散的类别值,而回归的输出则是连续数值。 分类具有广泛的应用,例如垃圾邮件识别、信用卡系统的信用分级、图像的模式识别等。


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sklearn,也称为scikit-learn,是一个针对Python编程语言的免费软件机器学习库。它是由数据科学家David Cournapeau在2007年发起的项目,旨在与Python的数值科学库NumPy和SciPy联合使用。Sklearn提供了一系列简单高效的工具,用于预测数据分析,并且可以在各种情况下重复使用。它是一个开源框架,可以在商业环境中使用,采用BSD许可证。Sklearn建立在NumPy、SciPy、Pandas和Matplotlib之上,提供了简单易用的API接口,非常适合新手上路。Sklearn是一个专门用于机器学习的包,包括有监督学习和无监督学习的任务模块,以及一个数据引入模块。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [Py之scikit-learn:机器学习sklearn库的简介、六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/...](https://blog.csdn.net/qq_41185868/article/details/79682338)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [sklearn机器学习](https://blog.csdn.net/weixin_57437047/article/details/129713003)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值