【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”子目录下)
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”则不区分。若值中含有空格,必须被引号括起来。