简介
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/
数据集介绍
在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
未完待续...