【WEKA】ARFF文件的格式

1.    WEKA(Waikato Environment for KnowledgeAnalysis):怀卡托智能分析环境。

        作为一个大众化的数据挖掘工作平台,WEKA集成了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理、分类、回归、聚类、关联分析以及在新的交互式界面上的可视化等等。通过其接口,可在其基础上实现自己的数据挖掘算法。

        (源代码地址http://www.cs.waikato.ac.nz/ml/weka/

 

2.    WEKA的数据文件格式

  • ARFF(Attribute-Relation File Format):ARFF格式(.arff)是WEKA支持得最好的文件格式,这是一种ASCII文本文件。
  • CSV:WEKA提供对CSV文件的支持,利用WEKA也可以将CSV文件格式转化成ARFF文件格式。

  • WEKA提供通过JDBC访问数据库的功能。


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

①   头信息(Head information):包括了对关系的声明和对属性的声明;

  • 关系名称:第一个有效行来定义,格式为

        @relation<relation-name>

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

        @attribute <attribute-name> <datatype>

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

        @data

        sunny,85,85,FALSE,no

        ?,78,90,?,yes

文件示例:weather.arff(在WEKA安装目录的“data”子目录下)

【WEKA】ARFF文件的格式

【WEKA】ARFF文件的格式

 

4.    WEKA支持的四种数据格式<datatype>

  • numeric:数值型。还可以使用两个类型“integer”和“real”,但是WEKA把它们都当作“numeric”看待。
  • <nominal-specification>:标称型,列出一系列可能的类别名称并放在花括号中,例如:@attribute outlook {sunny, overcast, rainy}
  • string:字符串型,可以包含任意的文本。
  • data[<date-format>]:日期和时间型,是一个字符串,来规定该怎样解析和显示日期或时间的格式,日期属性的值必须与属性声明中给定的相一致。默认的字符串是“yyyy-MM-ddTHH:mm:ss”。例如:

        @ATTRIBUTEtimestamp DATE "yyyy-MM-dd HH:mm:ss"

        @DATA

        "2001-04-0312:12:12"

        "2001-05-0312:59:55"

Tips

①   以“%”开始的行是注释。

②   识别ARFF文件的重要依据是分行,因此不能在这种文件里随意的断行。空行(或全是空格的行)将被忽略。

③   属性声明语句的顺序很重要:首先它表明了该项属性在数据部分的位置;其次,最后一个声明的属性被称作class属性,在分类或回归任务中,它是默认的目标变量。

④   如果<relation-name>和<attribute-name>的命名中包含空格,它必须加上引号(指英文标点的单引号或双引号)。

⑤   数据格式<datatype>,字符串属性和标称属性的值是区分大小写的,而“relation”、“attribute ”和“data”则不区分。若值中含有空格,必须被引号括起来。