weka[3] - J48(二)

J48(一)中,主要分析了分裂的策略:二叉和多叉

这一节,主要看看源码中,关于剪枝的部分。主要看PruneableClassifierTree。

buildClassify:

 public void buildClassifier(Instances data) 
       throws Exception {

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

    // remove instances with missing class
    data = new Instances(data);
    data.deleteWithMissingClass();
    
   Random random = new Random(m_seed);
   //这个看的不是太懂啊!!感觉就是随机化一下
   data.stratify(numSets);
   //trainCV:表示分成numSets后,返回前numSets-1个,然后样本随机排序
   //testCV: 表示分成numSets后,返回第numSets-1个
   buildTree(data.trainCV(numSets, numSets - 1, random),
	     data.testCV(numSets, numSets - 1), !m_cleanup);
   if (pruneTheTree) {
     prune();
   }
   if (m_cleanup) {
     cleanup(new Instances(data, 0));
   }
  }
这里主要就是buildTree,这个函数在classifierTree中。(PruneableClassifierTree继承自ClassifierTree)

还有一个是prune(),待会会分析,就是如何剪枝。

clearnup就是节省内存,把不需要的删掉。这里只是删掉数据的信息。

先看prune,再看buildTree。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值