gpt4 book ai didi

java - arff 背后的概念以及如何在 java 中阅读 weka arff?

转载 作者:行者123 更新时间:2023-11-30 08:54:30 27 4
gpt4 key购买 nike

为什么有人会使用 arff?请给出读取arff文件并在java中使用它的示例代码。

我在 weka 站点中找到了以下代码片段:

BufferedReader reader =
new BufferedReader(new FileReader("/some/where/file.arff"));
ArffReader arff = new ArffReader(reader);
Instances data = arff.getData();
data.setClassIndex(data.numAttributes() - 1);

那之后呢?有人可以解释上面发生了什么吗?如何从文件访问我的数据? weka 站点提到了两种不同的用法,即批处理和增量。两者有什么区别?

最佳答案

嗯,通常有人会使用 arff,因为它是一种非常简单的文件格式,基本上是一个带有描述数据的 header 的 csv 文件,这是通常的保存方式/使用 Weka 读取数据。

读取 arff 文件的示例代码正是您提供的代码,如果您想使用加载的实例,您应该使用您的数据。要打印它们:System.out.println(data); 您可以查看很多关于如何处理数据的示例(分类、聚类等)here .

您使用的代码在标准 BufferedReader 中加载 arff 文件,然后创建一个 ArffReader 实例 (arff),该实例从读取器中完全读取数据,之后您使用 getData 方法返回 Instances 中的数据。对象(称为数据)。最后,设置类的属性(arff 文件中的最后一个)。

如果您想迭代 Instances 对象并检索每个实例:

for (int i = 0; i <= data.numInstances - 1; i++) {
Instance instance = data.getInstance(i);
System.out.println(instance.stringValue(0)); //get Attribute 0 as String
}

您正在谈论从 arff 文件中批量和增量读取。批处理模式完全读取 arff 文件,增量模式让您有机会读取 arff 文件的每个实例(行)并手动添加。

增量模式代码:

 BufferedReader reader =
new BufferedReader(new FileReader("/some/where/file.arff"));
ArffReader arff = new ArffReader(reader, 1000);
Instances data = arff.getStructure();
data.setClassIndex(data.numAttributes() - 1);
Instance inst;
while ((inst = arff.readInstance(data)) != null) {
data.add(inst);
}

关于java - arff 背后的概念以及如何在 java 中阅读 weka arff?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29380820/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com