weka之ZeroR

http://www.cnblogs.com/7899-89/p/3630193.html

构造分类器函数


    @Override
    public void buildClassifier(Instances instances) throws Exception 
    {
        //判断算法能否处理种种类型的数据
        getCapabilities().testWithFail(instances);
        //删除目标属性带有缺失值的样本
        instances=new Instances(instances);
        instances.deleteWithMissingClass();

        double sumOfWeights=0;

        m_Class=instances.classAttribute();
        m_ClassValue=0;
        switch (instances.classAttribute().type())
        {
        case Attribute.NUMERIC:
            m_Counts=null;
            break;
        case Attribute.NOMINAL:
            m_Counts=new double[instances.numClasses()];
            for(int i=0;i<m_Counts.length;i++)
            {
                m_Counts[i]=1;
            }
            sumOfWeights=instances.numClasses();
            break;
        default:
            break;
        }

        Enumeration enumInst=instances.enumerateInstances();
        while (enumInst.hasMoreElements()) 
        {
            Instance inst = (Instance) enumInst.nextElement();
            if(!inst.classIsMissing())
            {
                if(instances.classAttribute().isNominal())
                {
                    m_Counts[(int)inst.classValue()]+=inst.weight();
                }
                else
                {
                    m_ClassValue+=inst.weight()*inst.classValue();
                }
                sumOfWeights+=inst.weight();
            }
        }

        if(instances.classAttribute().isNumeric())
        {
            if(Utils.gr(sumOfWeights, 0))
            {
                m_ClassValue/=sumOfWeights;
            }
        }
        else
        {
            m_ClassValue=Utils.maxIndex(m_Counts);
            Utils.normalize(m_Counts, sumOfWeights);
        }
    }

源码解析(pdf文件)下载地址:
http://download.csdn.net/detail/kaikai_sk/9850105

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值