关于Arff数据类型的介绍及使用

关于Arff的介绍及使用

  • 关于arff
    • 三个输入类:概念、实例和属性。
    • 为什么要用arff?
    • 关于arff:
    • Arff与CSV:
    • 在Java中使用weka:将实例转化为ARFF文件:

关于arff

三个输入类:概念、实例和属性。

1.概念简单而言就是需要被处理的东西,
2. 实例这个词有些陌生,但是可以大致认为其为样本,
3. 属性就是数据表中的一列。

为什么要用arff?

虽然Weka也支持其他一些格式的文件,但是ARFF格式是支持的最好的。是weka数据挖掘开源程序使用的一种文件模式,这是一种ASCII文本文件,因此有必要在数据处理之前把数据集的格式转换成ARFF。

关于arff:

ARFF文件结构:可以分为两个部分:头信息和数据信息。

头部定义包含了关系名称(relation name)、一些属性(attributes)和对应的类型
weka.core.Instances的toString()方法不能很好的处理大型数据集,因为会将完整的字符串数据写入内存中。最好使用前面讲到的转换器,通过增量的方法来将数据写入磁盘。

① 头信息(Head information):包括了对关系的声明和对属性的声明;
关系名称:第一个有效行来定义,格式为
@relation

属性声明:用一列以“@attribute”开头的语句表示,用来定义属性的名称和数据类型。格式为
@attribute

② 数据信息(Data information):即数据集中给出的数据,“@data”标记独占一行,剩下的是各个实例的数据,每个实例占一行。实例的各属性值用逗号“,”隔开,缺失值(missing value)用问号“?”表示,且这个问号不能省略。

Arff与CSV:

可以直接使用CSV文件格式的文件,但与传统CSV文件不同,Weka能识别的CSV文件要求第一行给各列的定义。因为CSV文件比较容易获得,excel表格文件可以直接另存为csv文件。二者主要区别为头信息,在csv前添加header转化arff(这个我不确定,等待下一步更新)。

在Java中使用weka:将实例转化为ARFF文件:

转换器
使用ArffSaver类(weka.core.converters.ArffSaver)来保存一个weka.core.Instances对象到ARFF文件中。

Instances dataSet = …

ArffSaver AS = new ArffSaver();
AS.setInstances(dataSet);
AS.setFile(new File("./data/run.arff"));
AS.setDestination(new File("./data/run.arff"));
AS.writeBatch();

对于未确认信息进行持续更新。

你可能感兴趣的:(关于Arff数据类型的介绍及使用)