博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分类和预测
阅读量:4040 次
发布时间:2019-05-24

本文共 6698 字,大约阅读时间需要 22 分钟。

总述:分类和预测是数据挖掘当中梳理数据信息,提高有用数据浓度的常用操作,是数据挖掘的核心处理部分。

  1. 什么是分类,什么是预测
  2. 分类和预测需要注意的问题
  3. 使用决策树归纳分类
  4. 贝叶斯分类
  5. 基于规则的分类
  6. 向后传播分类
  7. 支持向量机
  8. 基于关联规则分析的分类
  9. 惰性学习法
  10. 其他的分类方法
  11. 预测
  12. 分类器或预测器的准确率和误差的度量
  13. 提高分类准确率的策略
  14. 如何选择合适的分类模型

 

 

1.什么是分类,什么是预测

答:数据分类需要两个步骤:第一个步骤是建立描述预定义的数据类或概念集的分类器,简单说就是建立分类的标准;第二个步骤是使用模型进行分类,先评估分类器预测的准确率,如果可以接受,则进一步应用到未知的数据集上进行分类。

数据预测也是有两个步骤:第一个步骤是寻找要预测的属性值与其他属性之间的函数关系或者映射关系;第二步是根据预测值和实际值进行评估和改进预测的映射关系。

 

2.分类和预测需要注意的问题

答:数据清理、相关分析、数据变换和规约是分类和预测所必需的数据预处理环节,这些环节有助于提高分类或预测的准确性、有效性、可伸缩性。

分类和预测的方法可以通过准确率、速度、鲁棒性、可伸缩性、可解释性几个方面去评估。

 

3、使用决策树归纳分类

答:决策树归纳是从类标记的训练元组学习决策树。决策树是一种类似于流程图的树结构,其中每个内部节点表示在一个属性上的测试,每个分支代表一个测试的输出,每个树叶节点存放一个类标号。这种决策树归纳类似于分支处理,而且不仅仅只是单独一层,而是存在递归层次的分支处理,叶子节点是最后分支处理的结果。决策树归纳的结果最后表现出来的非常类似于一组条件判断的结果。

在使用决策树归纳的时候,对连续取值和离散取值要做合理的分支处理或者分段;如果要判断的值只是属于其中某个分段,则要考虑采用剪枝的方式进行加速处理,类似于二分查找的情况。

使用决策树归纳处理属性选择度量的应用问题有信息增益、增益率、Gini指标。信息增益处理的问题是要将一组实体中某一属性进行划分,寻找合适的分组标准使得这个属性存取的值可以用最短的信息位进行表示。这个问题在算法中最具代表性的例子是哈夫曼编码问题。在信息增益问题当中,某一属性值占全体属性值的比重会影响其信息表示的长度,同时也要保证全体属性值按照这种分组标准分组的时候,其占用的信息存储长度是最短的。当属性值取值是连续值的时候,我们要进行分组的单位要比连续值的单位小一个数量级,将其转化为离散型取值问题。信息增益适用于具有大量值的属性。增益率是在信息增益扩充中应用分裂信息值 规范化信息增益。分裂信息值是训练数据集通过对应某个属性测试的m个分组标准产生的信息,可以计算出是分组后的信息增益值。拿这个训练产生的值去与基于分类的信息增益值做比较,在分裂信息值比较稳定的情况下,可以做出合理的比较。Gini指标是衡量数据集某属性按照某个取值标准分组后造成的属性值不纯度的降低,这个指标是衡量取值指标的合理性。

使用决策树归纳最经典的应用算法是哈夫曼树和哈夫曼编码。决策树归纳重点在于数据值集使用什么标准分组可以做到信息存储、规约等达到某种最优的情况。

决策树归纳算法在剪枝处理时可以考虑设置剪枝的阈值,其值可以考虑从Gini指数进行选取,当小于阈值时自动剪枝;也可以考虑使用其他指标作为剪枝的标准,如复杂度、错误率、剪枝代价等。

因为决策树归纳的数据集一般大小是超过算法运行机器的内存的,所以其算法必须考虑存储空间的限制问题,算法一定要有可伸缩性。推荐性的做法:1、数据集必须是有序的,无序的数据集要先做排序;2、算法需要指定一次性处理数据集的大小,最好检查机器内存和机器内运行应用的情况后适当指定;3、算法一定要指定一块公共区域存储每一个数据集片段处理的结果,最好这个区域不在内存中;4、每次处理的数据集应该基于一致的分组标准下划分出来的。暂时考虑到这些。

 

4、贝叶斯分类

答:贝叶斯分类方法是统计学分类方法,基于贝叶斯定理。朴素贝叶斯分类法假定一个属性值对给定类的影响独立于其他属性值,这个假设条件称为类条件独立性。此假设有助于简化计算。因为这个处理方法是来自于统计学,所以需要一定的数学理解能力,最好有统计学方面的基础。

设X是数据元组,令H为某种假设。P(H|X)是一种后验概率,表示在条件X下实际发生H事件的概率,表示H的后验概率。P(H)表示H的先验概率,后验概率P(H|X)比P(H)要基于更多的事实条件,但是P(H)是独立于X的。类似的,P(X|H)是条件H下,X的后验概率。贝叶斯定理是P(H|X)=P(X|H)*P(H)/P(X)

仔细思考之后,应用贝叶斯定理来解决问题主要是应用定理内容将数据元组由大化下,先计算小分组内的情况,然后合并到大的层次。当然这个应用也不都是准确的,因为这个定理是基于一定的假设条件产生的,当假设条件是在实际环境下产生扰动的时候,准确度就值得推敲了,贝叶斯分类还是非常值得推荐的,虽然无法解决所有数据的问题,但是至少这是一个可以尝试的思路。

贝叶斯信念网络说明联合条件概率分布,允许在变量的子集间定义类条件独立性,提供一种因果关系的图形化模型,可以对其进行学习,训练后的贝叶斯信念网络可以用于分类。

 

5、基于规则的分类

答:基于规则的分类法是使用一组IF-THEN规则进行分类。具体形式是:IF 条件 THEN 结论

如果对于给定的元组,规则前件中的条件都成立,则我们说规则前件被满足且规则覆盖该元组。这是一个全覆盖的情况,大部分的情况属于部分覆盖。为了测定规则在元组中覆盖的情况,提出了两个指标,一个是覆盖率,一个是准确率。规则的覆盖率是规则覆盖元组的百分比,规则的准确率是覆盖的元组和其中可以正确分类的元组之间的百分比。

当有多个规则同时被触发的时候,我们需要解决冲突的策略来决定激活哪一个规则并指派它对X的类预测。现存有很多种策略,这里说一下规模序和规则序两种。规模序方案将最高优先权赋予具有最苛刻要求的触发规则,其中苛刻性以规模前件的规模来度量,即激活具有最多属性测试的触发规则。规则序方案预先确定规则的优先测序,可以以各种规则的指标进行衡量,如重要性、普遍性、规则准确率等。

基于规则的分类器可以从决策树提取规则或者使用顺序覆盖算法的规则归纳建立。决策树做规则分类的好处在于决策树上的每个分支的节点都是规则,而且这些规则是相互独立的,而且这些规则可以利用规模序和规则序的策略。使用顺序覆盖算法可以直接从训练数据提取IF-THEN规则。顺序覆盖算法是最广泛使用的挖掘分类规则析取集的方法。顺序覆盖算法的一般策略如下:一次学习一个规则,每当学习一个规则,就删除该规则覆盖的元组,并对剩下的元组重复该过程。在实际操作过程中,可以考察将新规则引入之后,检查这种分类情况是不是变得更好,如果更好就保留新规则,如果不好就舍弃掉这种新规则。

 

6、向后传播分类

答:向后传播是一种神经网络学习算法。神经网络是一组连接输入/输出单元,其中每个连接都与一个权重相关联。在学习阶段,通过调整这些权重可以预测输入元组的正确类标号。由于单元之间的连接,神经网络学习又称连接者学习。神经网络需要很长的训练时间,主要靠经验确定,因此其解释性很差,但是因为其对噪声数据的高承受力和对未经训练数据的分类能力,被广泛用于处理现实世界的数据。

多层前馈申请网络由一个输入层、一个或多个隐藏层、一个输出层组成。多层前馈神经网络能够将类预测作为输入的非线性组合建模,从统计学上讲,这些输入进行非线性回归。当给定足够多的隐藏单元和足够的训练样本,多层前馈网络可以逼近任何函数。整个处理过程其实是一个尝试的过程,没有明确的规则。

根据描述,可以得到算法的核心思想是非线性回归:我们先预设一些权值,然后将一组数据代入进去,取得这组权值下方差的大小;然后尝试修改权值,将同组数据代入,只要方差比未修改之前变小就修改权值;否则维护原来的权值,寻找新的权值方案。最终会获得一个比较稳定的权值方案,在给定范围内再次修改权值,其方差变化小于误差的允许范围。这些都是非线性回归函数以及函数极限的相关定义。

由于这种非线性回归的权值方案是一个黑盒程序,所以人们对其权值的取值非常感兴趣,向提取权值方案。这个时候可以采用网络剪枝的方式处理。只要去掉的权值部分对整个权值方案预测的影响在误差的允许的范围内就有可以剪掉,这样处理下来,我们会得到覆盖范围最大的权值方案。

 

7、支持向量机

答:支持向量机是一种线性和非线性数据新分类方法。支持向量机是一种算法:使用一种非线性映射,将原训练数据映射到较高的维。在新的维上,搜索线性最佳分离超平面。使用一个适当的对足够高维的非线性映射,两类的数据总可以被超平面分开。SVM使用支持向量(基本训练元组)和边缘(由支持向量定义)发现该超平面。

SVM通过搜索最大边缘超平面来处理分类问题。最大边缘超平面相关联的边缘可以给出类之间最大的分离。边缘是从超平面到其边缘一个侧面的最短距离等于从该超平面到其边缘另一个侧面的最短距离,其中边缘的侧面平行于超平面。本质上,支持向量是最难分类的元组,并且给出最多的分类信息。当维数增多时,超维平面会转化到多维空间之中,具体的数据也会转化为超维平面上的线。因为这种转化会带来跟高的计算开销,所以一定要采用一些数学上的立体空间几何定理来削减计算量。

 

8、基于关联规则分析的分类

答:关联分类,是关联规则的产生和分析主要目的是用于分类。基本思想:搜索频繁模式与类标号之间的强关联。由于关联规则考察了多属性之间的高置信度关联,可能克服决策树归纳一次只考虑一个属性的局限性。关联分类的代表性方法有CBA、CMAR、CPAR。

CBA是最早、最简单的关联分类算法,使用频繁项集挖掘的迭代方法,类似于Apriori算法,多遍扫描数据集,导出频繁项集用来产生和测试更长的项集。CBA使用启发式方法构造分类器,其中规则按照其置信度和支持度递减优先级组织。CMAR是基于多关联规则的分类,借助树结构有效存储和检索规则,使用多种规则剪枝策略。CMAR常用的剪枝策略用置信度、相关度、覆盖率等指标进行衡量,一旦不满足指标就启动剪枝操作。CMAR寻找到的规则一般遵循最大置信度的要求。CPAR采用了不同的规则,其算法是每当产生一个规则的时候,就删除其覆盖的元组,如果不删除,那么就降低这个元组的权重值,递归处理,直至分类完毕。最后将规则合并形成分类器的规则集。

 

9、惰性学习法

答:前面提到的分类方法:决策树归纳、贝叶斯分类、基于规则的分类、向后传播分类、支持向量机、基于关联规则挖掘的分类都是在接收待分类新元组之前构造泛化模型,这些分类方法统称为急切学习法。与之相对。学习程序直到对给定的检验元组分类之前的最后一刻才构造模型,然后根据模型进行分类处理,这称之为惰性学习法。在分类会预测时,惰性学习法的计算开销可能非常大,需要有效的存储技术和适合的并行硬件支持,支持增量学习,可以对超多边形形状的复杂决策空间建模。惰性学习法的主要代表是k最近邻分类法和基于案例的推理分类法。

k最近邻分类法,广泛用于模式识别领域,算法思想如下:通过给定的检验元组和它相似的训练元组进行比较来学习。训练元组用n个属性描述,每个元组代表n维空间一个点,这样数据就转换到n维空间中。当给定一个未知元组时,k最近邻分类法搜索该模式空间,找出最接近未知元组的k的训练原则,这k个训练元组是未知元组的k个最近邻。n维空间中两个元组的最近距离可以采用空间立体几何中点与点的距离计算,不断进行累计。也可以对不同属性赋予不同权值调整误差率,还可以采用一些指标进行剪枝,如距离的阈值等信息。

基于案件的推理使用一个问题解的数据库来求解新问题。当给定一个待分类的新案例时,基于案例的推理首先检查是否存在一个同样的训练案例。如果找到则返回附在该案例上的解。如果找不到同样的案例,则基于案例的推理将搜索具有类似于新案例成分的训练案例。在寻找类似案例的时候存在着需要解决的问题,是算法的关键之处。这种分类方法适用于专业领域的场景,如教育、医学、法律等。

 

10、其他的分类方法

这些方法不常出现在商品化数据挖掘系统的分类中使用,在某些应用中有其优点,这些方法有遗传算法、粗糙集、模糊集。

遗传算法试图利用自然进化的思想。首先创建由随机产生的规则组成的初始群体,每个规则用一个二进制串表示。然后根据适者生存的原则形成当前群体最适合的规则以及这些规则的后代组成新的群体。在典型情况下,规则的拟合度用它评估训练样本集分类的准确率。后代通过使用交叉、变异等遗传操作来创建。遗传算法易于并行,并且已用于分类和其他优化问题,还可以评估其他算法的拟合度。

粗糙集方法用于分类,发现不准确数据或噪声数据内的结构联系,用于离散值属性。粗糙集理论基于给定训练数据内部的等价类的建立。等价类内部的数据元组是不加区分的。等价类元组包含一个近似的上限,也存在一个近似的下限,这样会形成一个数据区域,在这个数据区域内的数据被认定为等价。

模糊集方法允许我们处理模糊或不精确的实施。这种方法使用模糊理论,不遵循受总和公理约束的传统概率论,适用于许多分类领域,如市场调查、财经、卫生保健和环境工程。

 

11、预测

答:根据数据预测的定义,基本上是使用线性回归、非线性回归或者其他方法建立映射关系,然后带入预测条件得出预测结果,这是基本套路。

 

12、分类器或预测器的准确率和误差的度量

答:分类器在给定检验集的准确率是分类器正确分类的检验集元组所占的百分比。分类器的误差率或误分类率是1-(分类器准确率)。如果使用训练集评估模型的误差率,则该度量称为再代入误差,这个误差估计是实际误差率的乐观估计,因为没有在其他任何样本上对模型进行检验。预测器的检验误差或泛化误差是整个检查集的平均损失,跟正常的统计计算没有什么区别。以上各种度量的指标因为忽略一些条件而计算出来的,所以都存在一些不准确性,这也是客观存在的。

保持、随机子抽样、交叉确认、自助法都是基于给定数据的随机抽样划分评估准确率的常用技术。保持方法中,给定数据随机划分成两个独立的集合:训练集和检验集,通常三分之二的数据分配到训练集,三分一的数据分配到检验集,训练集导出模型,其准确率用检验集估计。保持方法存在一定的误差,因为模型不是从全部数据得出的,在检验的时候也无法保证检验集的数据产生的模型和训练集的一致。随机子抽样是保持方法的一种变形,将保持方法重复k次,准确率取每次迭代准确率的平均值。交叉确认方法是将初始数据换分成k个互不相交的子集,训练和检验进行k次,第i次训练的时候将第i个分组的数据刨除后的初始数据进行训练,检验的时候用第i组的数据进行检验。自助法是从给定训练元组中有放回均匀抽样,抽取的数据作为训练集,剩余的数据作为检验集,重复进行多次,可以得到准确率的数据信息,代入632自助法的公式得出准确率。对于小的数据集,自助法效果很好。

 

13、提高分类准确率的策略

答:装袋和提升是提高准确率的两种方法,都是系综方法或使用组合模型方法的例子。

给定d个元组的集合D,装袋过程如下:对于进行k次迭代中第i次迭代,d个元组的训练集Di采用有放回抽样,由原始元组集D抽样。术语装袋表示自助聚集。每个训练集都是自助样本,对每个训练集Di学习,得到一个分类模型Mi。然后对一个未知的元组X分类,每个分类器Mi返回它的预测,记做一票。装袋分类器M*统计得票,将得票最高的类赋予X。装袋的基本思想是如果一个分类结果得到多数分类模型的确认,那么这个分类结果一定会更加有效,类似于多路表决,少数服从多数。

提升方法是一种组合方法,它选用多个分类器,每个分类器赋予一定的权值,使用这个组合的分类器对元组进行分类。在尝试测定权值的过程中,如果元组可以正确分类,则降低其权值,否则提升其权值,最终我们会得到一个更多聚焦于不能正确分类的元组上模型,在不断改进的过程中,模型越准确。

 

14、如何选择合适的分类模型

答:比较两个分类模型的准确率可以通过正确率本身的分布情况来看:第一种是从统计学入手,检查正确率分布的显著性差异,假设其误差率为0进行t检验,当拒绝该假设之后,比较两者之间误差率,然后选取误差率较小的;第二种方法是通过ROC曲线判定,ROC曲线显示了给定模型的真正率或灵敏度之间的比较评定,即模型正确识别实例的比例与模式将实例识别错误的比例之间的评估比较。

转载地址:http://zqpdi.baihongyu.com/

你可能感兴趣的文章
[LeetCode By Python]121. Best Time to Buy and Sell Stock
查看>>
[LeetCode By Python]122. Best Time to Buy and Sell Stock II
查看>>
[LeetCode By Python]125. Valid Palindrome
查看>>
[LeetCode By Python]136. Single Number
查看>>
[LeetCode By MYSQL] Combine Two Tables
查看>>
[Leetcode BY python ]190. Reverse Bits
查看>>
Android下调用收发短信邮件等(转载)
查看>>
Android中电池信息(Battery information)的取得
查看>>
SVN客户端命令详解
查看>>
Android/Linux 内存监视
查看>>
Linux系统信息查看
查看>>
用find命令查找最近修改过的文件
查看>>
Android2.1消息应用(Messaging)源码学习笔记
查看>>
Phone双模修改涉及文件列表
查看>>
android UI小知识点
查看>>
Android之TelephonyManager类的方法详解
查看>>
android raw读取超过1M文件的方法
查看>>
ubuntu下SVN服务器安装配置
查看>>
MPMoviePlayerViewController和MPMoviePlayerController的使用
查看>>
CocoaPods实践之制作篇
查看>>