机器学习(周志华)学习笔记九:集成学习(下)

前文:集成学习(上)

一、Bagging思想

相比于AdaBoost算法,Bagging算法的思想较为简单。
基于同样的样本集,训练出相互之间独立性较高的基学习器。
这一点很容易理解,独立性体现了多样性,只有充满多样性的思想,才更有可能发现出内在的规律。思想的多样性,不仅是对机器,对我们人类同样是重要的。

二、Bagging算法

那么如何训练独立性较高的基学习器呢?就是让基学习器从样本集中有放回地随机挑选样本,组成新的样本集。也就是实行“选修”制度,恰巧被多次选中的样本从也能反映出更高的权重,将会被重点学习。

例如,对于训练集x=[x1, x2, …, xn]和某一个基学习器hk,则基学习器挑选的样本集有可能是xk=[x1, x1, x2, x3…, xn-1],那么
对于学习器hk来说,x1将是这次学习中较为重点的样例。

习题8.4运行结果

1、基学习器数量为3时:

基学习器数量:
 3
Bagging分类结果:
 [ 1.  1.  1.  1.  1.  1. -1.  1. -1.  1. -1. -1. -1.  1.  1. -1. -1.]
实际分类:
 [ 1  1  1  1  1  1  1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1]7个数据分类错误
第10个数据分类错误
第14个数据分类错误
第15个数据分类错误

3个基学习器
2、基学习器数量为11时:

基学习器数量:
 11
Bagging分类结果:
 [ 1.  1.  1.  1.  1.  1. -1.  1. -1.  1. -1. -1. -1. -1.  1. -1. -1.]
实际分类:
 [ 1  1  1  1  1  1  1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1]7个数据分类错误
第10个数据分类错误
第15个数据分类错误

11个基学习器
3、基学习器数量为1000时:

基学习器数量:
 1000
Bagging分类结果:
 [ 1.  1.  1.  1.  1.  1. -1.  1. -1.  1. -1. -1. -1.  1.  1. -1. -1.]
实际分类:
 [ 1  1  1  1  1  1  1  1 -1 -1 -1 -1 -1 -1 -1 -1 -1]7个数据分类错误
第10个数据分类错误
第14个数据分类错误
第15个数据分类错误

1000个基学习器

三、结果分析及对比

1、Bagging运行结果分析:
本例中,采用“决策树桩”为基学习器。从结果可知,3、11、1000个基学习器时,学习结果没有大的差别。可见采用“决策树桩”这种弱学习器时,Bagging的分类效果并不理想。

2、与基学习器为“决策树”的Bagging对比:
在《机器学习》180页图8-6中,展示了基学习器为“决策树”时的运行结果,如下:
决策树Bagging

3、与AdaBoost对比
AdaBoost结果请参考前文:集成学习(上)
前文中,AdaBoost也是采用“决策树桩”为基学习器,因此可以与本文结果进行对比。

结合上面的对比,可以猜想由于每一个基学习器训练集的样本完全随机,这就导致挑选出来的训练集的样本分布可能不利于学习器得出正确结果。在基学习器为“决策树桩”这种弱学习器时,这种现象更为明显。

四、部分程序代码

    def learn(self):
        ht = np.zeros(17)
        for t in range(self.tree_num):
            tree = self.trees[t]
            samples_index = []
            # 生成样本分布
            for i in range(self.m):
                samples_index.append(random.choice(list(range(17))))
            samples = tree.init_samples(samples_index)
            tree.tree_generate(samples, [0, 1])
            test_set = tree.init_test_set(list(range(17)))
            # 累加即相当于进行投票
            ht += tree.judge(test_set)

        hx = np.sign(ht)
        hx[hx[:] == 0] = random.choice([-1, 1])
        return hx

完整程序代码【集成学习.zip】

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌哒哒虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值