Weka算法Classifier-meta-Bagging源码分析

本文深入分析了Weka中的Classifier-meta-Bagging算法,详细介绍了Bagging的基本概念及其在机器学习中的作用。内容涵盖Bagging的训练和预测流程,并重点解析了Weka中Bagging的代码实现,特别是有放回抽样和Out-of-Bag误差评估。默认基分类器为REPTree,文章还探讨了如何通过resampleWithWeight方法进行样本抽样。
摘要由CSDN通过智能技术生成


Bagging部分比较简单,算法和代码放到一起写了。


一、Bagging算法

严格来看Bagging并不能算是一种分类算法,Bagging和Boosting一样,是一种组合基本分类器的方法,也就是使用多个基分类器来获取更为强大的分类器,其核心思想是有放回的抽样。


Bagging算法的训练流程:

1、从样本集中有放回的抽样M个样本。

2、用这M个样本训练基分类器C。

3、重复这个过程X次,得到若干个基分类器。


Bagging算法的预测流程:

1、对于新传入实例A,用这X个新分类器得到一个分类结果的列表。

2、若待分类属性是数值型(回归),求这个列表的算数平均值作为结果返回。

3、若待分类属性是枚举类型(分类),按这个列表对分类结果进行投票,返回票数最高的。


二、Weka代码实现

(1)基分类器

Weka中的默认基分类器使用的是REPTree,也就是Fast decision tree learner,至于这个具体是个什么,后面我再写文章进行分析。

 public Bagging() {

    m_Classifier = new weka.classifiers.trees.REPTree();
  }


(2)构建过程BuildClassifier

整个BuildClassifier都是围绕标m_CalcOutOfBag来展开的,这个m_CalcOutOfBag标识的意思是:是否计算OutofBag的错误比例。

假如我们对训练集M进行抽样,抽样的数量和M的数量是一样的,那么肯定会有一些样本并没有被抽到(为什么?因为是有放回的抽样),这个标识就是用来评测这些没抽到的样本的准确率,如果没有这个标,那么这个准确率到后面就

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值