转载自:https://blog.csdn.net/u011067360/article/details/20844443

数据挖掘开源软件:WEKA基础教程

本文档部分来自于网络,随着自己的深入学习,讲不断的修订和完善。

第一节   Weka简介:

Weka是由新西兰怀卡托大学开发的智能分析系统(Waikato Environment for Knowledge Analysis)  。在怀卡托大学

以外的地方,Weka通常按谐音念成Mecca,是一种现今仅存活于新西兰岛的,健壮的棕色鸟,  非常害羞,好奇心很强,但不会飞  。

Weka是用Java写成的,它可以运行于几乎所有的操作平台,包括Linux,Windows等操作系统。

Weka平台提供一个统一界面,汇集了当今最经典的机器学习算法及数据预处理工具。做为知识获取的完整系统,

包括了数据输入、预处理、知识获取、模式评估等环节,以及对数据及学习结果的可视化操作。并且可以通过对不同

的学习方法所得出的结果进行比较,找出解决当前问题的最佳算法。

Weka提供了许多用于数据可视化及预处理的工具(也称作过滤器),包括种类繁多的用于数据集转换的工具等。所有机器学习算法对输入数据都要求其采用ARFF格式。   Weka作为一个公开的知识过去的工作平台,集合了大量能承担数据(知识)挖掘任务的机器学习算法,包括分类,回归、聚类、关联规则等。

Weka与许多数据分析软件一样,Weka所处理的数据集是一个二维的表格.

下面代码所示的二维表格存储在如下的ARFF文件中。这也就是Weka自带的“weather.arff”文件,在Weka安装目录的“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

Weka中的属性介绍:

数据集中的每一个属性都有它对应的“@attribute”语句,来定义它的属性名称和数据类型。

Weka支持的有四种,分别是

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

nominal-specification-----------分类(nominal)型

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

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

数值属性:是整数或者实数,但Weka把它们都当作实数看待。

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

分类属性:由列出所有可能的类别名称并放在花括号中,如:

@attribute outlook {sunny, overcast, rainy} 。每个实例对应的“outlook”值必是这三者之一。

日期和时间属性:统一用“date”类型表示,它的格式是:@attribute date [] 其中是这个属性的名称,是一个字符

串,来规定该怎样解析和显示日期或时间的格式,

默认的字符串是ISO-8601所给的日期时间组合格式“yyyy-mm-dd hh:mm:ss”。

数据信息部分表达日期的字符串必须符合声明中规定的格式要求。

“Exploer”界面:

我们根据不同的功能把这个界面分成8个区域。

区域1的几个选项卡是用来切换不同的挖掘任务面板。这一节用到的只有“Preprocess”,其他面板的功能将在以后介绍。

区域2是一些常用按钮。包括打开数据,保存及编辑功能。我们在这里把"bank-data.csv"另存为"bank-data.arff"。

在区域3中“Choose”某个“Filter”,可以实现筛选数据或者对数据进行某种变换。数据预处理主要就利用它来实现。

区域4展示了数据集的一些基本情况。

区域5中列出了数据集的所有属性。勾选一些属性并“Remove”就可以删除它们,删除后还可以利用区域2的“Undo”按钮找回。区域5上方的一排按钮是用来实现快速勾选的。

在区域5中选中某个属性,则区域6中有关于这个属性的摘要。注意对于数值属性和分类属性,摘要的方式是不一样的。图中显示的是对数值属性“income”的摘要。

区域7是区域5中选中属性的直方图。若数据集的最后一个属性(我们说过这是分类或回归任务的默认目标变量)是分类变量(这里的“pep”正好是),直方图中的每个长方形就会按照该变量的比例分成不同颜色的段。要想换个分段的依据,在区域7上方的下拉框中选个不同的分类属性就可以了。下拉框里选上“No Class”或者一个数值属性会变成黑白的直方图。

区域8是状态栏,可以查看Log以判断是否有错。右边的weka鸟在动的话说明WEKA正在执行挖掘任务。右键点击状态栏还可以执行JAVA内存的垃圾回收。

接下来在简单的看看窗口的其他几个标签菜单

Explorer: building “classifiers”:

nClassifiersin WEKA are models for predicting nominal or numeric quantities
nImplementedlearning schemes include:
uDecision trees and lists,instance-based classifiers, support vector machines, multi-layer perceptrons,logistic regression, Bayes’ nets, …
n“Meta”-classifiersinclude:

Bagging,boosting, stacking, error-correcting output codes, locally weighted learning

Explorer: clustering data:

nWEKAcontains “clusterers”for finding groups of similar instances in a dataset
nImplementedschemes are:
uk-Means,EM, Cobweb, X-means,FarthestFirst
nClusterscan be visualized and compared to “true” clusters (if given)
nEvaluationbased on loglikelihood ifclustering scheme produces a probability distribution

Explorer: finding associations:

WEKAcontains an implementation of the Apriorialgorithm for learning association rules
uWorks only with discrete data
Canidentify statistical dependencies between groups of attributes:
umilk, butter Þ bread, eggs (with confidence 0.9and support 2000)
Apriorican compute all rules that have a given minimum support and exceed a givenconfidence
 

Explorer: attribute selection:

Panelthat can be used to investigate which (subsets of) attributes are the mostpredictive ones
Attributeselection methods contain two parts:
A search method: best-first,forward selection, random, exhaustive, genetic algorithm, ranking
An evaluation method:correlation-based, wrapper, information gain, chi-squared, …
Veryflexible: WEKA allows (almost) arbitrary combinations of these two
Explorer: data visualization:
Visualizationvery useful in practice: e.g. helps to determine difficulty of the learningproblem
WEKAcan visualize single attributes (1-d) and pairs of attributes (2-d)
To do: rotating 3-dvisualizations (Xgobi-style)
Color-codedclass values
“Jitter”option to deal with nominal attributes (and to detect “hidden” data points)
“Zoom-in”function
 
 
 
Performing experiments:
Experimentermakes it easy to compare the performance of different learning schemes
Forclassification and regression problems
Resultscan be written into file or database
Evaluationoptions: cross-validation, learning curve, hold-out
Canalso iterate over different parameter settings
Significance-testingbuilt in!

 
 
The Knowledge Flow GUI:
Newgraphical user interface for WEKA
Java-Beans-basedinterface for setting up and running machine learning experiments
Datasources, classifiers, etc. are beans and can be connected graphically
Data“flows” through components: e.g.,

“data source” -> “filter” ->“classifier” -> “evaluator”

Layoutscan be saved and loaded again later

0、weka学习与使用的更多相关文章

  1. IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API

    IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习之保护API. 使用IdentityServer4 来实现使用客户端凭据保护ASP.N ...

  2. 20145208 《Java程序设计》第0周学习总结

    20145208 <Java程序设计>第0周学习总结 阅读心得 读了老师推荐的几个文章,虽然第四个文章"为什么一定要自学"报告资源不存在而无法阅读,其他的三篇文章都言之 ...

  3. Json.Net6.0入门学习试水篇

    原文:Json.Net6.0入门学习试水篇 前言 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.简单地说,JSON 可以将 JavaScript 对象中 ...

  4. Bootstrap3.0入门学习系列

    Bootstrap3.0入门学习系列规划[持续更新]   前言 首先在此多谢博友们在前几篇博文当中给与的支持和鼓励,以及在回复中提出的问题.意见和看法. 在此先声明一下,之前在下小菜所有的随笔文章中, ...

  5. 自己从0开始学习Unity的笔记 I (C#字符串转换为数字)

    我基本上从0开始学习编程,运算符基本上跳过,因为知道了 “=”这个符号相当于赋值,然后“==”才是等于,其他和普通运算符号差不都,也就跳过了. 最基础的赋值那种,我看了下代码,似乎没什么难度,估计新手 ...

  6. 从0开始学习 GITHUB 系列之「向GITHUB 提交代码」【转】

    本文转载自:http://stormzhang.com/github/2016/06/04/learn-github-from-zero4/ 版权声明:本文为 stormzhang 原创文章,可以随意 ...

  7. 从0开始学习 GITHUB 系列之「GIT 速成」【转】

    本文转载自:http://stormzhang.com/github/2016/05/30/learn-github-from-zero3/ 版权声明:本文为 stormzhang 原创文章,可以随意 ...

  8. 从0开始学习 GITHUB 系列之「加入 GITHUB」【转】

    本文转载自:http://stormzhang.com/github/2016/05/26/learn-github-from-zero2/ 版权声明:本文为 stormzhang 原创文章,可以随意 ...

  9. 20145328 《Java程序设计》第0周学习总结

    20145328 <Java程序设计>第0周学习总结 阅读心得 从总体上来说,这几篇文章都是围绕着软件工程专业的一些现象来进行描述的,但深入了解之后就可以发现,无论是软件工程专业还是我们现 ...

  10. 从零开始搭建.NET Core 2.0 API(学习笔记一)

    从零开始搭建.NET Core 2.0 API(学习笔记一) 一. VS 2017 新建一个项目 选择ASP.NET Core Web应用程序,再选择Web API,选择ASP.NET Core 2. ...

随机推荐

  1. SpringMVC框架结构的图解、架构的处理流程以及三大组件的说明和使用

    1.1 框架结构 1.2 架构流程 1.用户发送请求至前端控制器DispatcherServlet: 2.DispatcherServlet收到请求调用HandlerMapping处理器映射器: 3. ...

  2. 二分图 and code1170 双栈排序

    6.6二分图 二分图是这样一个图: 有两顶点集且图中每条边的的两个顶点分别位于两个顶点集中,每个顶点集中没有边直接相连接. 无向图G为二分图的充分必要条件是,G至少有两个顶点,且其所有回路的长度均为偶 ...

  3. Java设计模式(4)——单例模式

    转载:http://wiki.jikexueyuan.com/project/java-design-pattern/singleton-pattern.html 单例模式根据实例化对象时机的不同分为 ...

  4. mongon命令(转)

    原文:http://www.cnblogs.com/blueness-sunshine/p/6139092.html   连接mongodb: mongo -u --authenticationDat ...

  5. linux nkf 日文编码转换命令[转载]

    对于日语的编码 windows : Shift-JIS Linux : 2.4内核使用EUC编码,2.6内核中使用UTF8编码 检查文件编码  nkf -g filename 通常处理字符编码都使用i ...

  6. I-Keyboard

    SPOJ Problem Set (classical) 14. I-Keyboard Problem code: IKEYB Most of you have probably tried to t ...

  7. OpenSSL命令---crl2pkcs7

    用途: 本命令根据CRL或证书来生成pkcs#7消息. 用法: openssl crl2pkcs7 [-inform PEM|DER ] [-outform PEM|DER ] [-in filena ...

  8. write/read/send/receive函数比较

    建立好TCP连接后,就可以把得到的套接字当做文件描述符来使用,由此,联系到网络程序里的基本读写函数,write.read: l write函数: Ssize_t write(int fd,const ...

  9. MSP430 G2553 LaunchPad GPIO中断

    P1.P2端口上的每个管脚都支持外部中断.P1端口的所有管脚都对应同一个中断向量(Interrupt Vector),类似的,P2端口的所有管脚都对应另一个中断向量:通过PxIFG寄存器来判断中断来源 ...

  10. solr特点四: SpellCheck(拼写检查)

    接下来,我将介绍如何向应用程序添加 “您是不是要找……”(拼写检查). 提供拼写建议 Lucene 和 Solr 很久以前就开始提供拼写检查功能了,但直到添加了 SearchComponent架构之后 ...