在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);


AI办公Agent技术:文档与表格智能处理实践 办公自动化技术正从规则驱动转向语义理解,大语言模型(LLM)为办公Agent赋予了智能决策能力。这类系统通过五层架构整合自然语言处理、工具API调用和任务规划引擎,能自动完成文档分类、表格分析等高重复性工作。关键技术包括基于TF-IDF和BERT的特征提取、Excel公式自动生成等,在财务报告、法律审查等场景可实现90%以上的效率提升。随着多模态能力和领域专业化发展,办公Agent正在重塑企业文档处理流程,成为数字化转型的核心基础设施。 阅读详情

相关推荐

ESP32小车DIY:从零搭建无线遥控智能车(附完整代码与避坑指南)

本文详细介绍了如何从零开始DIY一台基于ESP32的无线遥控智能小车。内容涵盖核心硬件选型、电路设计、低延迟ESP-NOW无线通信协议的配置与实战,以及双电机差速控制算法与PWM调速的实现。文章提供了完整的代码示例和关键的避坑指南,旨在帮助开发者快速构建稳定可靠的智能车平台,并为进一步的功能扩展奠定基础。

gamma的博客 471

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

PCB压合原理与工艺全流程深度解析

PCB压合是多层印制电路板制造中的核心工序,其本质并非简单物理叠加,而是高分子树脂流动、玻璃布应力释放、铜箔热膨胀及界面能调控的协同过程。理解压合原理,需掌握温度-压力-时间三维曲线动态关系;优化工艺流程,须兼顾叠板精度、热压参数匹配与冷却策略;关键影响因素如半固化片(PP)选型、铜箔表面处理、设备温场均匀性、结构对称性、环境湿度及操作手法,共同决定层间结合力、翘曲度与孔壁质量。本文围绕PCB压合原理、工艺流程、关键影响因素三大维度展开,融合IPC标准、实测数据与产线案例,为工艺工程师、NPI人员及设备维护

weixin_29191081的博客 258

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

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

人生智慧的博客 8477

STM32F0实现数字化SPWM纯正弦波逆变器

这个没啥好说的,搭电路的事。其核心思想是两边桥臂分别由两个180度相位差的正弦波与三角载波比较来控制,优点是在开关器件工作频率一样的情况下,输出PWM频率是单极性SPWM的2倍,能够明显减少谐波,因此只需要相对较小的电感和电容滤波器件就可以起到很好的滤波效果,提升了系统的性能,也精简了系统体积,降低了成本。而双极性pwm则是在整个正弦周期内,四只管子都在高频开关状态工作,对角线上的管子一起导通,另一对角线上管子互补导通,实际上只需要一路互补的PWM控制,负载上电压在正电压和负电压之间切换,不出现0v。

forlifefor的专栏 1万+

国产FPGA开发实战:紫光同创编程软件中的约束文件详解与常见问题

本文详细解析了紫光同创FPGA编程软件中约束文件的关键配置技巧与常见问题。通过基础架构解析、时钟约束实践、物理约束调控及典型问题排查指南,帮助开发者高效掌握国产FPGA开发中的约束文件应用,提升开发效率与设计稳定性。

gin88的博客 910

Weka学习之用java构建ARFF文件

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

一杯咖啡半杯糖的博客 2450

WRF和WPS模型在Ubuntu系统上的安装与常见问题解决指南

本文详细介绍了在Ubuntu系统上安装WRF和WPS模型的完整教程,涵盖系统环境配置、依赖库安装、源代码编译以及常见问题的解决方案。重点解决了WPS编译中intmath.f文件的修改、环境变量设置和编译器兼容性等关键难点,帮助用户高效部署气象研究与预报模型。

weixin_29213525的博客 382

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

10、硬件工程师笔试面试——继电器(2025版本)

在设计电路时,应综合考虑SSR的优势和局限性,确保选择合适的型号,并采取适当的设计措施来优化性能和可靠性。继电器的主要功能是利用较小的电流或电压来控制较大电流或电压的电路,实现信号的放大和隔离。在处理继电器故障时,应综合考虑电源、线圈、触点和负载等因素,及时进行故障诊断和处理,以确保电路系统的稳定性和安全性。由于汽车电子系统的复杂性,继电器的设计和选择必须考虑到系统的特定要求,包括电流容量、电压等级、环境条件(如温度、湿度、振动)以及所需的保护和隔离功能。确定线圈的工作电压或电流,以及吸合电压或电流。

XU157303764的博客 3733

【75】OpenCV C++实战篇——OpenCV 图像拼接、全景拼接(教程合集)

本文整理了OpenCV实现图像拼接的技术教程合集,涵盖C++和Python两种语言实现方案。图像拼接技术旨在将多张重叠图像融合为无缝全景图,既扩大视角又保持高分辨率。内容包含水平矫正等关键步骤(附对比效果图),提供多个实战案例的完整代码和详细讲解,涉及单应性矩阵、图像变换等核心技术。不同案例展示了从两张到多张图像的拼接效果,适合不同层次的学习者参考实践。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 528

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

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

cuiods的博客 6988

C++ 图像线特征提取(CannyLine算法+opencv3.4.6)

C++ 图像线特征提取(CannyLine算法+opencv3.4.6)

weixin_43896283的博客 1084

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

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

hanphy的专栏 9519

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

读取文本记录,生成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

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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、付费专栏及课程。

余额充值