决策树
模型在真实世界中也应用场景
这个模型的优势是什么?
- 决策树易于实现和理解;
- 对于决策树,数据的准备工作一般比较简单;
- 能够同时处理多种数据类型
- 给定一个决策树模型,可以根据产生的决策树推出相应的逻辑表达式;
- 通过静态测试来对模型的表现进行评价;
- 在相对较短的时间内可以对大量的数据做出非常好的结果;
- 决策树可以很好地扩展到大型数据中,同时决策树的大小独立于数据库的大小;
- 计算复杂度相对较低,结果的输出易于理解,对部分的数据缺失不敏感。
他什么情况下表现最好?
- 实例是由“属性-值”对表示的;
- 目标函数具有离散的输出值;
- 训练数据集包含部分错误(决策树对错误有适应性);
- 训练数据缺少少量属性的实例。
这个模型的缺点是什么?
- 易于出现过拟合问题;
- 忽略了数据集中属性之间的相关性;
- 对于类比不一致的样本,决策树的信息增益倾向于那些数据值较多的特征
什么条件下它表现很差?
- 决策树匹配的数据过多时;
- 分类的类别过于复杂;
- 数据的属性之间具有非常强的关联。
根据我们当前数据集的特点,为什么这个模型适合这个问题。
- 不需要准备太多的训练数据,不需要对数据过多的处理如删除空白值等;
- 易于编码;
- 该问题是非线性问题,决策树能够很好地解决非线性问题;
- 算法的执行效率高,对机器的要求较小。
C4.5算法简介
C4.5算法是用于生成决策树的一种经典算法,是ID3算法的一种延伸和优化。C4.5算法对ID3算法主要做了一下几点改进:
(1)通过信息增益率选择分裂属性,克服了ID3算法中通过信息增益倾向于选择拥有多个属性值的属性作为分裂属性的不足;
(2)能够处理离散型和连续型的属性类型,即将连续型的属性进行离散化处理;
(3)构造决策树之后进行剪枝操作;
(4)能够处理具有缺失属性值的训练数据。
连续型属性的离散化处理
当属性类型为离散型,无须对数据进行离散化处理;当属性类型为连续型,则需要对数据进行离散化处理。C4.5算法针对连续属性的离散化处理,核心思想:将属性A的N个属性值按照升序排列;通过二分法将属性A的所有属性值分成两部分(共有N-1种划分方法,二分的阈值为相邻两个属性值的中间值);计算每种划分方法对应的信息增益,选取信息增益最大的划分方法的阈值作为属性A二分的阈值。
缺失属性值的处理
训练样本集中有可能会出现一些样本缺失了一些属性值,待分类样本中也会出现这样的情况。当遇到这样的样本集时该如何处理呢?含有缺失属性的样本集会一般会导致三个问题:
(1)在构建决策树时,每一个分裂属性的选取是由训练样本集中所有属性的信息増益率来决定的。而在此阶段,如果训练样本集中有些样本缺少一部分属性,此时该如何计算该属性的信息増益率;
(2)当已经选择某属性作为分裂属性时,样本集应该根据该属性的值来进行分支,但对于那些该属性的值为未知的样本,应该将它分支到哪一棵子树上;
(3)在决策树已经构建完成后,如果待分类样本中有些属性值缺失,则该样本的分类过程如何进行。
针对上述因缺失属性值引起的三个问题,C4.5算法有多种解决方案。
面对问题一,在计算各属性的信息増益率时,若某些样本的属性值未知,那么可以这样处理:计算某属性的信息増益率时忽略掉缺失了此属性的样本;或者通过此属性的样本中出现频率最高的属性值,賦值给缺失了此属性的样本。
面对问题二,假设属性A已被选择作为决策树中的一个分支节点,在对样本集进行分支的时候,对于那些属性A的值未知的样本,可以送样处理:不处理那些属性A未知的样本,即简单的忽略它们;或者根据属性A的其他样本的取值,来对未知样本进行赋值;或者为缺失属性A的样本单独创建一个分支,不过这种方式得到的决策树模型结点数显然要増加,使模型更加复杂了。
面对问题三,根据己经生成的决策树模型,对一个待分类的样本进行分类时,若此样本的属性A的值未知,可以这样处理:待分类样本在到达属性A的分支结点时即可结束分类过程,此样本所属类别为属性A的子树中概率最大的类别;或者把待分类样本的属性A赋予一个最常见的值,然后继续分类过程。
ID3优点是理论清晰、方法简单、学习能力较强,但也存在一些缺点:
(1)只能处理分类属性的数据,不能处理连续的数据;
(2)划分过程会由于子集规模过小而造成统计特征不充分而停止;
(3)ID3算法在选择根节点和各内部节点中的分支属性时,采用信息增益作为评价标准。信息增益的缺点是倾向于选择取值较多的属性,在有些情况下这类属性可能不会提供太多有价值的信息。
SVM
- 模型在真实世界中也应用场景
- 支撑向量机用于文本和超文本的分类;
- 用于图像分类;
- 用于手写体识别;
- Kecman, Vojislav; Learning and Soft Computing — Support Vector Machines, Neural Networks, Fuzzy Logic Systems, The MIT Press, Cambridge, MA, 2001.
- Barghout, Lauren. “Spatial-Taxon Information Granules as Used in Iterative Fuzzy-Decision-Making for Image Segmentation.” Granular Computing and Decision-Making. Springer International Publishing, 2015. 285-318.
这个模型的优势是什么?
- 分类效果好;
- 可以有效地处理高维空间的数据;
- 可以有效地处理变量个数大于样本个数的数据;
- 只是使用了一部分子集来进行训练模型,所以SVM模型不需要太大的内存;
- 可以提高泛化能力;
- 无局部极小值问题;
他什么情况下表现最好?
- 数据的维度较高;
- 需要模型具有非常强的泛化能力;
- 样本数据量较小时;
- 解决非线性问题;
这个模型的缺点是什么?
- 无法处理大规模的数据集,因为该算法需要较长的训练时间;
- 无法有效地处理包含噪声太多的数据集;
- SVM模型没有直接给出概率的估计值,而是利用交叉验证的方式估计,这种方式耗时较长;
- 对缺失数据非常敏感;
- 对于非线性问题,有时很难找到一个合适的核函数。
什么条件下它表现很差?
- 数据集的数据量过大;
- 数据集中的含有噪声;
- 数据集中的缺失较多的数据;
- 对算法的训练效率要求较高;
- 根据我们当前数据集的特点,为什么这个模型适合这个问题。
- 该项目所提供的样本数据相对较少;
- 该问题是属于非线性问题;
- 数据集经过“独热编码”后,维度较高;
- SVM可以指定不同的核函数,用于提高分类器的准确性。
集成方法(AdaBoost)
- 模型在真实世界中也应用场景
- 用于二分类或多分类问题;
- 用于特征选择;
- 多标签问题;
- 回归问题;
引用
- 这个模型的优势是什么?
- AdaBoost是一种精度非常高的分类器;
- 可以与各种方法构建子分类器,AdaBoost算法提供一种计算框架;
- 弱分类器的构造方法比较简单;
- 算法易于理解,不用做特征筛选;
- 不易发生过拟合。
- 易于编码;
- 他什么情况下表现最好?
- 用于解决二分类问题;
- 解决大类单标签问题;
- 处理多类单标签问题;
- 处理回归相关的问题。
- 这个模型的缺点是什么?
- AdaBoost算法的迭代次数不好设定,需要使用交叉验证的方式来进行确定;
- 数据集的不平衡分布导致分类器的分类精度下降;
- 训练比较耗费时间;
- 对异常值比较敏感;
- 什么条件下它表现很差?
- 数据集分布非常不均匀;
- 数据集中含有较多的异常值;
- 对算法的训练的效率要求较高;
- 根据我们当前数据集的特点,为什么这个模型适合这个问题。
- 该数据集可以归属为多标签分类问题;
- 数据集中异常值较少;
- 对算法模型的准确率要就较高;
转自:https://blog.csdn.net/sinat_32547403/article/details/72911193