zoukankan      html  css  js  c++  java
  • ML 与 DM 工具 Weka 的使用

    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-8data)

     1 % This is weather data     ==》》"%" 开头的内容属于注释
     2 % This is weather data
     3 % This is weather data
     4 
     5 @relation weather          ==》》关系声明
     6 
     7 @attribute outlook {sunny, overcast, rainy}    ==》》属性声明
     8 @attribute temperature numeric
     9 @attribute humidity numeric
    10 @attribute windy {TRUE, FALSE}
    11 @attribute play {yes, no}
    12 
    13 @data                    ==》》真实数据
    14 sunny,85,85,FALSE,no
    15 sunny,80,90,TRUE,no
    16 overcast,83,86,FALSE,yes
    17 rainy,70,96,FALSE,yes
    18 rainy,68,80,FALSE,yes
    19 rainy,65,70,TRUE,no
    20 overcast,64,65,TRUE,yes
    21 sunny,72,95,FALSE,no
    22 sunny,69,70,FALSE,yes
    23 rainy,75,80,FALSE,yes
    24 sunny,75,70,TRUE,yes
    25 overcast,72,90,TRUE,yes
    26 overcast,81,75,FALSE,yes
    27 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

  • 相关阅读:
    centos 搭建 sftp 服务器
    apt-get 安装时,提示lock被占用
    Kafka
    设计模式-分类
    SparkSQL – 从0到1认识Catalyst
    Spark分布式计算引擎
    Spark存储管理
    Spart RDD
    硬件工程师的你也不想一辈子画图、调板子吧!!!
    如何理解IPD+CMMI+Scrum一体化研发管理解决方案之Scrum篇
  • 原文地址:https://www.cnblogs.com/shenxiaolin/p/7892628.html
Copyright © 2011-2022 走看看