上一次我们讲到了决策树的应用,但其实我们发现单棵决策树的效果并不是那么的好,有什么办法可以提升决策树的效果呢?这就是今天要提到的Bagging思想。
其实对于Bagging早有耳闻,知道它是一种提升的办法,但之前总在想它的名字是什么含义?装袋?是通过某种抽样的意思吗?对了一半,它确实和抽样有关,但并不是什么装袋,Bagging是Bootstrap aggregation的缩写,直译就是有放回抽样的集合,事实上它也是这么做的,基本的过程如下所示:
1 从样本有重复地抽取n个样本
2 在所有的属性上,对这n个样本建立分类器
3 重复上述过程m次,得到m个分类器
4 将数据放在这m个分类器上分类,最终结果由所有分类器结果投票决定
其实也就是说,我拿到训练集后,我不是一下子把所有的数据都拿去训练,得到一个分类器做一锤子买卖。而是不断地从中选出若干个数据,然后用这若干个数据训练得到若干个分类器,再把测试数据放在这若干个分类器上用投票得到最终的结果。那如果我每个分类器分类正确的概率是60%,假如这若干个分类器是独立的,那么我用10个分类器,那么最终得到正确答案的概率就是1-40%^10=99.99%,是不是质的提升呢O(∩_∩)O~所以啊,弱分类器没关系,我有Bagging啊,人多力量大,三个臭皮匠还顶一个诸葛亮呢。
接下来,我们来实际见证一下Bagging对分类器的提升。
同样的还是上回所用的鸢尾花数据,我们用决策树分类器和Bagging分类器分别做一次比较一下差距在哪儿
import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection impor

最低0.47元/天 解锁文章
1889

被折叠的 条评论
为什么被折叠?



