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...先记录这么多。有空再写。

  • 相关阅读:
    Redis连接池的介绍和原理
    Golang操作第三方开源Redis库
    Redis的五大数据类型和CRUD操作
    Redis的基本使用
    Redis数据库的基本介绍和安装
    Golang基于TCP协议实现简单的server和client聊天
    Golang反射中的Type和Kind的区别
    Golang中的常量
    Golang对基本数据类型和结构体进行反射
    Vue 使用lodash库减少watch对后台请求压力
  • 原文地址:https://www.cnblogs.com/fbiswt/p/3318847.html
Copyright © 2011-2022 走看看