京公网安备 11010802034615号
经营许可证编号:京B2-20210330
简单的认识一下组合分类器以及R语言对应使用函数
首先,我们大家都有学习过一系列的分类方法,例如决策树,贝叶斯分类器等,有时候分类的效果不太如人意,哪怕是参数是最优化也一样,所以这时候就需要一些提高分类准确性的方法,我们常用的就是组合分类器,它就是一个复合模型,也就是由多个分类器组合而成;个体的分类器对结果进行投票,然后对组合分类器返回的投票进行汇总,然后基于返回的结果进行预测和分类。组合分类器的结果往往比它的成员分类器更准确;一般常用的组合分类方法有bigbing,boosting,还有我比较喜欢的随机森林; 什么是组合分类?
组合分类就是把K个学习得到的模型M1,M2,...,MK组合在一起,使用给定数据集D创建K个训练集D1,D2,...,DK,其中D1用于创建M1模型,以此类推;给定一个待分类的新数据元组,每个基分类器通过返回类预测投票,它收集由基于基分类器返回的类标预测,并输出占多数的类,基分类器也会出错,当基分类器出错时不代表组合分类器出错,组合分类器基于基本分类器的投票返回类预测,因此基分类器要出错超过一半时组合分类器才会出错,并且基分类器之间是不相关的,这也就是说明组合分类器更加准确。
bagging
这个方法也叫装袋法,这个也是组合分类器的一种,它的理念在与通过自举的方法建立很多不同的模型,然后对结果取平均,其本质是使得一些较弱的模型形成一个群体对结果来投票,从而得到更精确的预测;例如,如果你是一名病人希望根据你的症状做出诊断,你可能选择多个医生,而不是一个,如果某个诊断结果比其他诊断结果出现的次数多,你可能认为这个结果是最为可能出现的诊断结果,也即是说最终的诊断结果是根据多数表决做出的;其中每个医生的权重都一样,更多的医生表决比少数医生的多数表决更为的可靠;
在给定D个元组的集合,采用有放回抽样,每个训练集都是一个自助样本,每个训练集通过学习得到一个分类模型,对未知的元组进行分类,每个分类器M返回它的分类结果,算做一票,最后得票最高的作为结果类;对连续变量则通过取平均值;
那么在R语言里面怎么使用这个方法呢?
这时候我先要装好包ipred包中的bagging函数建立回归的bagging模型;
例如
bagging(price~x1+x2,data=test_date,nbagg=20)#这里只是举例代码并不能执行;
nbagg时选择多少个rpart数
boosting
这个方法也叫提升,它和上面的方法有些类似,假如你是一位病人,你选择咨询多位医生,然而得到的结果不是一致的,这时候你就需要根据先前医生诊断的准确率。对每一位医生赋予一个权重,然后根据加权诊断的组合作为最终的结果;这就是提升的基本思想;
早提升方法中,首先权重赋予每个训练元组,迭代的学习K个分类器;学习得到分类器M1之后,更新权重,使得其后的分类器M2更关注误分类的训练元组,如元组不准确的分类,则它的权重增加,如果元组正确分类,则它的权重减少;这是希望我们能够更加关注上一轮误分类的元组;其中每个分类器投票的权重是其准确率的函数;
bagging和boosting相比
由于boosting更加的关注误分的元组,所以存在结果符合模型的过度拟合的危险,bagging则不太受这个影响,不过二者都能够显著的提高准确度;boosting往往能够得到较高的准确率;
R语言里使用的是包mboost中的blackboost函数从回归树种建立boosting模型,glmboost从广义线性模型中建立模型;
blackboost(price~x1+x2,data=test_date)#这里只是举例代码并不能执行;
随机森林也是一种组合分类器,因为每一个分类器都是一棵树,所以组合在一起就很像一个森林;每一个数都依赖独立抽样;
随机森林可以使用bagging和随机属性来选择组合来构建,
A、指定M值,即随机产生M个属性用于节点上的二叉树,二叉树属性选择任然满足不纯度最小原则,不纯度公式为
B、应用BOOTSTRAP自助法在员数据集中有放回地随机抽取K个样本集,组成K颗决策树,而对于未被抽取的样本用于决策树的预测;
C、根据K个决策树组成的随机森林对待分类样本进行分类或者预测,分类的原则是投票法,预测的原则是简单平均。
想象组合分类器中每个分类器都是一颗决策树,因此分类器的集合就是一个“森林”,使用CART算法的方法来增长树,树增长到最大的规模,并且不剪枝,用这种方式形成的随机森林称为Forest-RI,数据分析师培训
另一种形式称为Forest-RC,他不是随机地选择一个属性子集,而是选择一个属性子集,而是由已有的属性的线性组合创建一些新属性,就是由原来的S个属性组合,在给定的节点,随机选择S个属性,并且以次欧诺个[-1,1]中随机选取的数为系数相加,产生S个线性组合,并在其中找到最佳的划分,仅仅只有少量属性可用时,为了降低个体分类器之间的相关性,这种形式的随机森林才有用。
随机森林的准确率可以boosting媲美,随机森林的泛化误差收敛,所以不存在过度拟合不是什么问题;
R语言最后给我们常用randomForest包中的randomForest函数去建模;
randomForest (price~x1+x2,data=test_date)#这里只是举例代码并不能执行;
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在Python数据分析中,Pandas库的DataFrame是最核心、最常用的结构化数据表对象,类似于Excel的二维表格,具备规整的行列结构、字 ...
2026-09-07在数据分析、经营复盘、业绩预测与经济统计工作中,平均增速(平均增长率)是衡量数据长期变化趋势、业务发展快慢的核心指标。不 ...
2026-09-07 很多数据分析师精通Excel单元格操作,但当被问到“表结构数据的基本处理单位是什么”“字段和记录的本质区别”“为什么表结 ...
2026-09-07随着大数据技术的快速发展,商业竞争逐步从传统的经验式经营转变为数据驱动的精细化运营。海量的用户行为数据、交易数据、运营数 ...
2026-09-04CDA数据分析师 出品 作者:李诗怡 1. 波士顿矩阵(BCG Matrix) 定义: BCG于1970年提出的业务组合分析工具,以"市场增长率"(纵 ...
2026-09-04 数据分析师八成以上的时间在和数据表格打交道,但许多人拿到Excel后习惯性地先算、先分析,结果回头发现漏了一列关键数据, ...
2026-09-04数据透视表是Excel与Power BI中最核心的数据分析工具,具备快速汇总、维度拆分、动态筛选的能力,可高效完成数据归类与统计展示 ...
2026-09-03在Power BI数据分析可视化场景中,堆积柱状图+折线图是最常用的复合图表组合。堆积柱状图适合展示各细分维度当期数值、结构占比 ...
2026-09-03 很多数据分析师每天与Excel打交道,但当被问到“表格结构数据的基本处理单位是什么”“数据类型误判会引发哪些分析错误”“ ...
2026-09-03CDA数据分析师 出品 作者:李诗怡 一、8个核心数据清洗函数 1. TRIM:一键清除多余空格(最常用) 作用:仅保留文本中"单词/字 ...
2026-09-02数据分析的核心并非单纯操作工具、整理报表或绘制图表,而是依靠科学的思维逻辑挖掘数据价值、解释业务现象、指导经营决策。在完 ...
2026-09-02在社会经济、产业研究、区域治理与大数据实证分析中,面板数据是最具研究价值的数据类型。面板数据同时包含截面维度与时间维度信 ...
2026-09-02 很多数据分析师能熟练计算均值、标准差,但当被问到“如何用一张图让业务方3秒内看懂核心结论”“面对不同数据类型该怎么选 ...
2026-09-02在数据驱动决策的体系中,数据分析按照分析目的可分为描述性分析、诊断性分析、预测性分析与指导性分析四大类型。其中,诊断性分 ...
2026-09-01网络请求是Python爬虫开发、接口测试、数据拉取的核心基础功能,Python生态中主要依靠 urllib 和 requests 两大库实现HTTP请求操 ...
2026-09-01 很多数据分析师面对业务问题时,常常感到“知道要分析,却不知道用什么方法”。其实,数据分析并非无章可循——从三大基础范 ...
2026-09-01在数据库设计与业务数据维护中,自增ID是数据表最常用的主键字段,用于唯一标识每一条业务数据,正常状态下ID应保持连续递增。但 ...
2026-08-31在数理统计、数据分析、经济测算与日常量化评估中,平均值是刻画数据集中趋势、反映整体水平的基础核心指标。在实际应用中,最常 ...
2026-08-31在数据驱动的时代,数据分析早已不是“凭经验、靠感觉”的零散操作,而是一套具备固定逻辑、标准化流程的系统方法——这就是数据 ...
2026-08-31在大数据时代背景下,海量行业数据亟需通过专业化工具挖掘潜在价值,辅助企业业务决策、优化运营模式、规避经营风险。Python凭借 ...
2026-08-28