转载自: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. Gcc And MakeFile Level1

    简单介绍gcc And make 的使用 基本编译 gcc a.c b.c -o exeName 分步编译 gcc -c a.c -o a.o gcc a.o b.c -o main.o 使用Make ...

  2. SqlMapConfig配置文件中的typeAliases标签用于自定义别名

    1.mybatis支持别名: 别名 映射的类型 _byte byte _long long _short short _int int _integer int _double double _flo ...

  3. RemoteExt 远程验证

    public class RemoteExtAttribute : RemoteAttribute { private string _resourceKey; public RemoteExtAtt ...

  4. update-alternatives命令详解

    转载:http://blog.csdn.net/maixia24/article/details/11707289 update-alternatives是ubuntu系统中专门维护系统命令链接符的工 ...

  5. Qt的安装和使用中的常见问题(简略版)

    对于喜欢研究细节的朋友,可参考Qt的安装和使用中的常见问题(详细版). 目录 1.引入 2.Qt简介 3.Qt版本 3.1 查看安装的Qt版本 3.2 查看当前项目使用的Qt版本 3.3 查看当前项目 ...

  6. PHPStorm 忽略 node_modules 目录

    如果项目中包含 node_modules 目录,会使 PHPStorm 卡得很慢, 原因:PHPStorm 在进行大量的扫描工作. 解决:忽略它 原文地址:https://segmentfault.c ...

  7. 2016年,你读过的最好的IT技术书有哪几本?

    def 程序员 原文 https://www.zhihu.com/question/54350343 陈硕 等 54 人赞同了该回答 1 知乎 陈硕大牛的 服务器多线程编程muduo 输的好不好可能更 ...

  8. jsoncpp学习

    // MyJsonTest.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <fstream> #includ ...

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

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

  10. Duplicate Symbol链接错误的原因总结和解决方法[转]

    from:http://www.cocoachina.com/bbs/read.php?tid=177492 duplicate symbol是一种常见的链接错误,不像编译错误那样可以直接定位到问题的 ...