醉了~~~

  1. package edu.dcy.weka;
  2. import java.io.FileWriter;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import weka.classifiers.Classifier;
  6. import weka.classifiers.Evaluation;
  7. import weka.classifiers.misc.InputMappedClassifier;
  8. import weka.core.Attribute;
  9. import weka.core.Instance;
  10. import weka.core.Instances;
  11. import weka.core.SerializationHelper;
  12. import weka.core.Utils;
  13. import weka.core.converters.ConverterUtils.DataSource;
  14. public class PredictModel {
  15. public static void main(String[] args) throws Exception {
  16. if(args.length!=3){
  17. System.err.println("Usage: <model file> <test file > < output dir>");
  18. System.exit(1);
  19. }
  20. // load data
  21. System.out.println("loading data.....");
  22. DataSource dstest = new DataSource(args[1]);
  23. Instances test = dstest.getDataSet();
  24. int attrnums=test.numAttributes();
  25. // lack of the class lable 'Y'
  26. if(attrnums==283){
  27. List<String> strname = new ArrayList<String>();
  28. strname.add("false");
  29. strname.add("true");
  30. Attribute attr = new Attribute("Y", strname);
  31. test.insertAttributeAt(attr, test.numAttributes());
  32. }
  33. test.setClassIndex(test.numAttributes() - 1);
  34. System.out.println("loading done.....");
  35. System.out.println("loading predict model.....");
  36. // load classifier
  37. Object objs[]=SerializationHelper.readAll(args[0]);
  38. Classifier cls=(Classifier) objs[0];
  39. InputMappedClassifier mapper =new InputMappedClassifier();
  40. mapper.setClassifier((Classifier) objs[0]);
  41. mapper.setModelHeader((Instances) objs[1]);
  42. mapper.setTestStructure(test);
  43. cls=mapper;
  44. // output predictions
  45. System.out.println("execute ...");
  46. FileWriter fw=new FileWriter(args[2]);
  47. StringBuffer sb=new StringBuffer();
  48. sb.append("#,actual,predicted,error,p_false,p_true \n");
  49. for (int i = 0; i < test.numInstances(); i++) {
  50. Instance ins=test.instance(i);
  51. double pred = cls.classifyInstance(ins);
  52. double[] dist = cls.distributionForInstance(ins);
  53. sb.append(i+1).append(",")
  54. .append(ins.toString(test.classIndex()))
  55. .append(",")
  56. .append(test.classAttribute().value((int) pred))
  57. .append(",");
  58. if (pred != test.instance(i).classValue()) {
  59. sb.append("yes");
  60. } else {
  61. sb.append("no");
  62. }
  63. sb.append(",").append(Utils.arrayToString(dist)).append("\n");
  64. // System.out.println(sb.toString());
  65. fw.write(sb.toString());
  66. fw.flush();
  67. sb.delete(0, sb.length());
  68. }
  69. fw.close();
  70. System.out.println("finished,please check the outfile .....");
  71. // print the summary
  72. if(attrnums==284){
  73. Evaluation eval = new Evaluation(test);
  74. eval.evaluateModel(cls, test);
  75. System.out.println(eval.toClassDetailsString());
  76. System.out.println(eval.toSummaryString());
  77. System.out.println(eval.toMatrixString());
  78. }
  79. }
  80. }

weka属性选择使用的更多相关文章

  1. CSS属性选择符

    属性选择符: E[att] 选择具有att属性的E元素. <style type="text/css"> a[class]{ background-color: red ...

  2. #8.10.16总结# 属性选择符 伪对象选择符 CSS的常用样式

    属性选择符 E[att] E[att="val"] E[att~="val"] E[att^="val"] E[att$="val ...

  3. CSS3初学篇章_3(属性选择符/字体样式/元素样式)

    属性选择符  选择符  说明  E[att]  选择具有att属性的E元素.  E[att="val"]  选择具有att属性且属性值等于val的E元素.  E[att~=&quo ...

  4. CSS3添加属性选择: [attribute*=value] 、[attribute^=value] 和[attribute$=value]

    在CSS3新的 [attribute*=value] .[attribute^=value] 和[attribute$=value] 三个选择.使得属性选择使用通配符概念. 下面是利用这三个属性样本代 ...

  5. 强大的CSS 属性选择符 配合 stylish 屏蔽新浪微博信息流广告

    新建一条微博域名下的规则: @-moz-document domain("weibo.com") { #v6_pl_rightmod_rank,#v6_pl_rightmod_ad ...

  6. Vue实现仿淘宝商品详情属性选择的功能

    Vue实现仿淘宝商品详情属性选择的功能 先看下效果图:(同个属性内部单选,属性与属性之间可以多选) 主要实现过程: 所使用到的数据类型是(一个大数组里面嵌套了另一个数组)具体格式如下:   attrA ...

  7. JQuery 多属性选择节点

    JQuery 1.6.0+以后用prop()代替attr(); 多属性选择节点 $("input[type=checkbox][name='first2'][value='first4']& ...

  8. 前端实现商品sku属性选择

    一.效果图 二.后台返回的数据格式 [{ "saleName": "颜色", "dim": 1, "saleAttrList&qu ...

  9. CSS选择符-----属性选择符

       Element[att] 选择具有att属性的E元素 <!DOCTYPE html> <html> <head> <meta charset=" ...

随机推荐

  1. codeforces 367B

    题目代码到是不难但是很难想通题目的解决方法. #include<iostream> using namespace std; ]; int main() { int n,m; while( ...

  2. vue -- 项目调试

    方式1:vue-devtools插件 vue-devtools是一款基于chrome游览器的插件,用于调试vue应用,这可以极大地提高我们的调试效率. 使用步骤 1. 到github下载:https: ...

  3. 图解linux安装hadoop

    安装步骤: 一.准备工作 1.解压文件 [root@localhost soft]# tar -zxvf hadoop-2.4.1.tar.gz 2.改名: [root@localhost soft] ...

  4. 2017-10-3 清北刷题冲刺班p.m

    a [问题描述]你是能看到第一题的 friends 呢.——hja给你一个只有小括号和中括号和大括号的括号序列,问该序列是否合法.[输入格式]一行一个括号序列.[输出格式]如果合法,输出 OK,否则输 ...

  5. 谈谈Vue/React中的虚拟DOM(vDOM)与Key值

    谈谈Vue/React中的虚拟DOM(vDOM)与Key值 一.DocumentFragment 在了解虚拟DOM前,先来了解DOM的一个对象属性--DocumentFragment. 在一次操作中, ...

  6. 需要命名空间管理器或 XsltContext。此查询具有前缀、变量或用户定义的函数 及 多属性节点查询

    第一个问题, 1. 首先需要引入命名空间, 2. 其次,在用xpath查找结点时,在selectNodes等方法中再次带入命名空间 如 XmlDocument doc = new XmlDocumen ...

  7. 任务计划cron

    在linux中,任务计划分俩:未来时间只执行一次和周期性执行 at:未来时间只执行一次 -V 显示版本信息 -l: 列出指定队列中等待运行的作业:== atq -d: 删除指定的作业:== atrm ...

  8. 旅行青蛙分析(Android篇)

    近期旅行青蛙这款游戏非常的火热,周围的朋友.家人都养了一只小青蛙.看到网上有人说这款游戏可以直接逆向编译,没有加密:所以在搜索相关资料后花了一些时间进行逆向分析与修改.这篇文章里,我将介绍如何获取稀有 ...

  9. 我的Android Studio配置

    Android Studio固然好用,但是刚从Eclipse转移到Android Studio上难免有很多不便,现在集中整理一下AS与Eclipse的区别,使得AS更好用. 快捷键Keymap到Ecl ...

  10. springBoot实现socketio

    https://github.com/mrniko/netty-socketio-demo https://github.com/mrniko/netty-socketio