首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

“一棵树”不够,我便给你“整片森林”——集成机器学习方法

上一篇我们说到,为了解决单个决策树容易发生过拟合的问题,我们经常会用多棵树来代替。

这种将多个机器学习模型合并的方法,我们叫做集成。这一篇我们将主要介绍两种集成方法,分别是随机森林和梯度提升决策树。

随机森林

随机森林(Random Forest),顾名思义,它由很多棵决策树构成,而且每棵树彼此都不同。

下面来看下构造随机森林所需的步骤:

1.确定森林中树的个数

2.从数据集中采用有放回抽样,建立一个与原始数据同样大小的新数据集。

3.在每个节点处,都使用特征的一个子集来划分。

4.由2、3步所保证,随机森林中所有树木都不相同。

最后,我们将所有决策树的预测结果进行平均,就是最终的结果。

实战

加载随机森林模型

还是使用我们常用的乳腺癌数据集

接下来开始训练模型

最后来看下模型的精度

可以看到精度为95.1%,比单个决策树的泛化能力还是要强一些的。

模型的重要参数

1.n_estimators

该参数控制树的个数,我们总是希望树越多越好。树越多,模型的表现也就越好。但树越多,模型训练的时间也就越长,我们需要在时间和性能这两者之间寻找一个平衡点。

2.max_features

该参数指我们在划分时需要考虑的特征数。该值越大,那么各个树之间的差别越小,容易发生过拟合;该值越小,各个树的差别越大,会降低过拟合,但各个树的深度也越大。我们也需要找到一个平衡点来处理二者的关系。

模型的优缺点

通常来说,随机森林具有决策树所有的优点,而且其泛化能力比决策树还要强。它不需要数据的预处理,也不需要调节大量参数,就可以得到很好的效果,在实际应用中也很广泛。

但对于具有很多特征的数据来说,随机森林的表现并不如线性模型那么好。因为它要耗费大量的资源(内存、性能)去拟合数据,花费的时间会长的多。

梯度提升决策树

与决策树不同的是,梯度提升决策树(Gradient Boosting Decision Tree,GBDT)并没有一次性构造完所有的树。它在构造下一棵树时,会纠正前一棵树的错误,再进行构造。

GBDT的深度通常很小,一般在5以下,这样会加快模型运行速度。

实战

首先,加载GBDT模型

还是用我们之前的癌症数据集来训练模型

然后看下模型的泛化能力

模型的重要参数

1.n_estimators

该参数控制树的数量。树越多,模型越复杂,越容易发生过拟合。

2.max_depth

该参数控制树的深度,深度越大,树的复杂度也越大,一般来说深度不超过5.

3.learning_rate

学习率,该参数控制对前一棵树纠错的力度。学习率越大,纠正能力越强。

模型的优缺点

GBDT的优点跟随机森林类似,也是无需进行数据的预处理。

但GBDT的参数较多,需要仔细调整;而且对于特征特别多的数据,表现也不是很好。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190829A04HNR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券