随机森林与Adaboost
来源:互联网 发布:js怎么获取毫秒数 编辑:程序博客网 时间:2024/05/11 23:41
1. 决策树模型
1. 决策树三种算法
- ID3: 使用信息增益(互信息量
I(类别|某属性) )作为特征选择指标,遍历所以属性(特征),选择信息增益最大的属性作为分裂属性
- 算法缺点:倾向与取多值属性,训练得到的是庞大深度浅的树,不合理 - C4.5: 使用信息增益率(
I(类别|某属性)/H(某属性) ),解决倾向与多值属性问题 - CART:使用基尼系数
Gini(p)=∑Kk=1pk(1−pk)=1−∑Kk=1(|Ck|D)2 ,随机森林常用指标,可解决分类和回归问题
1). CART是二分类树,每次得到两个超类组,同属性可进行多次分类,直到属性值唯一。
2). 对与离散值,每组可有多个属性值,使用基尼系数做分类条件GiniGain=P(left)Gini(p1)+P(right)Gini(p2) ,P(left) 表示分到左边属性的概率,Gini(p1) 表示分到左边的样本基于类别得到的基尼系数。
2). 对于连续值,使用最小平方残差,得到一个分界线,使的组内方差最小,组间方差最大
3). 分类树得到的是叶子节点中概率大的类, 回归树取叶子节点中样本的中位数或平均值
注意:分类树和回归树是针对最后的target是连续值和离散值而言
2. 决策树损失函数
3. 停止条件:
a. 每个叶节点下只有一类(会过拟合);
b. 每个叶节点下样本数小于某个阈值
4. 优点:
a. 易于理解和解释,可视化好,容易提取规则;
b. 效率高,只需构建一次;
5. 缺点:
a. 容易过拟合(剪枝;随机森林);
b. 忽略属性特征间相关性;
c. 对缺失数据处理困难
2. Bagging与随机森林
1. Bagging策略及随机森林:
1). 用bootstrap方法重采样(有放回)选出n个样本
2). 在所以属性(特征)上,对n个样本训练一个分类器(决策树、LR、SVM等)
3). 循环前两步m次,建立m个分类器,根据结果投票
随机森林:在Bagging基础上两处修改:
a. 第二步从所以M个属性中随机选择m个(经验logM);
b. 分类器用CART决策树
2. 随机森林随机性体现在:
a. 每棵树样本是有放回采样(类似于给样本权重,采样多的样本更容易被分类正确,体现在损失函数上为对应样本乘上系数) 不放回抽样:每棵树学习学习片面,训练出来有很大差异,是多棵树表决,“求同”的过程
b. 每课树特征选择随机性
c. 随机的优点:不需要剪枝,减少过拟合,提高抗噪能力(对缺省值敏感度低)
3. 影响分类效果的因素
1).任意两课树的相关性:相关性越大,错误率越高
2).单棵树的分类能力:分类能力越强,整体错误率越低
通过调剂每棵树特征选择的个数可以调节相关性和分类能力。选择特征越多,两者同时提高,否则同时下降。
4. 袋外错误率(oob error)
评估模型时用袋外错误率(oob error)代替交叉验证。对每棵树选择训练集中未被该树采样的样本进行测试。
5. 总结随机森林优点
1). 效率高,适合运行大数据
2). 利于人工分析,可以评估各个特征在分类问题上的重要性
3). 防止过拟合,具有极好的准确度
4). 抗噪能力强,对缺省值敏感度低
5). 能够处理高维特征,不需要降维
6). 通过oob进行模型评估,不需要交叉验证
7). 可解决样本不平衡问题
3. Adaboost(boosting一种)
1. Adaboost核心思路:
1). 假设
2). 设置两个权重。样本权重:每次分类器分错的样本,在下一个分类器中加权重,分类正确的减权重;分类器权重:根据分类器误差率给定一个权重
2. 具体实现:
- 初始化向量数据集
T={(x1,y1),(x2,y2),..,(xn,yn)} ,初始化样本权重D1=(w11,w12,...,w1,n),w1,i=1/n - 构造分类误差率函数(损失函数?)其中
em=∑i=1nwmiI(Gm(xi)≠yi) em 是第m个分类器的分类误差,Gm 是第m个分类器,wmi 是第m个分类器的第i个样本的权重,I 是指示函数 - 计算
Gm 的分类器权重αm=12log1−emem ,误差率1/2为最差 - 计算下一个分类器的样本权重
wm+1,i=wm,iZexp(−αmyiGm(xi)),i=1,...,n Z 是归一化系数,使权重和为1 - 分类器加权求和构建最终分类器
G(x)=sign(∑m=1MαmGm(x))
3. Adaboost算法解释
- Adaboost模型是加法模型,损失函数是指数函数,学习方法是前向分布算法。
- 加法模型:
f(x)=∑m=1Mβb(x;θ) - 前向分布算法思想:从前向后,每次只学习一个基函数和系数,逐步逼近最优化目标函数式
- 损失函数与迭代参数:
(αm,Gm(x))=argminα,G∑i=1nexp[−yi(fm−1(xi)+αG(xi))]
3. Adaboost特点:
1 优点:a. 很好利用各种分类器作为弱分类器,准确度高;b. 相比bagging充分考虑每个分类器权重;c. 不易出现过拟合
2. 缺点:a. 时间复杂度高,每次迭代都要重新训练分类器;b. 迭代次数不好设定(训练多少次分类器),需要使用交叉验证;c. 数据不平衡会导致准确度下降;d. 对噪声数据和异常数据很敏感
4. bagging与boosting比较
- bagging是降低variance,防止过拟合,提高模型鲁棒性和稳定性;boosting主要降低bias,提高准确度,同时也可以一定程度降低variance
- 随机森林与adaboost比较
1). 两者都是进行投票表决,随机森林是公平投票(分类器无权重),adaboost是根据地位投票(分类器有权重)
2). 随机森林是并列,adaboost是级联
3). 都会给样本一个权重(bagging通过重复采样实现)。但bagging是随机的,boosting是根据样本之前分类结果学习的
4). 随机森林是对每个分类器随机选取部分样本,adaboost是选择所有样本。
- 随机森林与Adaboost
- AdaBoost与随机森林区别
- AdaBoost与随机森林 简单区别
- 经典算法总结之AdaBoost与随机森林
- 机器学习笔记(9)-集成方法[AdaBoost与随机森林]
- 集成学习-adaboost,bagging,随机森林
- AdaBoost和随机森林的区别
- 决策树随机森林adaboost理论实战
- 随机森林与GBDT
- 决策树与随机森林
- 随机森林与treeBoost
- 随机森林与 GBDT
- 决策树与随机森林
- 随机森林与GBDT
- 随机森林与GBDT
- 决策树与随机森林
- 决策树与随机森林
- 随机森林与GBDT
- 第五周项目二(2)比较三个数,输出最大值
- 第五周项目1--输入半径计算圆的周长
- WEB开发中的页面跳转方法
- ATL的GUI程序设计(4)
- Android 6.0运行时权限处理
- 随机森林与Adaboost
- 第五周 项目1 圆的周长
- 第五周用raptor计算圆的周长
- Java算法2--二分搜索法
- 死锁
- WebServices 简单安全验证以及调用频率限制
- Naive Bayes
- Raptor1
- K-means