集成算法

1、bagging(bootstrap aggregating 自助聚集)
比如做回答问题,答案是真假,让每个人都回答问题,然后投票,选择票数最多的就是答案
boosting(提升算法)adaboost
比如做回答问题,答案是真假,让每个人回答自己擅长的问题,即回答的是整体问卷的一部分,然后综合答案

决策树是一个“弱”学习器。实际上,大多数集成方法都默认使用sklearn中的决策树。

找到一个拟合能力好的机器学习模型要看两个相互竞争的变量:偏差 和 方差 。

偏差:当一个模型有高偏差,这意味它弹性差(欠拟合),不能很好拟合数据。通常具有高偏差的算法的例子是线性回归。

方差:当模型有高方差,这意味它会剧烈变化(过拟合),以满足数据集中每个点的需求。决策树作为一种高方差算法,倾向于将每个点尽可能分割成一个独立的分支。这是高方差、低偏差算法的一个特点:它们非常灵活,可以精确地拟合所见的任何数据。

将随机性引入集成

另一种用于改进集成算法的方法是先将随机性引入高方差算法,再进行集成。随机性的引入消除了这些算法的过拟合(或直接拟合数据)的趋势。引入随机性的方法主要有两种:

1.数据的自助采样法 - 也就是说,对数据先使用自助采样(或有放回的采样),再用算法拟合采样数据。

2.特征子集法 - 在决策树的每次分支中,或在使用集成的每个算法时,只使用全部可用特征的子集。

实际上,这是我们将看到的下一个算法中使用的两个随机组件,称为随机森林。随机森林就是随机选择多个列,当新用户推荐时,看每个决策树推荐的是什么,然后票数多的,作为推荐的

在这里插入图片描述在这里插入图片描述

>>> from sklearn.ensemble import AdaBoostClassifier
>>> model = AdaBoostClassifier()
>>> model.fit(x_train, y_train)
>>> model.predict(x_test)

超参数

当我们定义模型时,我们可以确定超参数。在实际操作中,最常见的超参数为:

base_estimator:弱学习器使用的模型(切勿忘记导入该模型)。
n_estimators:使用的弱学习器的最大数量。

比如,在下面的例子中,我们定义了一个模型,它使用 max_depth 为 2 的决策树作为弱学习器,并且它允许的弱学习器的最大数量为 4。

>>> from sklearn.tree import DecisionTreeClassifier
>>> model = AdaBoostClassifier(base_estimator = DecisionTreeClassifier(max_depth=2), n_estimators = 4)

在本节课,你学习了集成算法中的许多常用技术。在开始研究这些技术之前,你看到两个需要权衡的变量偏差和方差。

高偏差,低方差 模型不够灵活,常会欠拟合。线性模型属于这类模型。

高方差,低偏差 模型因为太灵活,往往会过拟合。决策树属于这类模型。

集成算法

为了能同时对方差和偏差做优化,我们采用集成算法。集成方法已成为在Kaggle比赛上最流行的方法之一,并在现实行业中广泛使用。

有两种随机化技术可以防止过拟合:

数据的自助采样法 - 也就是说,对数据先使用自助采样(或有放回的采样),再用算法拟合采样数据。

特征子集法 - 在决策树的每次分支中,或在使用集成的每个算法时,只使用全部可用特征的子集。

技术

你在本课程中看到了许多集成方法,包括:

Bagging分类器
RandomForest分类器
AdaBoost分类器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值