随机森林: 随机森林是利用随即的方式将许多决策树结合成一个森林,每个决策树在分类的时候决定测试样本的最终类别。
在Bagging策略的基础上进行修改后的一种算法
从样本集中用bootstrap采样选出n个样本;
从所有属性中随机选择k个属性,选择出最佳分割属性作为节点创建决策树;
重复以上两步m次,即建立m可决策树;
这m个决策树形成随机森林,通过投票表决结果决定数据属于哪一类;
RF算法在实际应用中具有比较好的特性,应用也比较广泛,主要应用在:分类,回归,特征转换,异常点检测等。
RF的主要优点:
- 训练可以并行化,对于大规模样本的训练具有速度的优势;
- 由于进行随机选择决策树划分特征列表,这样在样本维度比较高的时候,仍然具有比较高的训练性能;
- 给以给出各个特征的重要性列表;
- 由于存在随机抽样,训练出来的模型方差小,泛化能力强;
- RF实现简单;
- 对于部分特征的缺失不敏感。
RF的主要缺点: - 在某些噪音比较大的特征上,RF模型容易陷入过拟合;
- 取值比较多的划分特征对RF的决策会产生更大的影响,从而有可能影响模型的效果
Adaboost算法: Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。
adaboost算法本身是通过改变数据分布来实现的,他根据每次训练集中每个样本分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改过的权值的数据送给下一层分类器进行训练,最后将每次得到的分类器融合起来,最为最后的决策分类器;
- Adaptive Boosting是一种迭代算法。每轮迭代中会在新训练集上产生一个新的学习器,然后使用该学习器对所有样本进行预测,以评估每个样本的重要性 (Informative)。换句话来讲就是,算法会为每个样本赋予一个权重,每次用训练好的学习器标注/预测各个样本,如果某个样本点被预测的越正确,则将其权重降低;否则提高样本的权重。权重越高的样本在下一个迭代训练中所占的比重就越大,也就是说越难区分的样本在训练过程中会变得越重要;
- 整个迭代过程直到错误率足够小或者达到一定的迭代次数为止
- Adaboost算法将基分类器的线性组合作为强分类器,同时给分类误差率较小的基分类器以更大的权值,给分类误差率较大的基分类器以小的权重值。
Adaboost优缺点: - 优点:
1.Adaboost是一种有很高精度的分类器
2.可以使用各种方法构建分类器,Adaboost算法提供的是框架
3.当时用简单分类器时,计算出的结果是可以理解的,而弱分类器构造及其简单
4.简单,不用做特征筛选,可以处理连续值和离散值,解释强,结构简单
· 缺点
对异常样本敏感,异常样本可能会在迭代过程中获得较高的权重值,最终影响模型效果。
随机森林和adaboost算法都可以用来分类,它们都是优秀的基于决策树的组合算法。相对于经典线性判别分析,其分类效果一般要好很多。
下说明这两种分类方法的相同和不同之处:
1,相同:二者都是bootsrap自助法选取样本。
2,相同:二者都是要训练很多棵决策树。
3,不同:adaboost后面树的训练,其在变量抽样选取的时候,对于上一棵树分错的样本,抽中的概率会加大。
4,不同:随机森林在训练每一棵树的时候,随机挑选了部分变量作为拆分变量,而不是所有的变量都去作为拆分变量。
5,不同:在预测新数据时,adaboost中所有的树加权投票来决定因变量的预测值,每棵树的权重和错误率有关;随机森林按照所有树中少数服从多数树的分类值来决定因变量的预测值。