ARFF文件结构解析

Attribute-Relation File Format (ARFF)

ARFF文件是一种ASCLL 文件类型,它描述了实例列表的一系列属性。ARFF文件随着University of Waikato大学计算机科学的发展而被用在机器学习软件Weka上。介绍ARFF文件结构的网址 http://www.cs.waikato.ac.nz/~ml/weka/arff.html

 

ARFF文件格式:

%为注释符号,文件开头一般会以注释开头,介绍文件的名称,属性特征等内容。

关系名,在文件开头定义,格式为:

@relation <relation-name>

关系名为字符串类型,如果名称中含有空格,必须加引号。

接下来是属性定义区,结构为:

@attribute <attribute-name> <datatype>

属性共包含名词性属性、数值性属性、字符串属性和日期属性。在名词性属性用括号{}包含其名词性值。如果名词性值内包含空格,必须加引号。数值属性的数据类型为:numeric; 字符串属性的数据类型为:string;日期属性是特殊形式的字符串,其数据类型为:date [<date-format>]    ,默认时间格式为:

"yyyy-MM-dd'T'HH:mm:ss"。

属性声明的顺序显示在文件的数据部分的列的位置,其后数据区的数据会按属性声明顺序排列。

之后以@data开始的行,是数据集中实例数据开始的标志。

每一行表示一个实例,属性值按照属性的顺序排列,并由逗号分隔,回车表示实例的结束。如果有残缺值,将由?表示,如:

4.4, ?, 1.5, ?, Iris-setosa

如果是稀疏数据,即大部分实例中的属性值为0,可以用非0属性的属性位置和属性值表明。如:

0,26,0, 0, 0, 0,63,0, 0, 0,”class A”

{1 26, 6 63, 10 “class A”}

 

ARFF文件格式很简单,从Weka里面都可以找到一些它的例子。

(1)天气数据

%ARFF file for the weather data with some numeric features

%

@relation weather

 

@attribute outlook {sunny, overcast, rainy}

@attribute temperature real

@attribute humidity real

@attribute windy {TRUE, FALSE}

@attribute play?{yes, no}

 

@data

%

%14 instance

%

sunny,85,85,FALSE,no

sunny,80,90,TRUE,no

overcast,83,86,FALSE,yes

rainy,70,96,FALSE,yes

rainy,68,80,FALSE,yes

rainy,65,70,TRUE,no

overcast,64,65,TRUE,yes

sunny,72,95,FALSE,no

sunny,69,70,FALSE,yes

rainy,75,80,FALSE,yes

sunny,75,70,TRUE,yes

overcast,72,90,TRUE,yes

overcast,81,75,FALSE,yes

rainy,71,91,TRUE,no

(2)鸢尾属植物数据

 

% 1. Title: Iris Plants Database

%

% 2. Sources:

% (a) Creator: R.A. Fisher

% (b) Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)

% (c) Date: July, 1988

%

@RELATION iris

 

@ATTRIBUTE sepallength  NUMERIC

@ATTRIBUTE sepalwidth   NUMERIC

@ATTRIBUTE petallength  NUMERIC

@ATTRIBUTE petalwidth   NUMERIC

@ATTRIBUTE class  {Iris-setosa,Iris-versicolor,Iris-virginica} 

@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.9,3.1,1.5,0.1,Iris-setosa

(3)时间数据

@RELATION Timestamps

@ATTRIBUTE timestamp DATE "yyyy-MM-dd HH:mm:ss"

@DATA

"2001-04-03 12:12:12"

"2001-05-03 12:59:55"

 

Weka作为数据挖掘开源项目中的经典,很多算法和数据的组织结构是值得学习的。Weka里面大量使用了一种叫做ARFF (Attribute-Relation File Format )的数据文件结构。这种ARFF文件内部结构很简单,主要是测试算法使用的轻量级的数据文件结构。OpenMiner继承Weka的风格,也打算支持ARFF文件格式,并且作为前期的挖掘算法测试数据来源。

转载于:https://www.cnblogs.com/Scorpio989/p/3959572.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件说明 下面我们来对这个文件的内容进行说明。 识别ARFF文件的重要依据是分行,因此不能在这种文件里随意的断行。空行(或全是空格的行)将被忽略。 以“%”开始的行是注释,WEKA将忽略这些行。如果你看到的“weather.arff文件多了或少了些“%”开始的行,是没有影响的。 除去注释后,整个ARFF文件可以分为两个部分。第一部分给出了头信息(Head information),包括了对关系的声明和对属性的声明。第二部分给出了数据信息(Data information),即数据集中给出的数据。从“@data”标记开始,后面的就是数据信息了。 关系声明 关系名称在ARFF文件的第一个有效行来定义,格式为 @relation 是一个字符串。如果这个字符串包含空格,它必须加上引号(指英文标点的单引号或双引号)。 属性声明 属性声明用一列以“@attribute”开头的语句表示。数据集中的每一个属性都有它对应的“@attribute”语句,来定义它的属性名称和数据类型。 这些声明语句的顺序很重要。首先它表明了该项属性在数据部分的位置。例如,“humidity”是第三个被声明的属性,这说明数据部分那些被逗号分开的列中,第三列数据 85 90 86 96 ... 是相应的“humidity”值。其次,最后一个声明的属性被称作class属性,在分类或回归任务中,它是默认的目标变量。 属性声明的格式为 @attribute 其中是必须以字母开头的字符串。和关系名称一样,如果这个字符串包含空格,它必须加上引号。 WEKA支持的有四种,分别是 numeric-------------------------数值型 -----分类(nominal)型 string----------------------------字符串型 date []--------日期和时间型 其中 和 将在下面说明。还可以使用两个类型“integer”和“real”,但是WEKA把它们都当作“numeric”看待。注意“integer”,“real”,“numeric”,“date”,“string”这些关键字是区分大小写的,而“relation”“attribute ”和“date”则不区分。 数值属性 数值型属性可以是整数或者实数,但WEKA把它们都当作实数看待。 分类属性 分类属性由列出一系列可能的类别名称并放在花括号中:{, , , ...} 。数据集中该属性的值只能是其中一种类别。 例如如下的属性声明说明“outlook”属性有三种类别:“sunny”,“ overcast”和“rainy”。而数据集中每个实例对应的“outlook”值必是这三者之一。 @attribute outlook {sunny, overcast, rainy} 如果类别名称带有空格,仍需要将之放入引号中。 字符串属性 字符串属性中可以包含任意的文本。这种类型的属性在文本挖掘中非常有用。 示例: @ATTRIBUTE LCC string 日期和时间属性 日期和时间属性统一用“date”类型表示,它的格式是 @attribute date [] 其中是这个属性的名称,是一个字符串,来规定该怎样解析和显示日期或时间的格式,默认的字符串是ISO-8601所给的日期时间组合格式“yyyy-MM-ddTHH:mm:ss”。 数据信息部分表达日期的字符串必须符合声明中规定的格式要求(下文有例子)。 数据信息 数据信息中“@data”标记独占一行,剩下的是各个实例的数据。 每个实例占一行。实例的各属性值用逗号“,”隔开。如果某个属性的值是缺失值(missing value),用问号“?”表示,且这个问号不能省略。例如: @data sunny,85,85,FALSE,no ?,78,90,?,yes 字符串属性和分类属性的值是区分大小写的。若值中含有空格,必须被引号括起来。例如: @relation LCCvsLCSH @attribute LCC string @att
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值