随机森林是一种监督式算法,使用由众多决策树组成的一种集成学习方法,输出是对问题最佳答案的共识。随机森林可用于分类或回归。
1
什么是随机森林?
随机森林是用于分类和回归的一种主流集成学习方法。
集成学习方法结合了多种机器学习(ML)算法,以获得更好的模型–应用于数据科学的群体智慧。此类学习方法基于这样一种概念:一群对问题领域知之有限的人集思广益,可以获得比一个知识丰富的人更好的解决方案。
随机森林是一组决策树,是几乎人人都熟悉的解决问题的比喻。决策树通过针对数据集元素,询问一系列回答是否的问题来得出答案。在下面的示例中,为了预测一个人的收入,决策会考虑变量(特征),例如此人是否有工作(是或否)以及此人是否有房子。在算法环境中,机器会不断搜索特征,以允许将一组中的观察结果按如下方式进行分割,即结果组之间尽可能不同,而每个不同子组的成员之间尽可能相似。
随机森林使用名为“bagging”的技术,通过数据集和特征的随机自助抽样样本并行构建完整的决策树。虽然决策树基于一组固定的特征,而且经常过拟合,但随机性对森林的成功至关重要。
2
随机森林的工作原理
随机森林中的每棵树在称为自助聚集(bagging)的过程中随机对训练数据子集进行抽样。该模型适合这些较小的数据集,并汇总预测结果。通过有放回抽样,可以重复使用同一数据的几个实例,结果就是,这些树不仅基于不同的数据集进行训练,而且还使用不同的特性做出决策。
用例
分类示例包括:
>欺诈检测
>垃圾邮件检测
>文本情感分析
>预测患者风险、败血症或癌症
回归示例包括:
>预测欺诈数量
>预测销售额
3
为何选择随机森林?
随机森林模型的主要优点:
非常适合回归和分类问题。回归中的输出变量是一个数字序列,例如某个街区的房价。分类问题的输出变量通常是一个单一答案,例如房屋的售价是否高于或低于要价。
可以处理缺失值并保持高准确性,即使由于bagging和有放回抽样而缺失大量数据时也是如此。
算法由于输出的是“多数规则”,使得模型几乎不可能过拟合。
该模型可以处理包含数千个输入变量的庞大数据集,因此成为降维的不错工具。
其算法可用于从训练数据集中识别非常重要的特征。
其也有一些缺点:
随机森林优于决策树,但其准确性低于XGBoost等梯度提升树集成。
随机森林包含大量树,因此速度比XGBoost慢。
4
梯度提升决策树
梯度提升决策树(GBDT)是一种决策树集成学习算法,类似于用于分类和回归的随机森林。随机森林和GBDT都构建了由多个决策树组成的模型。两者的区别在于重建和组合的方式。
GBDT使用一种称为boosting的技术,以迭代方式训练一组浅层决策树,每次迭代都使用上一个模型的残差拟合下一个模型。最终得到的预测结果是所有树预测结果的加权总和。随机森林bagging可大幅减少差异和过拟合,而GBDTboosting则可减少偏差和欠拟合。
XGBoost(极端梯度提升)是GBDT的领先、可扩展的分布式变体。使用XGBoost时,树并行构建,而非顺序构建。GBoost遵循按层生长策略,扫描梯度值并使用这些部分和来评估训练集中每个可分割点的分割质量。
XGBoost因其广泛的用例、可移植性、多样化的语言支持以及云集成而广受欢迎。
梯度提升模型通过以低学习率进行多轮提升来消除偏差和方差。
梯度提升模型超参数也有助于消除方差。
随机森林模型使用树深度和树的数量消除偏差和方差。
随机森林树可能需要比梯度提升树更深入。
更多数据可减少偏差和方差。
5
NVIDIAGPU加速的随机森林、
XGBoost和端到端数据科学
在架构方面,CPU仅由几个具有大缓存内存的核心组成,一次只可以处理几个软件线程。相比之下,GPU由数百个核心组成,可以同时处理数千个线程。
基于CUDA-XAI创建的NVIDIARAPIDS开源软件库套件使您完全能够在GPU上执行端到端数据科学和分析流程。此套件依靠NVIDIACUDA基元进行低级别计算优化,但通过用户友好型Python接口实现了GPU并行化和高带宽显存速度。
借助RAPIDSGPUDataFrame,数据可以通过一个类似Pandas的接口加载到GPU上,然后用于各种连接的机器学习和图形分析算法,而无需离开GPU。这种级别的互操作性可通过ApacheArrow等库实现,并且可加速端到端流程(从数据准备到机器学习,再到深度学习)。
RAPIDS的机器学习算法和数学基元遵循熟悉的类似于scikit-learn的API。单块GPU和大型数据中心部署均支持XGBoost、随机森林等主流工具。针对大型数据集,相较于同等功效的CPU,这些基于GPU的实施方案能够以10到50倍的速度更快地完成任务。
NVIDIARAPIDS团队与DMLCXGBoost组织建立了紧密的合作关系,而且GPU加速XGBoost现已包括无缝嵌入式GPU加速,可显著加快模型训练速度并提高准确性。对在配备NVIDIAP100加速器和32个英特尔至强E5-2698CPU核心的系统上运行的XGBoost脚本进行的测试表明,相较于在输出质量相同的非GPU系统上运行相同的测试,速度提升了4倍。这一点尤为重要,因为数据科学家通常会多次运行XGBoost,以便调整参数并找到出色的准确性。
6
丽台AI深度学习解决方案
系统规划、软体整合、AI开发项目合作、维护服务、GPU技术服务......丽台AI深度学习解决方案,一次完成AI系统及软件建置。