R语言之装袋、adaboost、随机森林算法

  首先,这三个算法都是分类算法,分类的准确率很高,这些方法都是组合多个分类器,每个分类器分别进行预测,通过简单选举多数,判定最终所属分类。为什么组合分类器能提高分类准确率:可以通过下面的图进行解释。左图单个分类器就是图上的对角线,当进行多个组合时,出现了图上的折线图,每个折边都是一个分类器,当有多个分类器进行组合,就会出现右图,最终达到一个曲线图。组合算法的优势:1、能明显提升判别准确率;2、对误差和噪音更加鲁棒性;3、一定程度抵消过度拟合;4、适合并行化计算。

R语言之装袋、adaboost、随机森林算法_第1张图片

一、装袋算法

R语言之装袋、adaboost、随机森林算法_第2张图片

创建k个模型就需要k个训练集,且这些训练集都有放回抽样,这样每次抽样时每个样本都有机会被抽到。袋装算法的优势:1、准确率明显高于组合中任何单个的分类器;2、对于较大的噪音,表现不至于很差,并且具有鲁棒性;3、不容易过度拟合

二、Adaboost算法

提升(boosting)算法思想:

1 训练集中的元组被分配权重
2 权重影响抽样,权重越大,越可能被抽取
3 迭代训练若干个分类器,在前一个分类器中被错误分类的元组,会被提高权重,使到
它在后面建立的分类器里被更加“关注”
4 最后分类也是由所有分类器一起投票,投票权重取决于分类器的准确率

Adaboost算法

R语言之装袋、adaboost、随机森林算法_第3张图片

R语言之装袋、adaboost、随机森林算法_第4张图片

解释:

首先对原组进行权重初始化,建立k个数据集,切记此时每个数据集的样本不一样,后一个模型的数据集大部分样本都是来自前一个模型误分的样本,是由于误分样本权重提高了。每个分类器进行预测属于哪个类,并给该类加权重,最后看哪个累的权重之和最大就选哪个类。

提升算法的优缺点:1:可以获得比bagging更高的准确率;2、容易过度拟合。

三、随机森林(Random Forest)算法

1、由很多决策树分类器组合而成(因而称为“森林”)
2、单个的决策树分类器用随机方法构成。首先,学习集是从原训练集中通过有放回抽样得到的自助样本。其次,参不构建该决策树的变量也是随机抽出,参不变量数通常大大小于可用变量数。
3、单个决策树在产生学习集和确定参不变量后,使用CART算法计算,丌剪枝
4、 最后分类结果取决于各个决策树分类器简单多数选举

解释:

构建K个决策树,组成随机森林,但是产生每个决策树的数据集的变量数通常不一样,使用CART算法,只要进行简单的四则运算就行了。最后根据选举。随机森林算法优点:1、准确率可以和Adaboost媲美;2、对错误和离群点更加鲁棒性;3、决策树容易过度拟合的问题会随着森林觃模而削弱;4、在大数据情况下速度快,性能好;

下面是相关决策树和随机森林算法:

随机森林算法

导入randomForest包

> attach(iris)
> model.forest <- randomForest(Species~.,data=iris)
> pre.forest <- predict(model.forest,iris)
> table(pre.forest,Species)
            Species
pre.forest   setosa versicolor virginica
  setosa         50          0         0
  versicolor      0         50         0
  virginica       0          0        50

准确率100%

决策树算法

导入rpart包

model.tree <- rpart(Species~.,data = iris,method = 'class')
> pre.tree <- predict(model.tree,data=iris,type = 'class')
> plot(model.tree,uniform = T,branch = 0,margin = 0.1,main="1")
> text(model.tree,use.n = T,fancy = T,col="red")
> table(pre.tree,Species)
            Species
pre.tree     setosa versicolor virginica
  setosa         50          0         0
  versicolor      0         49         5
  virginica       0          1        45

准确率下降,下面是决策树

R语言之装袋、adaboost、随机森林算法_第5张图片

解释:setosa50个正确分类,versicolor误分5个来源virginica,virginica误分1个来自versicolor。



你可能感兴趣的:(R语言)