Weka算法Classifier-trees-REPTree源码分析(二)

(接上篇)


一、剪枝过程

上篇分析完了tree节点的构建过程,在REPTree.buildClassifier之后如果设置了剪枝选项,则还有一个剪枝和backfit过程。

    if (!m_NoPruning) {
      m_Tree.insertHoldOutSet(prune);
      m_Tree.reducedErrorPrune();
      m_Tree.backfitHoldOutSet();
    }


其中insertHoldOutSet就是把剪枝用到的数据集传进去,不具体的区跟代码了。

重点卡一下reducedErrorPrune和backfitHoldOutSet过程。


二、Tree.reducedErrorPrune

    protected double reducedErrorPrune() throws Exception {
<span style="white-space:pre">	</span>//这个函数会返回该树及其子树的一个错误情况,如果是枚举类型返回的是分错的instance数量,数值类型返回的是与正确值的偏差的平方和
      // 如果是叶子节点就不做任何操作
      if (m_Attribute == -1) {
	return m_HoldOutError;//简单的说一下这个error怎么计算来的,使用<span style="font-size:18px;">insertHoldOutSet传入数据时会根据原先训练时的分布,来预测出传入数据的class,然后根据这个结果和真正的class值进行比对,就知道是否分的正确了</span>
      }

      //计算一下所有的子树的偏差
      double errorTree = 0;
      for (int i = 0; i < m_Successors.length; i++) {
	errorTree += m_Successors[i].reducedErrorPrune();
      }

      if (errorTree >= m_HoldOutError) {
	m_Attribute = -1;//如果子树偏差大于本身的偏差,那子树就没啥存在的意义了,直接去掉。
	m_Successors = null;
	return m_HoldOutError;
      } else {
	return errorTree;
      }
    }
可以看出,这个剪枝过程和J48相比还是简单不
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Weka的数据分类分析实验报告范文全文共6页,当前为第1页。基于Weka的数据分类分析实验报告范文全文共6页,当前为第1页。基于Weka的数据分类分析实验报告范文 基于Weka的数据分类分析实验报告范文全文共6页,当前为第1页。 基于Weka的数据分类分析实验报告范文全文共6页,当前为第1页。 1实验目的 使用数据挖掘中的分类算法,对数据集进行分类训练并测试。应用不同的分类算法,比较他们之间的不同。与此同时了解Weka平台的基本功能与使用方法。 2实验环境 2.1Weka介绍 Weka是怀卡托智能分析系统的缩写,该系统由新西兰怀卡托大学开发。Weka使用Java写成的,并且限制在GNU通用公共证书的条件下发布。它可以运行于几乎所有操作平台,是一款免费的,非商业化的机器学习以及数据挖掘软件。Weka提供了一个统一界面,可结合预处理以及后处理方法,将许多不同的学习算法应用于任何所给的数据集,并评估由不同的学习方案所得出的结果。 图1Weka主界面 Weka系统包括处理标准数据挖掘问题的所有方法:回归、分类、聚类、关联规则以及属性选择。分析要进行处理的数据是重要的一个环节,Weka提供了很多用于数据可视化和与处理的工具。输入数据可以有两种形式,第一种是以ARFF格式为代表的文件;另一种是直接读取数据库表。 使用Weka的方式主要有三种:第一种是将学习方案应用于某个数据集,然后分析其输出,从而更多地了解这些数据;第种是使用已经学习到的模型对新实例进预测;第三种是使用多种学习器,然后根据其性能表现选择其中一种来进行预测。用户使用交互式界面菜单中选择一种学习方基于Weka的数据分类分析实验报告范文全文共6页,当前为第2页。基于Weka的数据分类分析实验报告范文全文共6页,当前为第2页。法,大部分学习方案都带有可调节的参数,用户可通过属性列表或对象编辑器修改参数,然后通过同一个评估模块对学习方案的性能进行评估。 基于Weka的数据分类分析实验报告范文全文共6页,当前为第2页。 基于Weka的数据分类分析实验报告范文全文共6页,当前为第2页。 2.2数据和数据集 根据应用的不同,数据挖掘的对象可以是各种各样的数据,这些数据可以是各种形式的存储,如数据库、数据仓库、数据文件、流数据、多媒体、网页,等等。即可以集中存储在数据存储库中,也可以分布在世界各地的网络服务器上。 大部分数据集都以数据库表和数据文件的形式存在,Weka支持读取数据库表和多种格 式的数据文件,其中,使用最多的是一种称为ARFF格式的文件。 ARFF格式是一种Weka专用的文件格式,Weka的正式文档中说明AREF代表Attribute-RelationFileFormat(属性-关系文件格式)。该文件是ASCII文本文件,描述共享一组属性结构的实例列表,由独立且无序的实例组成,是Weka表示数据集的标准方法,AREF不涉及实例之间的关系。 3数据预处理 本实验采用Weka平台,数据使用Weka安装目录下data文件夹下的默认数据集iri.arff。 Iri是鸢尾花的意思,鸢尾花是鸢尾属植物,是一种草本开花植物的统称。鸢尾花只有三枚花瓣,其余外围的那三瓣乃是保护花蕾的花萼,只是由于这三枚瓣状花萼长得酷似花瓣,以致常常以假乱真,令人难以辨认。 基于Weka的数据分类分析实验报告范文全文共6页,当前为第3页。基于Weka的数据分类分析实验报告范文全文共6页,当前为第3页。由于本次使用平台自带的ARFF格式数据,所以不存在格式转换的过程。实验所用的ARFF格式数据集如图2所示。 基于Weka的数据分类分析实验报告范文全文共6页,当前为第3页。 基于Weka的数据分类分析实验报告范文全文共6页,当前为第3页。 图2AREF格式数据集(iri.arff) 鸢尾花的数据集包括三个类别:IriSetoa(山鸢尾)、IriVericolour(变色鸢尾)和IriVirginica(维吉尼亚鸢尾),每个类别各有50个实例。数据集定义了5个属性:epallength(花萼长)、epalwidth(花萼宽)、petallength(花瓣长)、petalwidth(花瓣宽)、cla(类别)。最后一个属性一般作为类别属性,其余属性都是数值,单位为cm(厘米)。 实验数据集中所有的数据都是实验所需的,因此不存在属性筛选的问题。若所采用的数 据集中存在大量的与实验无关的属性,则需要使用weka平台的Filter(过滤器)实现属性的筛选。 实验所需的训练集和测试集均为iri.arff。 4实验过程及结果 应用iri.arff数据集,分别采用LibSVM、C4.5决策树分类器和朴素贝叶斯分类器进行测试和评价,分别在训练数据上训练分类模型,找出各个模型最优的参数值,并对三个模型进行全面评价比较,得到一个最

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值