Weka--ARFF数据格式介绍和转换

简介

Weka 是一个由Java编写的开源免费的数据挖掘工具,全称怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),它是基于JAVA环境下开源的机器学习(machine learning)以及数据挖掘(data mining)的软件,运行该工具需要安装Java环境。

Weka同时提供了命令行和GUI两种使用方式方式,前者效率更高,后者使用更简单。

软件安装

1. 下载并安装Java环境

参见教程:http://www.runoob.com/java/java-environment-setup.html

2.安装Weka

Windows上下载.exe安装后直接双击运行安装

官方网址:https://www.cs.waikato.ac.nz/ml/weka/

GUI

数据集介绍

在Weka中,一个数据集由 weka.core.Instances 实现。数据集中每个样例是由weka.core.Instance实现。每个样例由多个属性组成,其中简单的属性类型见表1。

表1:Weka数据集的简单属性
属性类型 描述 样例
列表型(nominal) 一组值得预定义列表 {1,2,3}, {good, bad}
数值型(numeric) 一个实数或者整数 12, 2.3, 50
字符串(string) 一个任意长的字符序列,包含在双引号内 "better", "worse"

除了简单属性,Weka还有附加类型的属性date和relational,将会在之后介绍。

Weka的数据集存储在ARFF格式的文件中,下面是一个ARFF文件的格式说明:

% This is a toy example, the UCI weather dataset.
% Any relation to real weather is purely coincidental.

@relation golfWeatherMichigan_1988/02/10_14days 
@attribute outlook {sunny, overcast, rainy}
@attribute windy {TRUE, FALSE}
@attribute temperature real
@attribute humidity real 
@attribute play {yes, no}

@data
sunny,FALSE,85,85,no
sunny,TRUE,80,90,no
overcast,FALSE,83,86,yes
rainy,FALSE,70,96,yes
rainy,FALSE,68,80,yes 

以%开头的两行是注释,主要介绍该数据集的来源,内容和意义等;

@relation 是该数据集的关系名称;

@attribute 是该数据集每个实例的属性说明,上例中共有5个属性,其中3个列表型属性,2个数值型属性,没有字符串型属性;

@data 下面行就是数据集内容,每行代表一个实例,每个实例由5个之前定义过的属性。

在Weka中,默认将每个样例的最后一个属性认为是类别/标记 属性,在上例中,类别属性是play,通过前4个属性来判断play是yes或者no。当然也可以通过参数 -c 来自己指定类别属性。Weka中属性的索引从1开始编号,例如,-c 1 将指定第一个属性即outlook为类别属性。

通过 weka.core.Instances 类可以统计 ARFF数据集的一些基本信息,命令行参数为:

java weka.core.Instances weather.arff

结果如下:

可以看到该数据集的名称,样例数目,属性数目,每个属性的类型,有误属性丢失等统计信息。

weka.core提供了一些别的有用的程序,如converters.C45Loader 和 converters.CSVLoader 能够分别导入C45数据集和CSV格式的数据集并将其转换为ARFF格式,命令如下:

java weka.core.converters.CSVLoader data.csv > data.arff
java weka.core.converters.C45Loader c45_filestem > data.arff

 未完待续...

猜你喜欢

转载自www.cnblogs.com/naplus/p/9077303.html