1、关于Weka 

  Weka 的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的、非商业化(与之对应的是SPSS公司商业数据挖掘产品--Clementine )的,基于JAVA环境下开源的机器学习(machine learning)以及数据挖掘(data mining)软件。它和它的源代码可在其官方网站下载。有趣的是,该软件的缩写WEKA也是新西兰独有的一种鸟名,而Weka的主要开发者同时恰好来自新西兰的the University of Waikato。

  Weka 作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。

2、Weka 的安装

  Weka 官网:http://www.cs.waikato.ac.nz/ml/weka/

于网页左下角找到 download ,进入下载页面,支持 windows,mac os,linux等平台下的版本,此处以windows系统作为示例。目前最新版本是3-8-1。如果计算机没有安装 Java,可以选择带有jre的版本。下载后是一个exe的可执行文件,双击进行安装即可。安装完毕,打开启动weka的快捷方式,如果可以看到如下界面,即是安装成功。

上图所示窗口共有4个Applications ,分别是:

1)Explorer(探索功能,用的最多)

用来进行数据实验、挖掘的环境,它提供了数据预处理,分类,聚类,关联规则,特征选择,数据可视化的功能。(An environment for exploring data with WEKA)

Preprocess (数据预处理)窗口:

2)Experimentor

用来进行实验,对不同学习方案进行数据测试的环境。(An environment for performing experiments and conducting statistical tests between learning schemes.)

3)KnowledgeFlow

功能和Explorer差不多,不过提供的接口不同,用户可以使用拖拽的方式去建立实验方案。另外,它支持增量学习。(This environment supports essentially the same functions as the Explorer but with a drag-and-drop interface. One advantage is that it supports incremental learning.)

4)SimpleCLI

简单的命令行界面。(Provides a simple command-line interface that allows direct execution of WEKA commands for operating systems that do not provide their own command line interface.)

3、Weka 数据格式

Weka 所处理的数据,其存储的格式是ARFF(Attribute-Relation File Format)文件,这是一种ASCII文本文件。Weka 所处理的数据集是一个二维的表格。表格里的一个横行称作一个实例(Instance),相当于统计学中的一个样本,或者数据库中的一条记录。 竖行称作一个属性(Attribute),相当于统计学中的一个变量,或者数据库中的一个字段。这样一个表格,或者叫数据集,在WEKA看来,呈现了属性之 间的一种关系(Relation)。

例子:Weka 自带的weather.numeric.arff 文件(在Weka安装目录下有:...\Weka-3-8\data)

 % This is weather data     ==》》"%" 开头的内容属于注释
% This is weather data
% This is weather data @relation weather ==》》关系声明 @attribute outlook {sunny, overcast, rainy} ==》》属性声明
@attribute temperature numeric
@attribute humidity numeric
@attribute windy {TRUE, FALSE}
@attribute play {yes, no} @data ==》》真实数据
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

其中,数据信息需要注意:

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

②数据缺失值:如果某个属性的值是缺失值(missing value),用问号“?”表示,且这个问号不能省略。例如:

@data
sunny,85,85,FALSE,no
?,78,90,?,yes

③稀疏数据 :有的时候数据集中含有大量的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的属性值用<index> <空格> <value>表示。<index>是属性的序号,从0开始计;<value>是属性值。属性值之间仍用逗号隔开。这里每个实例的数值必须按属性的顺序来写,如 {1 X, 3 Y, 4 "class A"},不能写成{3 Y, 1 X, 4 "class A"}。

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

【References】

1. https://baike.baidu.com/item/weka/10701215?fr=aladdin

2. http://blog.csdn.net/yangliuy/article/details/7589306

3. http://blog.51cto.com/baidutech/1033714

ML 与 DM 工具 Weka 的使用的更多相关文章

  1. 利用DM工具Weka进行数据挖掘(分类)的完整过程

    利用DM工具Weka进行数据挖掘(分类)的完整过程:

  2. AI,DM,ML,PR的区别与联系

    数据挖掘和机器学习的区别和联系,周志华有一篇很好的论述<机器学习与数据挖掘>可以帮助大家理解.数据挖掘受到很多学科领域的影响,其中数据库.机器学习.统计学无疑影响最大.简言之,对数据挖掘而 ...

  3. AI,DM,ML,PR的区别与联系

    数据挖掘和机器学习的区别和联系,周志华有一篇很好的论述<机器学习与数据挖掘>可以帮助大家理解.数据挖掘受到很多学科领域的影响,其中数据库.机器学习.统计学无疑影响最大.简言之,对数据挖掘而 ...

  4. ml

    基础篇: 1. 读书<Introduction to Data Mining>,这本书很浅显易懂,没有复杂高深的公式,很合适入门的人.另外可以用这本书做参考<Data Mining ...

  5. 数据挖掘系列(4)使用weka做关联规则挖掘

    前面几篇介绍了关联规则的一些基本概念和两个基本算法,但实际在商业应用中,写算法反而比较少,理解数据,把握数据,利用工具才是重要的,前面的基础篇是对算法的理解,这篇将介绍开源利用数据挖掘工具weka进行 ...

  6. Weka 3: Data Mining Software in Java

    官方网站: Weka 3: Data Mining Software in Java 相关使用方法博客 WEKA使用教程(经典教程转载) (实例数据:bank-data.csv) Weka初步一.二. ...

  7. ML笔记_机器学习基石01

    1  定义 机器学习 (Machine Learning):improving some performance measure with experience computed from data ...

  8. Spark的MLlib和ML库的区别

    机器学习库(MLlib)指南 MLlib是Spark的机器学习(ML)库.其目标是使实际的机器学习可扩展和容易.在高层次上,它提供了如下工具: ML算法:通用学习算法,如分类,回归,聚类和协同过滤 特 ...

  9. 【深度学习Deep Learning】资料大全

    最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books  by Yoshua Bengio, Ian Goodfellow and Aaron C ...

随机推荐

  1. Codeforces Round #304 (Div. 2) C. Soldier and Cards 水题

    C. Soldier and Cards Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/546 ...

  2. python string和dict转换

    字典(dict)转为字符串(string) 我们可以比较容易的将字典(dict)类型转为字符串(string)类型. 通过遍历dict中的所有元素就可以实现字典到字符串的转换: for key, va ...

  3. Linux/drivers/usb/serial/ftdi_sio.c

    Linux/drivers/usb/serial/ftdi_sio.h /* 2 * Driver definitions for the FTDI USB Single Port Serial Co ...

  4. Digital Current-Mode Control Challenges Analog Counterparts

    http://electronicdesign.com/digital-ics/digital-current-mode-control-challenges-analog-counterparts ...

  5. /etc/fstab 转

    一./etc/fstab文件的作用 磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载. 系统开机时会主动读取/etc/fstab这个文件中的内容 ...

  6. telnet用法 测试端口号

    Telnet是进行远程登录的标准协议和主要方式它为用户提供了在本地计算机上完成远程主机工作的能力.可以用telnet命令来测试端口号是否正常打开还是关闭状态. 工具/原料 电脑 cmd命令 方法/步骤 ...

  7. RxJava Subject

    Subject Subject可以看成是一个桥梁或者代理,在某些ReactiveX实现中(如RxJava),它同时充当了Observer和Observable的角色.因为它是一个Observer,它可 ...

  8. JS中实现字符串和数组的相互转化

    早上起来看了一道js的面试题,是这样描述的:利用var s1=prompt("请输入任意的字符串","")可以获取用户输入 的字符串,试编程将用户输入的字符串“ ...

  9. 覆写Activity的finish()方法

    MainActivity如下: package cn.testfinish; import android.app.Activity; import android.os.Bundle; import ...

  10. Win7+Qt5.6.0(64位)+msvc2015编译器 环境配置

    根据“Qt简介,Qt 5.6.0-VS2015 版本安装配置图文教程”安装第二套IDE,使用Qt官方的集成开发环境 QtCreator + 微软的WinDbg调试器(内含命令行调试器为CDB)的组合. ...