Weka中用的ARFF文件格式分为两部分:Header 和Data。其中Header部分用于定义Relation的名字、一系列Attribute的名字和类型,比如:
@RELATION iris
@ATTRIBUTE sepallength NUMERIC
@ATTRIBUTE sepalwidth NUMERIC
@ATTRIBUTE petallength NUMERIC
@ATTRIBUTE petalwidth NUMERIC
@ATTRIBUTE class {Iris-setosa,Iris-versicolor,Iris-virginica}
Data部分,顾名思义就是数据,其中的Attribute顺序必须与Header定义的顺序一致,如果值为空则用?代替,不同Attribute值之间用逗号分隔,逗号后面可跟若干空格,格式如下:
@DATA
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa
5.0,3.6,1.4,0.2,Iris-setosa
5.4,3.9,1.7,0.4,Iris-setosa
4.6,3.4,1.4,0.3,Iris-setosa
5.0,3.4,1.5,0.2,Iris-setosa
4.4,2.9,1.4,0.2,Iris-setosa
4.4,?,1.5,?,Iris-setosa
其中@RELATION、@ATTRIBUTE、@DATA对大小写不敏感,对于ARFF文件中出现的所有字符串(名字或者值),如果中间有空格出现一律需要用引号括起来。
Attribute支持的数据类型包括:
1. numeric
2. real(当做numeric)
3. integer(当做numeric)
4. string
5. 枚举类型
6. date [<date-format>]
这些数据类型关键词numeric、real、integer、string、date对大小写不敏感。其中枚举类型在定义完Attribute的名字后紧跟着可选值的范围,用花括号括起来。date类型如不指明格式默认使用ISO-8601定义的格式:yyyy-MM-dd HH:mm:ss,如要指定特定的格式,在date后面指定,格式同java.text.SimpleDateFormat规定的相同。
Data部分的值大小写敏感,date值必须与指定的格式相同。
参考: