java 实例写入.arff_将实例添加到Weka中的实例

这篇博客介绍了如何使用Weka工具在Java中合并两个具有相同实例数或相同属性的ARFF数据文件。主要涉及`Instances.append`和`Instances.mergeInstances`两个方法。示例代码展示了如何通过ArffLoader加载文件并进行合并操作。
摘要由CSDN通过智能技术生成

小编典典

这是从邮件列表。我以前保存过

如何将两个数据文件a.arff和b.arff合并到一个数据列表中?

取决于您在说什么合并。您是否只想追加第二个文件(两个都具有相同的属性)还是要添加合并属性(两个都具有相同的实例数)?

In the first case ("append"):

java weka.core.Instances append filename1 filename2 > output-file

and the latter case ("merge"):

java weka.core.Instances merge filename1 filename2 > output-file

以下是相关的Javadoc:http://weka.sourceforge.net/doc.dev/weka/core/Instances.html#main(java.lang.String

[])

public static Instances mergeInstances(Instances first,

Instances second)

您的代码如下所示。对于相同的实例编号。

ArffLoader arffLoader = new ArffLoader();

arffLoader.setFile(new File(fName1));

Instances newData1 = arffLoader.getDataSet();

arffLoader.setFile(new File(fName2));

Instances newData2 = arffLoader.getDataSet();

Instances mergedData = Instances.mergeInstances( newData1 ,newData2);

您的代码如下所示。对于相同的属性编号。我在weka中没有看到任何Java方法。如果您阅读代码,则如下所示。

// Instances.java

// public static void main(String[] args) {

// read two files, append them and print result to stdout

else if ((args.length == 3) && (args[0].toLowerCase().equals("append"))) {

DataSource source1 = new DataSource(args[1]);

DataSource source2 = new DataSource(args[2]);

String msg = source1.getStructure().equalHeadersMsg(source2.getStructure());

if (msg != null)

throw new Exception("The two datasets have different headers:\n" + msg);

Instances structure = source1.getStructure();

System.out.println(source1.getStructure());

while (source1.hasMoreElements(structure))

System.out.println(source1.nextElement(structure));

structure = source2.getStructure();

while (source2.hasMoreElements(structure))

System.out.println(source2.nextElement(structure));

}

2020-11-13

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值