zoukankan      html  css  js  c++  java
  • weka使用笔记3---classfily API调用

    分类器在数据挖掘中的作用不言而喻,weka中的分类器有很多种类型,但是weka在输出结果中,只输出了一个分类的预测的类型,没有输出分类的得分,有一些不给力。如果想知道得分和其预测的类的话,就得调用weka的API。

    weka的API还是很方便的,如果我们已经输出了一个模型的话,那么用两句话就能在代码中获取这个模型:

    ObjectInputStream ob = new ObjectInputStream(new FileInputStream(model));
            Classifier classifier = (Classifier) ob.readObject();

    这样就获取了分类器的对象。

    接下来就需要获取需要预测的数据,预测数据也是必须是用.arff格式,并且要在.arff中把需要预测的字段指定出来,用?代替即可。

    读取预测数据的文件代码:

    ArffLoader loader = new ArffLoader();
            loader.setFile(new File(lablefile));
            Instances structure = loader.getStructure();
            structure.setClassIndex(structure.numAttributes()-1);
            Instance current = null;

    如果数据内容很大,我们不能把所有的数据都放到内存中,需要一条一条的对他们分类并且输出结果,需要用到如下代码:

    while ((current = loader.getNextInstance(structure)) != null) {
                outputString += classifier.distributionForInstance(current)[1];
            }

    这样就能获取一条数据的类标签,获取这条数据的值的话,去查查文档吧...或者把所有的信息都数出来一下就成了。

    ok...先记录这么多。有空再写。

  • 相关阅读:
    fixed 和 fixed
    SVN命令概要
    项目目录的划分
    作用域(scope), 定义空间(declaration space) 和 生存期(lifetime)
    可伸缩性最佳实践:来自eBay的经验(转)
    TCP连接可用性检测
    面向对象设计
    如何截取Http请求
    eBay架构
    .net3.5下的Socket通信框架
  • 原文地址:https://www.cnblogs.com/fbiswt/p/3318847.html
Copyright © 2011-2022 走看看