机器学习算法五:随机森林(Random Forest)

集成学习:通过构建并结合多个学习器来完成学习任务;

集成学习中主要包括boosting算法bagging算法

★boosting算法:(线性集成)关注于降低偏差

  • 从初始训练集训练一个基学习器
  • 根据①训练效果,对于训练集中的每个样本建立权值wi,表示对每个样本的关注度。当某个样本被误分类的概率很高时,需要加大对该样本的权值。
  • 调整样本分布后,训练下一次的基学习器;
  • 进行迭代后,直至基学习器数量达到指定值T,后采用某种策略将其组合,作为最终模型。(每一步迭代都是一个弱分类器)

代表算法:AdaBoost算法:AdaBoost给每个弱分类器一个权值,将其线性组合最为最终分类器。误差越小的弱分类器,权值越大。

★bagging算法:(并行式集成)关注于降低方差

①从原始样本集中使用Bootstraping方法(有放回)随机抽取n个训练样本,共进行k轮抽取,得到k个训练集。(k个训练集之间相互独立,元素可以有重复)

②对于k个训练集,我们训练k个模型(这k个模型可以根据具体问题而定,比如决策树,knn等)

③将模型集合,对于分类问题:由投票表决产生分类结果;对于回归问题:由k个模型预测结果的均值作为最后预测结果。(所有模型的重要性相同)

bagging算法boosting算法间区别

  1. 样本选择:Bagging采用的是Bootstrap随机有放回抽样;而Boosting每一轮的训练集是不变的,改变的只是每一个样本的权重。
  2. 样本权重:Bagging使用的是均匀取样,每个样本权重相等;Boosting根据错误率调整样本权重,错误率越大的样本权重越大。
  3. 预测函数:Bagging所有的预测函数的权重相等;Boosting中误差越小的预测函数其权重越大。
  4. 并行计算:Bagging各个预测函数可以并行生成;Boosting各个预测函数必须按顺序迭代生成

将决策树与这些算法框架进行结合所得到的新的算法:

1)Bagging + 决策树 = 随机森林

2)AdaBoost + 决策树 = 提升树

3)Gradient Boosting + 决策树 = GBDT

随机森林(Random Forest):Bagging算法的一种扩展变体;

  • 随机森林包括:“随机”和“森林”两部分;

其中“随机”包括两部分,即训练数据随机训练特征随机

  1. 在Bagging算法中,采用有放回的随机抽样,决定了训练数据随机
  2. 而在随机森林算法中引入了随机特征选择,即在特征集合随机选择特征子集,在子集中选择最优特征用于结点划分,决定了训练特征随机

其中“森林”即是基于决策树算法的集成。

注:在随机森林算法中,其不仅通过对多棵树进行集成以提高分类效果,同时通过迭代使得森林中的树变得不断优秀(森林中的树使用更好的特征进行分枝);

随机森林算法过程:

  1. 从原始训练集随机有放回采样选出k个样本,生成k个训练集;
  2. 对于k个训练集,分别训练k个决策树模型
  3. 针对每个决策树随机选择特征个数,进行训练(决策树结点分裂过程中不需要剪枝);
  4. 将生成的多棵决策树组成随机森林。

特征重要程度计算

Sklearn 框架实现:

 

 参考文献: https://www.cnblogs.com/Yanjy-OnlyOne/p/10908545.html

https://blog.csdn.net/qq547276542/article/details/78304454

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随机森林是一种广泛应用于机器学习的集成算法,由多个决策树构成。它的实现可以使用Fortran和R语言。 Fortran是一种高性能的程序设计语言,特别适合科学计算和数值模拟。在Fortran中,可以使用数组和循环结构来构建决策树和随机森林模型。通过定义适当的数据结构、算法和流程控制,可以利用Fortran的并行计算能力来加速决策树的构建和预测过程。例如,可以使用Fortran的OpenMP库来实现并行计算,以提高算法的效率。 R语言是一种用于统计计算和数据分析的编程语言。在R中,可以使用现有的机器学习包(如randomForest包)来快速实现随机森林算法。randomForest包提供了丰富的函数和工具,可以方便地进行模型的训练、预测和评估。通过调用这些函数,用户可以快速搭建随机森林模型,并进行相关的数据处理和可视化。 无论是用Fortran还是R语言实现随机森林,都需要注意以下几个步骤: 1. 数据预处理:包括数据清洗、特征选择、数据转换等。 2. 模型训练:利用训练集数据构建多个决策树,并通过随机选择特征和样本来增加模型的多样性。 3. 模型预测:使用训练好的随机森林模型对新的数据进行预测,通过投票或平均值来确定最终结果。 4. 模型评估:通过交叉验证或其他评估方法,对模型进行性能评估,并调整模型参数以提高预测准确度。 总的来说,无论使用Fortran还是R语言实现随机森林,都需要了解相应的语言特性和机器学习算法的理论基础。根据实际需求和数据规模选择适当的实现方式,可以提高模型的性能和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值