醉了~~~

package edu.dcy.weka;

import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List; import weka.classifiers.Classifier;
import weka.classifiers.Evaluation;
import weka.classifiers.misc.InputMappedClassifier;
import weka.core.Attribute;
import weka.core.Instance;
import weka.core.Instances;
import weka.core.SerializationHelper;
import weka.core.Utils;
import weka.core.converters.ConverterUtils.DataSource; public class PredictModel {
public static void main(String[] args) throws Exception {
if(args.length!=3){
System.err.println("Usage: <model file> <test file > < output dir>");
System.exit(1);
}
// load data
System.out.println("loading data.....");
DataSource dstest = new DataSource(args[1]);
Instances test = dstest.getDataSet();
int attrnums=test.numAttributes();
// lack of the class lable 'Y'
if(attrnums==283){
List<String> strname = new ArrayList<String>();
strname.add("false");
strname.add("true");
Attribute attr = new Attribute("Y", strname);
test.insertAttributeAt(attr, test.numAttributes());
}
test.setClassIndex(test.numAttributes() - 1);
System.out.println("loading done.....");
System.out.println("loading predict model....."); // load classifier
Object objs[]=SerializationHelper.readAll(args[0]);
Classifier cls=(Classifier) objs[0];
InputMappedClassifier mapper =new InputMappedClassifier();
mapper.setClassifier((Classifier) objs[0]);
mapper.setModelHeader((Instances) objs[1]);
mapper.setTestStructure(test);
cls=mapper;
// output predictions
System.out.println("execute ...");
FileWriter fw=new FileWriter(args[2]);
StringBuffer sb=new StringBuffer();
sb.append("#,actual,predicted,error,p_false,p_true \n");
for (int i = 0; i < test.numInstances(); i++) {
Instance ins=test.instance(i);
double pred = cls.classifyInstance(ins);
double[] dist = cls.distributionForInstance(ins); sb.append(i+1).append(",")
.append(ins.toString(test.classIndex()))
.append(",")
.append(test.classAttribute().value((int) pred))
.append(","); if (pred != test.instance(i).classValue()) {
sb.append("yes");
} else {
sb.append("no");
} sb.append(",").append(Utils.arrayToString(dist)).append("\n"); // System.out.println(sb.toString());
fw.write(sb.toString());
fw.flush();
sb.delete(0, sb.length());
}
fw.close(); System.out.println("finished,please check the outfile .....");
// print the summary
if(attrnums==284){
Evaluation eval = new Evaluation(test);
eval.evaluateModel(cls, test);
System.out.println(eval.toClassDetailsString());
System.out.println(eval.toSummaryString());
System.out.println(eval.toMatrixString());
}
}
}

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. 【OpenGL】Shader概述

    目录(?)[-] 综述 编译一个Shader 链接一个Shader 删除一个Shader 指定使用一个Shader Program 删除一个Shader Program 备注 这篇文章讲述了Shade ...

  2. redis系列:主从复制

    1 简介 这篇文章主要讲述Redis的主从复制功能.会依次从环境搭建.功能测试和原理分析几个方面进行介绍. 2 准备工作 服务器架构图如下 启动主服务器101,使用info replication命令 ...

  3. 多值cookie

  4. Dapper.Common基于Dapper的开源LINQ超轻量扩展

    Dapper.Common Dapper.Common是基于Dapper的LINQ实现,支持.net core,遵循Linq语法规则.链式调用.配置简单.上手快,支持Mysql,Sqlserver(目 ...

  5. 【并发编程】Future模式添加Callback及Promise 模式

    Future Future是Java5增加的类,它用来描述一个异步计算的结果.你可以使用 isDone 方法检查计算是否完成,或者使用 get 方法阻塞住调用线程,直到计算完成返回结果.你也可以使用  ...

  6. 《OD大数据实战》Spark入门实例

    一.环境搭建 1. 编译spark 1.3.0 1)安装apache-maven-3.0.5 2)下载并解压 spark-1.3.0.tgz 3)修改make-distribution.sh  VER ...

  7. puppet的一个Bug

    前篇文章写了使用puppet管理500多台服务器,当然只是一部分,最主要的还是puppet脚本的编写,这个我会在以后的文章中一点一点写出来. 今天要写的是puppet的一个bug,版本是puppet ...

  8. 老男孩Day1作业(二):三级菜单

    作业需求: 1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功能 1)编写思路 编 ...

  9. CentOS编译安装GCC 4.9.2成功

    在Linux上编译安装gcc是个寻烦恼的活,对于像我这样习惯于在Windows上面使用二进制安装包的人来说,自已编译安装gcc是个相当大的挑战,今天直接挑战最新版的gcc,是4.9.2版本的,做之前查 ...

  10. eclipse对于虚拟内存的溢出处理

    第一个配置:-Xms1024m -Xmx2048m 第二个配置: 第二个配置:-XX:MaxPermSize=1024m 第三个配置就是eclipse安装包中的eclipse.ini文件 -Xms51 ...