weka属性选择使用
醉了~~~
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属性选择使用的更多相关文章
- CSS属性选择符
属性选择符: E[att] 选择具有att属性的E元素. <style type="text/css"> a[class]{ background-color: red ...
- #8.10.16总结# 属性选择符 伪对象选择符 CSS的常用样式
属性选择符 E[att] E[att="val"] E[att~="val"] E[att^="val"] E[att$="val ...
- CSS3初学篇章_3(属性选择符/字体样式/元素样式)
属性选择符 选择符 说明 E[att] 选择具有att属性的E元素. E[att="val"] 选择具有att属性且属性值等于val的E元素. E[att~=&quo ...
- CSS3添加属性选择: [attribute*=value] 、[attribute^=value] 和[attribute$=value]
在CSS3新的 [attribute*=value] .[attribute^=value] 和[attribute$=value] 三个选择.使得属性选择使用通配符概念. 下面是利用这三个属性样本代 ...
- 强大的CSS 属性选择符 配合 stylish 屏蔽新浪微博信息流广告
新建一条微博域名下的规则: @-moz-document domain("weibo.com") { #v6_pl_rightmod_rank,#v6_pl_rightmod_ad ...
- Vue实现仿淘宝商品详情属性选择的功能
Vue实现仿淘宝商品详情属性选择的功能 先看下效果图:(同个属性内部单选,属性与属性之间可以多选) 主要实现过程: 所使用到的数据类型是(一个大数组里面嵌套了另一个数组)具体格式如下: attrA ...
- JQuery 多属性选择节点
JQuery 1.6.0+以后用prop()代替attr(); 多属性选择节点 $("input[type=checkbox][name='first2'][value='first4']& ...
- 前端实现商品sku属性选择
一.效果图 二.后台返回的数据格式 [{ "saleName": "颜色", "dim": 1, "saleAttrList&qu ...
- CSS选择符-----属性选择符
Element[att] 选择具有att属性的E元素 <!DOCTYPE html> <html> <head> <meta charset=" ...
随机推荐
- AutoCAD 2014 在Server 2008 中 十字光标很慢
另外,请在你们的Windows Server上增加如下注册表: On both Windows Server 2008 R2 and Windows Server 2012 create E ...
- Codeforces Round #520 (Div. 2)B(贪心,数学)
#include<bits/stdc++.h>using namespace std;int mi[100007];int main(){ int cnt=0; int flag=0; i ...
- Java8 使用 stream().map()提取List对象的某一列值及排重
List对象类(StudentInfo) public class StudentInfo implements Comparable<StudentInfo> { //名称 privat ...
- Zabbix监控系统配置之-自动发现规则入门
假设你已经知道[模板-监控项-监控项原型-自动发现规则]之间的关系.(此处应有关系图,待填坑) 1. 添加模板 我新建了一个名叫Dapianzi SNMP Linux的模板,里面添加了已经启动了SNM ...
- Spring MVC 基于Method的映射规则(注解版)
在Restful风格的web开发中,根据不同的请求方法使用相应的控制器处理逻辑成为核心需求,下面就看看如何在Spring MVC中识别不同的请求方法. 请求方法 在Http中,请求的方法有很多种,最常 ...
- C#网络编程学习(5)---Tcp连接中出现的粘包、拆包问题
本文参考于CSDN博客wxy941011 1.疑问 我们使用第四个博客中的项目. 修改客户端为:连接成功后循环向服务器发送从1-100的数字.看看服务器会不会正常的接收100次数据. 可是我们发现服务 ...
- 60个DevOps开源工具,你在用哪些?
你喜欢免费的东西吗?获得开发者社区支持的自动化,开源的工具是大家梦寐以求的.这里列举了 60 多款最棒的开源工具,可以帮助你很好的实行 DevOps. 一.开发工具 版本控制&协作开发 1.版 ...
- 解决Win10中vmware运行特别慢问题
1.关闭防火墙:win+S打开搜索框,输入防火墙,选择windowsDefender防火墙 ,如图: 2.启用或关闭防火墙,如图: 3.关闭防火墙,两个选项都关闭,如图: 4.打开VMware,如果速 ...
- win下rabbitmq的安装
安装erlang 10.4 和 rabbitmq 3.7.5 然后关闭rabbitmq服务 然后设置 erlang和rabbitmq的环境变量 ERLANG_HOME=erlang安装目录 RABBI ...
- 离散数学——python实现真值表和打印主范式
最近用python实现了真值表,经过有点儿曲折,刚开始没考虑优先级,直到前天才发现这个问题(离散数学没学好啊),用栈改了一下.话说python就是强,把列表类型当栈用,直接调用列表的pop()和app ...