当前位置:首页 > 资源 >工具列表 >工具详情

Weka
平分:

Weka(Waikato Environment for Knowledge Analysis)是一款免费的、非商业化(与之对应的是SPSS公司商业数据挖掘产品--Clementine )的,基于JAVA环境下开源的机器学习(machine learning)以及数据挖掘(data mining)软件。它集成了常用的机器学习算法和统计算法,包括对数据进行预处理、分类、回归、聚类、关联规则以及在新的交互式界面上的可视化,通过其接口,可在其基础上实现自己的数据挖掘算法。

软件类型:免费

使用教程

 

1.数据格式: 与很多电子表格或数据分析软件一样,WEKA所处理的数据集是一个二维的表格。

   这里我们要介绍一下WEKA中的术语。表格里的一个横行称作一个实例(Instance),相当于统计学中的一个样本,或者数据库中的一条记录。竖行称作一个属性(Attrbute),相当于统计学中的一个变量,或者数据库中的一个字段。这样一个表格,或者叫数据集,在WEKA看来,呈现了属性之间的一种关系(Relation)。图1中一共有14个实例,5个属性,关系名称为“weather”。 

  WEKA存储数据的格式是ARFF(Attribute-Relation File Format)文件,这是一种ASCII文本文件。图1所示的二维表格存储在如下的ARFF文件中。这也就是WEKA自带的“weather.arff”文件,在WEKA安装目录的“data”子目录下可以找到。

2.关系声明

     关系名称在ARFF文件的第一个有效行来定义,格式为 

  @relation

  是一个字符串。如果这个字符串包含空格,它必须加上引号(指英文标点的单引号或双引号)

3.属性声明

  属性声明用一列以“@attribute”开头的语句表示。数据集中的每一个属性都有它对应的“@attribute”语句,来定义它的属性名称和数据类型。

  这些声明语句的顺序很重要。首先它表明了该项属性在数据部分的位置。例如,“humidity”是第三个被声明的属性,这说明数据部分那些被逗号分开的列中,第三列数据 85 90 86 96 ... 是相应的“humidity”值。其次,最后一个声明的属性被称作class属性,在分类或回归任务中,它是默认的目标变量。

  属性声明的格式为

  @attribute

  其中是必须以字母开头的字符串。和关系名称一样,如果这个字符串包含空格,它必须加上引号。

  WEKA支持的有四种,分别是

  numeric-------------------------数值型

  string----------------------------字符串型

  date []--------日期和时间型

4.数值属性

  数值型属性可以是整数或者实数,但WEKA把它们都当作实数看待。

5.分类属性

  分类属性由列出一系列可能的类别名称并放在花括号中:{, , , ...} 。数据集中该属性的值只能是其中一种类别。

  例如如下的属性声明说明“outlook”属性有三种类别:“sunny”,“ overcast”和“rainy”。而数据集中每个实例对应的“outlook”值必是这三者之一。

  @attribute outlook {sunny, overcast, rainy}

  如果类别名称带有空格,仍需要将之放入引号中。

6.字符串属性

  字符串属性中可以包含任意的文本。这种类型的属性在文本挖掘中非常有用。

  示例: @ATTRIBUTE LCC string

7.日期和时间属性

  日期和时间属性统一用“date”类型表示,它的格式是:@attribute date [],其中[]是这个属性的名称,是一个字符串,来规定该怎样解析和显示日期或时间的格式,默认的字符串是ISO-8601所给的日期时间组合格式“yyyy-MM-ddTHH:mm:ss”。

  数据信息部分表达日期的字符串必须符合声明中规定的格式要求(下文有例子)

8.数据信息

   数据信息中“@data”标记独占一行,剩下的是各个实例的数据。

  每个实例占一行。实例的各属性值用逗号“,”隔开。如果某个属性的值是缺失值(missing value),用问号“?”表示,且这个问号不能省略。例如:

  @data

  sunny,85,85,FALSE,no

  ?,78,90,?,yes

  字符串属性和分类属性的值是区分大小写的。若值中含有空格,必须被引号括起来。例如:

  @relation LCCvsLCSH

  @attribute LCC string

  @attribute LCSH string

  @data

  AG5, 'Encyclopedias and dictionaries.;Twentieth century.'

  AS262, 'Science -- Soviet Union -- History.'

  日期属性的值必须与属性声明中给定的相一致。例如:

  @RELATION Timestamps

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

  @DATA

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

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

  稀疏数据

  有的时候数据集中含有大量的0(比如购物篮分析),这个时候用稀疏格式的数据存贮更加省空间。

  稀疏格式是针对数据信息中某个实例的表示而言,不需要修改ARFF文件的其它部分。看如下的数据:

  @data

  0, X, 0, Y, "class A"

  0, 0, W, 0, "class B"

  用稀疏格式表达的话就是

  @data

  {1 X, 3 Y, 4 "class A"}

  {2 W, 4 "class B"}

  每个实例用花括号括起来。实例中每一个非0的属性值用 <空格> 表示。是属性的序号,从0开始计;是属性值。属性值之间仍用逗号隔开。这里每个实例的数值必须按属性的顺序来写,如 {1 X, 3 Y, 4 "class A"},不能写成{3 Y, 1 X, 4 "class A"}

  注意在稀疏格式中没有注明的属性值不是缺失值,而是0值。若要表示缺失值必须显式的用问号表示出来。

9.Relational型属性

  在WEKA 3.5版中增加了一种属性类型叫做Relational,有了这种类型我们可以像关系型数据库那样处理多个维度了。但是这种类型目前还不见广泛应用,暂不作介绍。

10.数据准备

  使用WEKA作数据挖掘,面临的第一个问题往往是我们的数据不是ARFF格式的。幸好,WEKA还提供了对CSV文件的支持,而这种格式是被很多其他软件所支持的。此外,WEKA还提供了通过JDBC访问数据库的功能。

  在这一节里,我们先以ExcelMatlab为例,说明如何获得CSV文件。然后我们将知道CSV文件如何转化成ARFF文件,毕竟后者才是WEKA支持得最好的文件格式。面对一个ARFF文件,我们仍有一些预处理要做,才能进行挖掘任务。

  .* -> .csv

  我们给出一个CSV文件的例子(bank-data.csv)。用UltraEdit打开它可以看到,这种格式也是一种逗号分割数据的文本文件,储存了一个二维表格。 

  ExcelXLS文件可以让多个二维表格放到不同的工作表(Sheet)中,我们只能把每个工作表存成不同的CSV文件。打开一个XLS文件并切换到需要转换的工作表,另存为CSV类型,点“确定”、“是”忽略提示即可完成操作。

  在Matlab中的二维表格是一个矩阵,我们通过这条命令把一个矩阵存成CSV格式。

  csvwrite('filename',matrixname)

  需要注意的是,Matllab给出的CSV文件往往没有属性名(Excel给出的也有可能没有)。而WEKA必须从CSV文件的第一行读取属性名,否则就会把第一行的各属性值读成变量名。因此我们对于Matllab给出的CSV文件需要用UltraEdit打开,手工添加一行属性名。注意属性名的个数要跟数据属性的个数一致,仍用逗号隔开。

  .csv -> .arff

  将CSV转换为ARFF最迅捷的办法是使用WEKA所带的命令行工具。

  运行WEKA的主程序,出现GUI后可以点击下方按钮进入相应的模块。我们点击进入“Simple CLI”模块提供的命令行功能。在新窗口的最下方(上方是不能写字的)输入框写上

  java weka.core.converters.CSVLoader filename.csv > filename.arff

  即可完成转换。

  在WEKA 3.5中提供了一个“Arff Viewer”模块,我们可以用它打开一个CSV文件将进行浏览,然后另存为ARFF文件。

  进入“Exploer”模块,从上方的按钮中打开CSV文件然后另存为ARFF文件亦可。

11.Exploer”界面

  我们应该注意到,“Exploer”还提供了很多功能,实际上可以说这是WEKA使用最多的模块。现在我们先来熟悉它的界面,然后利用它对数据进行预处理。


同关注

  • 评论

最新评论

同类工具

产品介绍:AMOS是SPSS Statistics软件包中的独立产品,是功能强大的结构方程(SEM)建模工具,…


产品介绍:Stata是一款可进行数据分析、数据管理以及绘制专业图表的统计软件。Stata具有强大的统计分析功能…


产品介绍:Eviews 软件是QMS(Quantitative Micro Software)公司开发的基于W…


产品介绍:Origin是一款图形可视化和数据分析软件,是科研人员和工程师常用的高级数据分析和制图工具,既可以满…


产品介绍:MATLAB广泛应用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要…


产品介绍:HLM是一个著名的多水平统计分析的软件,即使是不完整的数据,它也可以进行有效的多元线性分析,包括非限…


产品介绍:RapidMiner是一款开源的数据挖掘软件,它不仅提供了一个GUI的数据处理和分析环境,还提供了J…


产品介绍:UCIENT是一款社会网络分析软件,它包括一维与二维数据分析的NetDraw,还有正在发展应用的三维…


产品介绍:Citespace是一款应用于科学文献中的可视化文献分析软件,它能够显示一个学科或知识域在一定时期发…