首页 > 编程知识 正文

随机森林算法是神经网络吗,简述随机森林算法基本思想

时间:2023-05-06 02:10:19 阅读:24402 作者:3098

随机林是一种灵活、易于使用的机器学习算法,在大多数情况下,即使没有超参数调整,也能获得良好的结果。 这也是最常用的算法之一,很简单,既可以用于分类,也可以用于回归任务。 本文介绍了随机森林算法的工作原理和适用范围。

机器学习算法之随机森林算法工作原理随机森林是一种监控学习算法。 如你所见,它创造了森林,使之具有某种随机性。 构建的“森林”是决策树的集成,大多数情况下都是用“bagging”方法训练的。 bagging方法,即bootstrap aggregating,利用随机返回的选择训练数据构建分类器,结合最后学习的模型提高整体效果。

简而言之,随机森林创建多个决策树,并将它们集成以获得更准确、更稳定的预测。 随机森林的一大优点是它可以同时用于分类和回归问题。 这些问题构成了当今大多数机器学习系统需要面对的问题。 接下来,研究随机森林如何用于分类问题。 因为分类有时是机器学习的基础。 下图显示了两棵树的随机森林看起来如何:

除少数例外情况外,随机森林分类器使用所有决策树分类器和bagging分类器的超级参数来控制整体结构。 与首先构建bagging分类器并将它传递给决策树分类器相比,直接使用随机森林分类器类对决策树更方便、更优化。 需要注意的是,回归问题也同样支持随机森林回归器。

随机森林算法中树的生长会给模型带来额外的随机性。 与决策树不同,每个节点被划分为最小化误差的最佳特征,并选择随机森林中随机选择的特征构建最佳划分。 因此,随机林还可以通过仅考虑用于划分节点的随机子集并对每个特征使用随机阈值来使树更随机,而不是像常规决策树那样搜索最佳阈值。 这个过程产生了广泛的多样性,通常可以得到更好的模型。

一个更容易理解算法的例子

想象一下,一个叫ladpw的人想知道他在一年的假期旅行中应该去哪里。 他会向认识他的朋友们咨询建议。

一开始,他去找朋友,问ladpw去过哪里,喜欢还是不喜欢。 可以根据这些回答向ladpw提供建议。 这是一种典型的决策树算法。

朋友通过ladpw的回答,制定了指导值得推荐的地方的规则。 后来,ladpw开始征求越来越多朋友们的建议。 他们向他提出不同的问题,并从中提出一些建议。 最后,ladpw选择了最推荐的位置。 这就是典型的随机森林算法。

机器学习算法之随机森林算法的特征的重要性

随机森林算法的另一个优点是可以容易地测量每个特征对预测的相对重要性。 Sklearn为此提供了一个很好的工具,通过研究使用该特征使森林中所有树的不纯度减少了多少来衡量特征的重要性。 训练后,自动计算每个特征的分数,并标准化结果,使所有特征的重要度之和为1。

如果您不知道决策树是如何工作的,也不知道什么是叶子或节点,请参见维基百科说明。 在决策树中,每个内部节点表示属性类型的“测试”,每个分支表示测试的结果,每个叶节点表示类标签。 在计算所有属性后确定。 叶子是指没有下一个分支的节点。

通过确认特征的重要性,可以知道哪些特征对预测过程没有充分贡献或贡献,并可以决定是否放弃它们。 这是非常重要的。 这是因为一般来说,机器学习具有的特征越多,模型拟合的可能性就越大,反之亦然。

下面是一个显示13个特征重要性的表格和可视化图表。 我在监控和分类项目中使用了kaggle知名的Titanic数据集。

决策树与随机森林的区别

如前所述,随机森林是决策树的集合,但仍有一些差异。

在决策树中输入具有特性和标签的培训数据集时,将创建用于预测的规则集。

例如,如果有人想预测是否有人单击在线广告,则可以收集该广告过去的单击者及其决定的特征。 将这些特征和标签放入决策树后,会生成节点和一些规则,可以预测广告是否会被点击。 但是,决策树通常通过计算信息增益和基尼指数来生成节点和规则,而随机森林是随机的。

另一个区别是,“深度”决策树经常遇到拟合问题。 通过创建随机特征的子集,使用这些子集构建小树并构建子树,随机林可以防止大多数情况下的过拟合。 请注意,这同时减慢了计算速度,取决于随机森林构建的树的数量。

机器学习算法之随机森林算法重要的超参数随机林中的参数用于提高模型的预测能力或使模型更快。 介绍sklearns中内置的随机森林函数的超级参数。

提高模型的预测精度

首先," n_estimators "超级参数表示在算法进行最大投票之前或取得预测平均值之前建立的树的数量。 一般来说,树的数量越多,性能越好,预测也越稳定,

但这也会减慢计算速度。

另一个重要的超参数是“max_features”,它表示随机森林在单个树中可拥有的特征最大数量。 Sklearn提供了几个选项,在他们的文档中有描述:

http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html

最后一个重要的超参数是“min_sample_leaf”,正如其名称所述,这决定了叶子的数量。

加快模型计算速度

“n_jobs”超参数表示引擎允许使用处理器的数量。 若值为1,则只能使用一个处理器。 值为-1则表示没有限制。

“random_state”,表示随机数种子,保证模型的输出具有可复制性。 当它被赋于一个指定值,且模型训练具有相同的参数和相同的训练数据时,该模型将始终产生相同的结果。

最后,还有一个“oob_score”(也称为oob采样),它是一种随机森林交叉验证方法。 在这个抽样中,大约三分之一的数据不用于模型训练,而用来评估模型的性能。这些样本被称为袋外样本。它与留一法交叉验证方法非常相似,但几乎没有附加的计算负担。

优缺点分析

就像我之前提到的那样,随机森林的一个优点是它可以用于回归和分类任务,并且很容易查看模型的输入特征的相对重要性。

随机森林同时也被认为是一种非常方便且易于使用的算法,因为它是默认的超参数通常会产生一个很好的预测结果。超参数的数量也不是那么多,而且它们所代表的含义直观易懂。

机器学习中的一个重大问题是过拟合,但大多数情况下这对于随机森林分类器而言不会那么容易出现。因为只要森林中有足够多的树,分类器就不会过度拟合模型。

随机森林的主要限制在于使用大量的树会使算法变得很慢,并且无法做到实时预测。一般而言,这些算法训练速度很快,预测十分缓慢。越准确的预测需要越多的树,这将导致模型越慢。在大多数现实世界的应用中,随机森林算法已经足够快,但肯定会遇到实时性要求很高的情况,那就只能首选其他方法。

当然,随机森林是一种预测性建模工具,而不是一种描述性工具。也就是说,如果您正在寻找关于数据中关系的描述,那建议首选其他方法。

适用范围

随机森林算法可被用于很多不同的领域,如银行,股票市场,医药和电子商务。 在银行领域,它通常被用来检测那些比危机的巨人更高频率使用银行服务的客户,并及时偿还他们的债务。 同时,它也会被用来检测那些想诈骗银行的客户。 在金融领域,它可用于预测未来股票的趋势。 在医疗保健领域,它可用于识别药品成分的正确组合,分析患者的病史以识别疾病。 除此之外,在电子商务领域中,随机森林可以被用来确定客户是否真的喜欢某个产品。

总 结

随机森林是一种很好的算法,适合在模型开发过程的早期进行训练,了解它的工作原理,并且由于其简易性,很难构建出“糟糕”的随机森林。 如果您需要在短时间内开发模型,随机森林会是一个不错的选择。 最重要的是,它为你选择的特征提供了一个很好的重要性表示。

随机森林在性能方面也很难被击败。 当然,没有最好只有更好,你总能找到一个性能更好的模型,比如神经网络,但这类模型通常需要更多的时间来开发。 最重要的是,随机森林同时可以处理许多不同属性的特征类型,如二元的,类别的和数值的。总的来说,随机森林是一个(相对大部分而言)快速,简单且灵活的工具,尽管它存在一定的局限性。

参考文献:

       机器学习算法之随机森林算法详解及工作原理图解

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。