前言:陆陆续续已经更新到集成学习了,再有三四期这个系列也就结束了,慢慢的发现博客就是为自己写的,为的博客有点高产,主要是一些接的单子,主要是为了方便下次接单,感觉最近学的有点迷茫了,走人工智能的话要高学历,走大数据开发又要学hadoop这些java框架,我裂开了呀,机器学习学完也就要进阶深度学习了,加油。
1.什么是随机森林
利用多棵树对样本进行训练并预测的一种分类器
其实就是决策树的升级版本,但是与决策树不同的是进行集成学习,在Bagging策略的基础上进行修改后的一种算法,过程为
1:从样本集中用Bootstrap采样选出n个样本;
2:从所有属性中随机选择K个属性,选择出最佳分割属性作为节点创建决策树;
3:重复以上两步m次,即建立m棵决策树;
4:这m个决策树形成随机森林,通过投票表决结果决定数据属于那一类
在这之前就要说明什么是集成学习
2.集成学习
集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器。弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测的分类器(error rate < 0.5);常见的集成学习思想有:Bagging Boosting Stacking
2.1 Bagging方法
Bagging方法又叫做自举汇聚法(Bootstrap Aggregating),思想是:在原始数据集上通过有放回的抽样的方式,重新选择出S个新数据集来分别训练S个分类器的集成技术。也就是说这些模型的训练数据中允许存在重复数据。
Bagging方法训练出来的模型在预测新样本分类的时候,会使用多数投票或者求均值的方式来统计最终的分类结果。
Bagging方法的弱学习器可以是基本的算法模型,eg: Linear、Ridge、Lasso、Logistic、Softmax、ID3、C4.5、CART、SVM、KNN等。
Bagging方式是有放回的抽样,并且每个子集的样本数量必须和原始样本数量一致,但是子集中允许存在重复数据。
RF的推广算法
RF算法在实际应用中具有比较好的特性,应用也比较广泛,主要应用在:分类、回归、特征转换、异常点检测等。常见的RF变种算法如下:
Extra Tree
Totally Random Trees Embedding(TRTE)
Isolation Forest
RF随机森林总结
RF的主要优点:
1. 训练可以并行化,对于大规模样本的训练具有速度的优势;
2. 由于进行随机选择决策树划分特征列表,这样在样本维度比较高的时候,仍然具有比较高
的训练性能;
3. 给以给出各个特征的重要性列表;
4. 由于存在随机抽样,训练出来的模型方差小,泛化能力强;
5. RF实现简单;
6. 对于部分特征的缺失不敏感。
RF的主要缺点:
1. 在某些噪音比较大的特征上,RF模型容易陷入过拟合;
2. 取值比较多的划分特征对RF的决策会产生更大的影响,从而有可能影响模型的效果。