- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SDABASDM模型调优—Baggingamp;Boosting.docx
SDABAS DM模型调优—Bagging Boosting
本文介绍模型调优的方法Bagging Boosting的应用方法,如有雷同纯属巧合?
分类算法性能优化问题的提出
SDABAS DM中包含很多分类算法,如:
决策树分类
ID3
C4.5
贝叶斯分类
神经网络分类
支持向量机分类
其他分类
各个算法有着不同的性能和运算精度,通过对同一数据源应用不同的分类算法进行性能测试,可比较各个算法的性能差异,进而选择最优的某个算法来完成模型训练。
当确定好使用某一算法进行模型训练时,如何通过其他优化手段进一步提升该算法的性能呢?本文介绍两个常用的简单方法Bagging Boosting。
分类法的准确率评估方式
保持(holdout)
原理:将数据集整体划分为两个独立的数据集,通常训练级(2/3),测试集(1/3)。
变形的划分:随机子选样。
K-次交叉验证(K-fold cross validation)
原理:将数据集分为k个子集,用k-1个子集做训练集,1个子集做测试集,然后k次交叉验证。
BaggingBoosting介绍
Bagging的基本思想
给定一个弱学习算法和一个训练集
单个弱学习算法准确率不高
将该学习算法使用多次得出预测函数序列,进行投票
最后结果准确率将得到提高
Bagging要求“不稳定”的分类方法;
比如:决策树,神经网络算法
不稳定:数据集的小的变动能够使得分类结果的显著的变动
Boosting基本思想
强学习算法: 准确率很高的学习算法
弱学习算法: 准确率不高,仅比随机猜测略好
提出问题:
是否可以将弱学习算法提升为强学习算法
基本思想:
每个样本都赋予一个权重
T次迭代,每次迭代后,对分类错误的样本加大权重,使得下一次的迭代更加关注这些样本。
Boosting也要求“不稳定”的分类方法
过程:
在一定的权重条件下训练数据,得出分类法Ct
根据Ct的错误率调整权重
特点:
Boosting易受到噪音的影响;
AdaBoost 可以用来鉴别异常;
具有最高权重的样本即为异常
Bagging 和boosting的区别
训练集:
Bagging:随机选择,各轮训练集相互独立
Boosting:各轮训练集并不独立,它的选择与前轮的学习结果有关
预测函数:
Bagging:没有权重;可以并行生成
Boosting:有权重;只能顺序生成
其他方面:
在大多数应用中,准确率比运算速度更为重要,因为计算机的性价比提高很快。
bagging和boosting都可以有效地提高分类的准确性。
在大多数数据集中,boosting的准确性比bagging高。
在有些数据集中,boosting会引起退化。---Overfit
Bagging和boosting方法的要求:
最基本的是分类方法的不稳定性。即:训练集的小变动能够使得分类模型显著变动。
在SDABAS DM中进行性能评估试验对比
创建未优化的分类模型并评估其计算精度
使用//Samples/data/Iris数据作为训练集,用决策树算法进行模型训练,使用交叉验证算子评估模型性能:
执行该流程得到默认参数下的决策树:
在性能矢量标签窗口,可看到默认决策树模型精度为93.33%+/-5.16%
加入Bagging算子重新评估精度
更改交叉验证操作符内部决策树算子为Bagging算子:
在Bagging算子内部设置同样的决策树算子:
执行该流程获得新的模型精度评估结果94.67+/-4.00%:
Bagging算子对模型性能提升的作用
通过对比两个模型评估结果,得到Bagging算子对决策树计算精度有一定的提升作用。本例中实际提升值为:94.67% - 93.33% = 1.33%
Boosting算子对模型性能提升的测试(一)
更改交叉验证中的Bagging算子为Boosting算子AdaBoost,Boosting内部子流程仍然使用默认的决策树算子:
??行该流程,得到新的模型性能评估结果,其计算精度为92.67%+/-7.57%:
可见在本例中Boosting算子并未提升模型计算精度,反而使精度下降了一点点。
Boosting算子对模型性能提升的测试(二)
上例中Boosting的表现不佳,猜测是由于Boosting固有的退化特性,使得某些情况下的数据计算精度表现不是很理想。下面更改流程中的数据源,换用另外一个测试集再次进行分析。
首先更改主流程中的数据源为 //Samples/data/Sonar,并在评估过程中使用两个交叉验证评估算子,其中上面的评估算子“Validation”里面使用了Boosting算子做训练,下面的评估算子“Validation(2)”未使用Boosting算子而是直接用决策树做训练,如图:
执行该流程得到两个不同的精度计算
文档评论(0)