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

  • 相关阅读:
    (14)python函数与变量
    ①③python中的字符串与字符编码
    ①②python文件操作及文件增删改查
    rsa公钥私钥
    MySQL创建数据库和表
    Rsync + Innotify 部署实例
    LNMPT部署示例
    Nginx 调优
    Nginx 二进制方式安装
    wget & curl 命令
  • 原文地址:https://www.cnblogs.com/fbiswt/p/3318847.html
Copyright © 2011-2022 走看看