在Java中使用weka:创建一个ARFF文件

weka生成arff文件的简单代码 使用weka.jar包,只有两个java文件,有一个是House类(定义一个样本及其属性),还有一个就是基于House类生成每一个样本的arff文件代码 立即下载

下面的代码产生一个实例对象,作为ARFF文件输出到标准流。

产生如下类型的属性:

  • numeric
  • nominal
  • string
  • date
  • relational

AttTest.java

import weka.core.Attribute;
import weka.core.FastVector;
import weka.core.Instance;
import weka.core.Instances;

/**
 * Generates a little ARFF file with different attribute types.
 *
 * @author FracPete
 */
public class AttTest {
  public static void main(String[] args) throws Exception {
    FastVector      atts;
    FastVector      attsRel;
    FastVector      attVals;
    FastVector      attValsRel;
    Instances       data;
    Instances       dataRel;
    double[]        vals;
    double[]        valsRel;
    int             i;

    // 1. set up attributes
    atts = new FastVector();
    // - numeric
    atts.addElement(new Attribute("att1"));
    // - nominal
    attVals = new FastVector();
    for (i = 0; i < 5; i++)
      attVals.addElement("val" + (i+1));
    atts.addElement(new Attribute("att2", attVals));
    // - string
    atts.addElement(new Attribute("att3", (FastVector) null));
    // - date
    atts.addElement(new Attribute("att4", "yyyy-MM-dd"));
    // - relational
    attsRel = new FastVector();
    // -- numeric
    attsRel.addElement(new Attribute("att5.1"));
    // -- nominal
    attValsRel = new FastVector();
    for (i = 0; i < 5; i++)
      attValsRel.addElement("val5." + (i+1));
    attsRel.addElement(new Attribute("att5.2", attValsRel));
    dataRel = new Instances("att5", attsRel, 0);
    atts.addElement(new Attribute("att5", dataRel, 0));

    // 2. create Instances object
    data = new Instances("MyRelation", atts, 0);

    // 3. fill with data
    // first instance
    vals = new double[data.numAttributes()];
    // - numeric
    vals[0] = Math.PI;
    // - nominal
    vals[1] = attVals.indexOf("val3");
    // - string
    vals[2] = data.attribute(2).addStringValue("This is a string!");
    // - date
    vals[3] = data.attribute(3).parseDate("2001-11-09");
    // - relational
    dataRel = new Instances(data.attribute(4).relation(), 0);
    // -- first instance
    valsRel = new double[2];
    valsRel[0] = Math.PI + 1;
    valsRel[1] = attValsRel.indexOf("val5.3");
    dataRel.add(new Instance(1.0, valsRel));
    // -- second instance
    valsRel = new double[2];
    valsRel[0] = Math.PI + 2;
    valsRel[1] = attValsRel.indexOf("val5.2");
    dataRel.add(new Instance(1.0, valsRel));
    vals[4] = data.attribute(4).addRelation(dataRel);
    // add
    data.add(new Instance(1.0, vals));

    // second instance
    vals = new double[data.numAttributes()];  // important: needs NEW array!
    // - numeric
    vals[0] = Math.E;
    // - nominal
    vals[1] = attVals.indexOf("val1");
    // - string
    vals[2] = data.attribute(2).addStringValue("And another one!");
    // - date
    vals[3] = data.attribute(3).parseDate("2000-12-01");
    // - relational
    dataRel = new Instances(data.attribute(4).relation(), 0);
    // -- first instance
    valsRel = new double[2];
    valsRel[0] = Math.E + 1;
    valsRel[1] = attValsRel.indexOf("val5.4");
    dataRel.add(new Instance(1.0, valsRel));
    // -- second instance
    valsRel = new double[2];
    valsRel[0] = Math.E + 2;
    valsRel[1] = attValsRel.indexOf("val5.1");
    dataRel.add(new Instance(1.0, valsRel));
    vals[4] = data.attribute(4).addRelation(dataRel);
    // add
    data.add(new Instance(1.0, vals));

    // 4. output data
    System.out.println(data);
  }
}


对于丢失的数据

默认新的数组被初始化为0。如果你想在某个位置设置缺失值,通过weka.core.Instance类中的missingValue()方法来明确的设置。在3.7.1版本后的weka中的Instance 是一个接口,所以missingValue()被移到了weka.core.Utils中。如果你已经有一个存在的weka.core.Instance对象,那么你可以使用setMissing(int)方法在给定位置设置缺失值。下面给出在第三个属性设置缺失值的例子。

  • double array:
double[] vals = ...  // from somewhere, e.g., from AttTest.java example
 vals[2] = Instance.missingValue(); // or ... = Utils.missingValue() for Weka > 3.7.1

  • weka.core.Instance object:
double[] vals = ... // from somewhere, e.g., from AttTest.java example
 Instance inst = new Instance(1.0, vals);
 inst.setMissing(2);


图片边界矢量化-地理配准 无地理和投影信息的JPG图片,通过ArcGIS进行地理配准(Georeferencing)完成数字化边界。 阅读详情

相关推荐

NXP MCU CAN波特率(位时间)配置详解

1. 概述 本文将会详细讲解如何设置NXP MCU的CAN波特率、位时间、采样点等属性。 波特率即CAN总线传输频率,位时间是波特率的倒数,例如波特率是500K,那么位时间 = 1 / 500000 = 0.000002s = 2000ns。 我们先来看一下S32K144单片机的EB中与CAN总线波特率相关的可配置参数有哪些: ...

weixin_42967006的博客 9691

Weka一些基础内容

<br />无意间在网上看到了:http://weka.wiki.sourceforge.net/Use+Weka+in+your+Java+code,相对我写的代码,它的当然更有权威性。翻译完了,第一次翻译,术语的汉语很多不清楚。还没有校对,有什么错误请告诉我。<br />你可能要用的最常用的组件(components)是:<br />l  Instances 你的数据<br />l  Filter 对数据的预处理<br />l  Classifiers/Clusterer 被建立在预处理的数据上,分类/

Wayne's Road to Rome! 4461

PID算法(位置式pid算法和增量式pid算法)

PID 算法是闭环控制系统中常用的算法,PID 分别是 Proportion(比例)、Integral(积分)、Differential(微分)的首字母缩写。它是一种结合比例、积分和微分三个环节于一体的闭环控。

m0_57678852的博客 2万+

weka使用教程1--ARFF文件生成和使用

weka的数据格式是ARFF 1 生成ARFF文件 以要不要去沙滩的数据集为例进行说明,该数据集有三列 第一列:天气  第二列:温度  第三列:要不要去沙滩 我们把这三列数据复制到 Notepad中,ARFF还需要其他的一些信息:        a) 第1行,是关系名称,这个自己随便起,不过写的最好要有意义。    b) 第2~3行是特征列表,其中第1列是特征说明,不可缺少,第2...

人生智慧的博客 8477

元学习与Transformer的结合:Meta-Transformer架构解析

我们生活在一个信息爆炸的时代,每天都会产生海量的数据。在深度学习领域,如何让模型更高效地学习、更快地适应新的任务,一直是科学家们努力的方向。元学习和Transformer都是深度学习中的重要概念,它们各自有着独特的优势。本文的目的就是深入剖析将元学习和Transformer结合起来的Meta - Transformer架构,探讨它的原理、应用以及未来发展。我们会从基础概念讲起,逐步深入到架构的各个方面,让大家对Meta - Transformer有一个全面的了解。

AI智能探索者的博客 1052

基于coze studio开源框架二次定制开发教程

CozeStudio是一站式AIAgent开发工具,支持大模型接入、智能体编排、工作流开发等功能。采用Golang+React技术栈,基于微服务架构设计。项目包含后端API、领域逻辑、前端应用等模块,支持自定义任务流节点开发。开发流程涵盖前后端节点定义、实现逻辑编写等步骤,提供完整的开发规范和参考文档。相比商业版,开源版本在功能上有所精简,但仍保留核心开发能力。

coding change your life 791

Weka学习之用java构建ARFF文件

ARFF是Weka支持的文件类型 ,我们可以通过读取ARFF文件获取数据,进而执行Weka进行数据的分析,但是由于某些需求的原因,我们需要连接数据库对ARFF进行动态的添加,构建我们需要的Instances 。我们可以粗略的理解一个Instances对应一个ARFF文件,代码如下,如果不清楚ARFF文件格式,请参考我的另一篇博客http://blog.csdn.net/sinat_23225111

一杯咖啡半杯糖的博客 2450

Ambari 3.0+BigTop 3.3集群部署实战

Ambari 3.0+BigTop 3.3集群部署

docsz的博客 612

java arff文件_Java调用Weka API创建Arff文件

毕业设计是基于Web的数据挖掘系统,其中主框架使用了Spring MVC集成MyBatis,挖掘算法的实现采用了Weka提供的开源jar包。调用Weka算法的时候,需要的元数据格式为.arff文件,Arff文件相关介绍这里简单介绍下构造arff文件的过程。Arff(attribute relation file format 关系属性格式)文件是一种由独立、无序实例组成的数据集文件,是一种 ASC...

weixin_29504571的博客 538

基于uniapp开发PDA扫码枪APP:实现RFID批量扫描读取功能

基于uniapp的PDA扫码枪APP开发实战,实现高效RFID读取功能,uniapp整合PDA硬件的实践分享,基于uniapp的PDA端RFID批量扫描方案开发

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 1万+

【天工Godwork精品教程】天工3.1.7安装教程(附Godwork完整版下载地址)

本文讲解天工3.1.7安装过程(附Godwork完整版网盘下载地址)。 一、天工3.1.7安装教程 1. 安装GodWork-AT 3.1.7 2. 安装GodWork-AT 3.1.7补丁 3. 安装GodWork-EOS-Setup-2017B-1231 4. 安装GodWork-EOS补丁 5. 运行godwokr软件 6. 生成ZC码 7. 输入ZC码 8. eos插

智慧空间实验室 5285

用Java创建weka需要的Instance对象和arff文件

在用Java使用weka时,我们需要weka支持的数据格式,weka官网上给出的大多是从arff文件中导入数据。从数据库中生成对系统环境要求也较高。因此本文介绍了如何通过普通的Java对象生成weka支持的Instance对象,并保存到arff文件中。总体思路首先创建一个Instances对象,为Instances对象设置属性(@Attribute),然后从对象创建Instance加入到Instan

cuiods的博客 6988

华为OD机试双机位C卷-恢复数字序列 (Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷 恢复数字序列,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 恢复数字序列。

qq_45776114的博客 1203

Java集成Weka做逻辑回归(Logistic Regression)

Java集成Weka做逻辑回归(Logistic Regression)从搜索引擎脑补可以得知,“逻辑回归”是一种分类器,通过样本集合的训练之后,可以简单做二元(或多元)分类。看了一下有用Weka做的,来来,咱也试一下。

hanphy的专栏 9519

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

weka中将Instances另存为一个arff文件

主要是这一行代码DataSink.write("/dict/arffData.arff", data); import weka.core.Attribute; import weka.core.FastVector; import weka.core.Instance; import weka.core.Instances;   /** * Generates a little A

yishumiao的专栏 1073

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

读取文本记录,生成Instances,保存为arff格式

<br />import java.io.File; import weka.core.Attribute; import weka.core.FastVector; import weka.core.Instance; import weka.core.Instances; import weka.core.converters.ArffSaver; /** * Generates a little ARFF file with different attribute types. *

jxulie的专栏 3880

java 调用weka_在eclipse下使用java调用weka

要使用程序方式使用weka,步骤如下:一、在eclipse里新建一个java project:1. 建立工程:单击菜单中file->new->java project,在弹出对话框的project name中起任意一个名字,此处假设是wekaTest。单击Finish按钮(在对话框底部)。2. 建立package:在package Explorer中找到刚才新建的工程,在其上右键-&g...

weixin_33610824的博客 290

java vector 类型_java – 不推荐使用FastVector类型

我试图从Java中的多维数组获取arrf扩展输出文件.我导入了weka库,但是我收到了错误;类型FastVector< E>已弃用.我可以使用什么代替FastVector以及如何重写下面的代码?import weka.core.FastVector; //Error: The type FastVector is deprecated.int [][] myArray = new in...

weixin_42300398的博客 208

java weka线性回归算法_Java集成Weka做线性回归的例子

之前研究完分类的逻辑回归,继续搞一下线性回归看看。线性回归在数据挖掘领域应也是非常常见,即根据现有的数据集(行向量组成的矩阵),(训练)模拟出一个合适的规律(函数),来推测任何新给出的数据组合(向量)应该得到的值。具体的描述可以参见各种博客,怎么推导的看来看去一知半解,但总而言之结果也简单,就是计算得到一个“适当”的多元线性函数Y=a0+a1*x1+a2*x2+a3*x3+…+ak*xk。我就不在...

weixin_39963534的博客 593

java+vector放不同类型_java – 不推荐使用FastVector类型

我试图从Java中的多维数组获取arrf扩展输出文件.我导入了weka库,但是我收到了错误;类型FastVector< E>已弃用.我可以使用什么代替FastVector以及如何重写下面的代码?import weka.core.FastVector; //Error: The type FastVector is deprecated.int [][] myArray = new in...

weixin_32046225的博客 124

java arff文件,如何在Java中从数组创建ARFF文件?

I want to get the coefficients of a weighted linear regression of an x-y pair represented by two arrays in java. I have zeroed in on weka, but it is asking an 'Instances' class object in the 'LinearRe...

weixin_35861221的博客 273

weka 学习总结(持续)

机器学习之 Weka学习(一)weka介绍,安装和配置环境变量机器学习之 Weka学习(二)算法说明Weka数据挖掘处理流程介绍机器学习之 weka学习(五)示例用法Weka数据处理结果分析 http://blog.csdn.net/jiandanjinxin/article/details/51537864 http://www.cnblogs.com/549294286/p/3299377.

jiandanjinxin的专栏 1571

java weka 聚类_简单开源数据挖掘工具weka进行文本聚类

目前非代码的数据挖掘工具很多,但非开源,weka是一款开源软件。只要安装jdk环境就可使用(具体安装jdk可以百度)本文将论述如何不用代码,使用weka操作,通过与文档频数与单词权的特征选择方法进行文本聚类(数据为附件)第一步:将weka创建NetBeans文件目录中将weka导入NetBeans软件中,1 在某处新建一个WEKA-Rebuild目录,在它下面建一个目录叫src。在WEKA的安装目...

weixin_39633917的博客 743

java 神经网络 weka_基于weka实现的神经网络算法实现

1、算法实现package demo7;import java.io.File;import java.io.IOException;import weka.classifiers.functions.MultilayerPerceptron;import weka.core.Attribute;import weka.core.FastVector;import weka.core.Instan...

weixin_39937412的博客 863

Java 数据科学秘籍(二)

在本章中,我们将介绍以下配方:在本章和接下来的章节中,我们将介绍使用机器学习技术从数据中学习模式的方法。这些模式是至少三个关键机器学习任务的关注中心:分类、回归和聚类。分类是从一个名义类别预测一个值的任务。与分类相反,回归模型试图从数值类中预测值。最后,聚类是根据数据点的接近程度对其进行分组的技术。有许多基于 Java 的工具、工作台、库和 API 可以用于前面提到的机器学习领域的研究和开发。最流行的工具之一是怀卡托知识分析环境 ( Weka ),这是一个在 GNU 通用公共许可证下授权的自由软件。它是用

龙哥盟 806

java arff文件_怎么用java将sql查询结果存成weka的标准.arff文件?

importweka.core.Instances;importweka.experiment.InstanceQuery;...InstanceQueryquery=newInstanceQuery();query.setDatabaseURL("jdbc_url");query.setUsername("the_user");query.setPassword("the_passw...

weixin_39574943的博客 103
上一篇: 在Java中使用weka:产生折叠交叉验证
下一篇: 在Java中使用weka:将实例转化为ARFF文件
Bryan__
博客等级 码龄12年 2500粉丝 166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值