weka[5] - Bagging

从决策树到Bagging,其实一点也不突兀。决策树是一个很基本的分类器,但是他容易Overfitting(因为细节分的太细,因此要引入剪枝策略)。

所谓的Overfitting可以这么理解,简单的模型能表达的东西更多,复杂的模型虽然更精确,但是可表达的东西较少。这时候,如果我的training data本身不具有全局代表性,同时我的分类器如果过于复杂,就更加无法表达样本集以外的特性,那么很可能就是有很小的training error,但是testing error很大。

所以一个可靠的办法是Bagging,把大量的base learner组合起来。比较典型的以决策树为base learner的算法有Random Forest、 VR-Trees。

Bagging的基础是希望base learner彼此独立(这样有严格的全局误差的upper bound),但是一般是做不到independent。于是,如果base learner如果是不稳定的,那么也能很大提升最后的结果。

Bagging的背景,先做这样的简单介绍,本篇主要是分析weka中Bagging代码,然后为下一篇random forests做准备。

BuildClassifier拆成几个部分(按顺序):

// can classifier handle the data?
    getCapabilities().testWithFail(data);

    // remove instances with missing class
    data = new Instances(data);
    data.deleteWithMissingClass();

    //IteratedSingleClassifierEnhancer: 默认复制m_Classifier 10遍
    super.buildClassifier(data);
    
    //m_CalcOutOfBag: 是否计算OOB error
    if (m_CalcOutOfBag && (m_BagSizePercent != 100)) {
      throw new IllegalArgumentException("Bag size needs to be 100% if "
          + "out-of-bag error is to be
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值