【大数据分析与挖掘】决策树(ID3、C4.5、CART)与随机森林、集成学习学习笔记,Boosting与Bagging

一.决策树与随机森林

1.决策树

一种类似于流程图的树结构,属于经典的十大数据挖掘算法之一,其规则就是IF…THEN…(IF…ELSE…)的思想,可用于数值型因变量的预测和离散型因变量的分类,是一种有监督学习模型,常被用于分类问题和回归问题。

决策树是一类机器学习算法,他们的共同点都是采用了树形结构,基本原理都是用一长串的if-else(节点划分)完成样本分类,区别主要在纯度度量(节点字段选择指标)等细节上选择了不同的解决方案。

该算法简单直观、通俗易懂,不需要研究者掌握任何邻域的知识或复杂的数学推理,而且算法的结果输出具有很强的解释性。

信息熵是度量样本集合“纯度”最常用的一种指标。计算公式如下:
在这里插入图片描述
假定当前样本集合D中第k类样本所占的比列为pk(k=1,2,…,K)

整个决策树建立的关键是:节点字段的选择指标(分裂准则),也是算法的核心。
以下介绍三种经典的决策树算法:

①ID3

节点字段的选择指标是信息增益,实现根节点或中间节点的字段选择。
在这里插入图片描述
GainA(D)表示用特征A对样本集合D进行划分所获得的信息增益,H(D)表示D的信息熵,H(D|A)表示D在A条件下的条件熵。信息增益表示在A的条件下,信息“不确定性”减少的程度。

一般而言,信息增益越大,则意味着使用特征A对集合D进行划分后所获得的“纯度提升”越大。但该指标存在一个非常明显的缺点,即信息增益会偏向于取值较多的字段。

ID3选择信息增益最大的特征作为决策树根节点的判断。

②C4.5

节点字段的选择指标是信息增益率,实现根节点或中间节点的字段选择。

为了克服信息增益指标的缺点,提出了信息增益率的概念,它的思想很简单,就是在信息增益的基础上进行相应的惩罚。
在这里插入图片描述
HA(D)为数据集D关于特征A的信息熵。特征A的取值越多,特征A的信息增益GainA(D)可能越大,但同时HA(D)也会越大,这样以商的形式就实现了GainA(D)的惩罚。

C4.5选择信息增益率最大的特征作为决策树根节点的判断。

③CART

节点字段的选择指标是基尼指数

为了能够让决策树预测连续型的因变量,提出CART算法,该算法也称为分类回归树。
在这里插入图片描述
Gini(D)反映的是数据集D的不确定性,跟信息熵 的含义类似。因此Gini(D)越小,则数据集D的“纯度”越高。
特征A的基尼指数为:
在这里插入图片描述
Gini(D,A)反映的是使用特征A对数据集合D进行划分后的不确定程度。
CART选择基尼指数最小的特征作为决策树根节点的判断。

区别

1.决策树CART算法既可以处理离散型变量的分类问题,也可以解决连续型变量的回归预测问题。但C4.5和ID3算法都只能用于离散型变量的分类问题。
2.ID3和C4.5都属于多分支决策树,即每次分叉生成子树时,都是按照所选特征的所有取值来划分的。CART则是二分支决策树。
3.三种算法在建模过程中都可能存在过拟合的情况。

过拟合和剪枝处理

所谓过拟合,即模型在训练集上有很高的预测精度,但在测试集上效果却不够理想。
欠拟合情况是没有很好地捕捉到数据的特征,不能很好地拟合数据。
过拟合情况是模型过于复杂,把噪声数据的特征也学习到模型中。

为了解决过拟合问题,通常会对决策树做剪枝处理。
决策树的剪枝通常有两类方法:
一类是预剪枝,指在树的生长过程中就对其进行必要的剪枝;
一类是后剪枝,指决策树在得到充分生长的前提下再对其返工修剪。
后剪枝方法有误差降低剪枝法、悲观剪枝法和代价复杂度剪枝法。

2.集成学习

集成分类器是一个复合模型,由多个分类器组合而成。
提升(Boosting)、装袋(Bagging)都是流行的集成学习方法。

①提升(Boosting)

该方法训练基分类器时采用串行的方式,各个基分类器之间有依赖。

主要思想:从错误中学习。即每层训练时,对前一层基分类器分错的样本,给予更高的权重,测试时,根据各层分类器的结果的加权得到最终结果。

通过逐步聚焦于基分类器分错的样本,减少集成分类器的偏差。

Adaboost

是一种流行的自适应提升算法,也是一种迭代算法,是Boosting的典型代表。

核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。

②袋装(Bagging)

该方法与Boosting的串行训练方式不同,Bagging方法在训练过程中,各基分类器之间无强依赖,可以并行训练。

主要思想:集体投票决策,每个个体单独作出判断,再通过投票的方式做出最后的集体决策。

采取分而治之的策略,通过对训练样本多次采样,并分别训练出多个不同模型,然后做综合,以减小集成分类器的方差。

随机森林(Random Forest)

该算法是Bagging的典型代表。

为了让基分类器之间相互独立,将训练集分为若干子集,当训练样本数量较少时,子集之间可能有交叠。

“森林”:由多棵决策树构成的集合,而且这些子树都是经过充分生长的CART树
“随机”:构成多棵决策树的数据是随机生成的,生成过程采用的是Bootstrap抽样法,即有放回地随机抽取样本。
Bagging是Bootstrap Aggregating的简称,意思是再抽样,然后在每个样本上训练出来的模型取平均。

核心思想:采用多棵决策树的投票机制,完成分类或预测问题的解决。
对于分类问题,将多棵树的判断结果用作投票,根据少数服从多数的原则,最终确定样本所属的类型;对于预测性问题,将多棵树的回归结果进行平均,最终用于样本的预测值。

优点:运行速度快,预测准确率高

随机森林的随机性体现在两个方面:
一是每棵树的训练样本是随机的:
样本随机性”在于从N个样本中有放回地随机抽取N个样本作为一棵子树的训练集(有些样本可能是重复的,有些样本则可能没被抽到)。
二是树中每个节点的分裂字段也是随机选择的:
特征随机性”在于从M个特征中不放回地随机抽取m个,m的取值一般为m=√M。
两个随机性的引入,再加上最终的投票机制(分类;多数表决)或取平均值(回归),随机森林不剪枝也不容易陷入过拟合。

Boosting和Bagging的基分类器(弱分类器)都为CART。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
⼤数据算法⼗⼤经典算法 ⼤数据算法⼗⼤经典算法 ⼀、C4.5 C4.5,是机器学习算法中的⼀个分类决策树算法, 它是决策树(决策树也就是做决策的节点间的组织⽅式像⼀棵树,其实是⼀个倒树)核⼼算法 ID3的改进算法,所以基本上了解了⼀半决策树构造⽅法就能构造它。 决策树构造⽅法其实就是每次选择⼀个好的特征以及分裂点作为当前节点的分类条件。 C4.5相⽐于ID3改进的地⽅有: 1、⽤信息增益率来选择属性。 ID3选择属性⽤的是⼦树的信息增益,这⾥可以⽤很多⽅法来定义信息,ID3使⽤的是熵(entropy,熵是⼀种不纯度度量准则), 也就是熵的变化值. ⽽C4.5⽤的是信息增益率。对,区别就在于⼀个是信息增益,⼀个是信息增益率。 ⼀般来说率就是⽤来取平衡⽤的,就像⽅差起的作⽤差不多, ⽐如有两个跑步的⼈,⼀个起点是10m/s的⼈、其10s后为20m/s; 另⼀个⼈起速是1m/s、其1s后为2m/s。 如果紧紧算差值那么两个差距就很⼤了,如果使⽤速度增加率(加速度,即都是为1m/s^2)来衡量,2个⼈就是⼀样的加速度。 因此,C4.5克服了ID3⽤信息增益选择属性时偏向选择取值多的属性的不⾜。 2、在树构造过程中进⾏剪枝,在构造决策树的时候,那些挂着⼏个元素的节点,不考虑最好,不然容易导致overfitting。 3、对⾮离散数据也能处理。 4、能够对不完整数据进⾏处理。 ⼆、The k-means algorithm 即K-Means算法 k-means algorithm算法是⼀个聚类算法,把n的对象根据他们的属性分为k个分割(k < n)。 它与处理混合正态分布的最⼤期望算法(本⼗⼤算法第五条)很相似,因为他们都试图找到数据中⾃然聚类的中⼼。 它假设对象属性来⾃于空间向量,并且⽬标是使各个群组内部的均⽅误差总和最⼩。 三、 Support vector machines ⽀持向量机,英⽂为Support Vector Machine,简称SV机(论⽂中⼀般简称SVM)。 它是⼀种监督式学习的⽅法,它⼴泛的应⽤于统计分类以及回归分析中。 ⽀持向量机将向量映射到⼀个更⾼维的空间⾥,在这个空间⾥建⽴有⼀个最⼤间隔超平⾯。 在分开数据的超平⾯的两边建有两个互相平⾏的超平⾯,分隔超平⾯使两个平⾏超平⾯的距离最⼤化。 假定平⾏超平⾯间的距离或差距越⼤,分类器的总误差越⼩。 ⼀个极好的指南是C.J.C Burges的《模式识别⽀持向量机指南》。 van der Walt 和 Barnard 将⽀持向量机和其他分类器进⾏了⽐较。 四、The Apriori algorithm Apriori算法是⼀种最有影响的挖掘布尔关联规则频繁项集的算法。 其核⼼是基于两阶段频集思想的递推算法。 该关联规则在分类上属于单维、单层、布尔关联规则。 在这⾥,所有⽀持度⼤于最⼩⽀持度的项集称为频繁项集,简称频集。 五、最⼤期望(EM)算法 在统计计算中,最⼤期望 (EM,Expectation–Maximization)算法是在概率 (probabilistic)模型中寻找参数最⼤似然估计的算法,其中概率模型依赖于⽆法观测的隐藏变量(Latent Variabl)。 最⼤期望经常⽤在机器学习和计算机视觉的数据集聚(Data Clustering)领域。 六、 PageRank PageRank是Google算法的重要内容。2001年9⽉被授予美国专利,专利⼈是Google创始⼈之⼀拉⾥ 佩奇(Larry Page)。 因此,PageRank⾥的page不是指⽹页,⽽是指佩奇,即这个等级⽅法是以佩奇来命名的。 PageRank根据⽹站的外部链接和内部链接的数量和质量,衡量⽹站的价值。 PageRank背后的概念是,每个到页⾯的链接都是对该页⾯的⼀次投票,被链接的越多,就意味着被其他⽹站投票越多。 这个就是所谓的"链接流⾏度"——衡量多少⼈愿意将他们的⽹站和你的⽹站挂钩。 PageRank这个概念引⾃学术中⼀篇论⽂的被引述的频度——即被别⼈引述的次数越多,⼀般判断这篇论⽂的权威性就越⾼。 七、AdaBoost Adaboost是⼀种迭代算法,其核⼼思想是针对同⼀个训练集训练不同的分类器(弱分类器), 然后把这些弱分类器集合起来,构成⼀个更强的最终分类器 (强分类器)。 其算法本⾝是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确, 以及上次的总体分类的准确率,来确定每个样本的权值。 将修改过权值的新数据集送给下层分类器进⾏训练,最后将每次训练得到的分类器融合起来,作为最后的决策分类器。 ⼋、 kNN: k-nearest neighbor classification K最近邻(k-Nearest Neighbor,KNN)分类算法,是⼀个理论上⽐
#Something about the data mining 数据挖掘(Data mining):是数据库知识发现(英语:Knowledge-Discovery in Databases,简称:KDD)中的一个步骤。数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器 学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。 数据分析十大经典算法: 1.Apriori :是一种最有影响的挖掘布尔关联规则频繁项集的算法。 2.C4.5:是机器学习算法中的一种分类决策树算法,其核心算法是 ID3 算法。 3. Naive Bayes:在众多分类方法中,应用最广泛的有决策树模型和朴素贝叶斯(Naive Bayes) 4. K-means 算法:是一种聚类算法 5. SVM:一种监督式学习方法,广泛应用于统计分类以及回归分析中 6.CART:分类与回归树,下面有两个关键的思想,第一个是关于递归地划分自变量空间的想法,第二个是用验证数据进行减枝 7. KNN:是一个理论上比较成熟的的方法,也是最简单的机器学习方法之一。 8. Pagerank:是 google 算法的重要内容。 9. adaboost:是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器然后把弱分类器集合起来,构成一个更强的最终分类器。 10. EM:最大期望值法。 注意:十大算法大概分类: KNN,决策树(以 C4.5)为例,SVM,AdaBoost,CART,Naive Bayes 都是分类作为目的的算法 而 K-means 是最常见的聚类算法;Apiori 是关联规则挖掘算法;EM 是一种概率模型参数的算 法;PageRank 是一种链接分析的算法,主要用于图数据里,对结点重要性进行排名.
R语言是一种强大的数据分析工具,可以通过其内置的各种包和库来进行数据挖掘分析。对于数据挖掘,R语言提供了多种算法,包括决策树baggingboosting随机森林等。 首先,决策树是一种常用的数据挖掘算法,它通过对数据集进行划分来构建一个树形的决策模型。在R语言中,可以使用rpart包来构建决策树模型,并通过测试数据集来评估模型的性能。 其次,bagging是一种集成学习算法,通过对训练数据集进行有放回的抽样,构建多个基学习器,并通过投票或平均的方式来获得最终的预测结果。在R语言中,可以使用randomForest包来实现bagging算法,并进行测试数据集的预测和评估。 接着,boosting是另一种集成学习算法,通过顺序的训练基学习器,并根据前一次学习器的结果调整样本权重,来提升模型性能。在R语言中,可以使用gbm包来实现boosting算法,并进行测试数据集的预测和评估。 最后,随机森林是一种基于多个决策树构建的集成学习算法,通过随机选择特征和样本来构建不同的决策树,并通过投票的方式来获得最终的预测结果。在R语言中,可以使用randomForest包来实现随机森林算法,并进行测试数据集的预测和评估。 通过对比这四种算法在测试数据集上的性能表现,可以选择最适合数据挖掘任务的算法,并进行进一步的分析和应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值