醉了~~~

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());
}
}
}

最新文章

  1. Spring面试题
  2. java观察者模式的实现
  3. UVALive 6887 Book Club 最大流解最大匹配
  4. iOS开发 画六边形(多边形)
  5. NLP自然语言处理学习笔记三(集成开发环境)
  6. Nop关键技术点概述
  7. CUDA编程-(3)图形流水线时代
  8. 平衡树(AVL)详解
  9. S2SH简单介绍和理解
  10. PHP设计模式笔记二:面向对象 -- Rango韩老师 http://www.imooc.com/learn/236
  11. Gridview 多重表头 (一)
  12. Mac上小巧实用的GIF格式录屏软件 LICEcap
  13. Python+requests库 POST接口图片上传
  14. hdu--1316--How Many Fibs?(java大数)
  15. 201521123117 《Java程序设计》第13周学习总结
  16. React 16.3来了:带着全新的Context API
  17. 并发容器学习—ConcurrentSkipListMap与ConcurrentSkipListSet 原
  18. 转://使用showplan.sql分析sql Performance
  19. 4S店的潜规则内幕曝光
  20. python之if __name__ == &#39;__main__&#39;

热门文章

  1. JWT使用过程中遇到的问题
  2. 常见的web漏洞及其防范
  3. AngularJs详细
  4. 老男孩Day1作业(一):编写登录接口
  5. ShardingJDBC(一)-转载
  6. MySQL服务器与MySQL57服务器区别与不同处在哪里,他们各自的领域范围,能不能同时启动服务?
  7. vue中比较完美请求的栗子(使用 axios 访问 API)
  8. Flask&amp;&amp;人工智能AI --2
  9. 转 oracle数据仓库部署注意事项(OLAP)
  10. 09.Spring Bean 注册 - BeanDefinitionRegistry