Weka数据挖掘软件使用指南.docx

上传人:b****8 文档编号:27665093 上传时间:2023-07-03 格式:DOCX 页数:9 大小:20.54KB
下载 相关 举报
Weka数据挖掘软件使用指南.docx_第1页
第1页 / 共9页
Weka数据挖掘软件使用指南.docx_第2页
第2页 / 共9页
Weka数据挖掘软件使用指南.docx_第3页
第3页 / 共9页
Weka数据挖掘软件使用指南.docx_第4页
第4页 / 共9页
Weka数据挖掘软件使用指南.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

Weka数据挖掘软件使用指南.docx

《Weka数据挖掘软件使用指南.docx》由会员分享,可在线阅读,更多相关《Weka数据挖掘软件使用指南.docx(9页珍藏版)》请在冰豆网上搜索。

Weka数据挖掘软件使用指南.docx

Weka数据挖掘软件使用指南

Weka数据挖掘软件使用指南

Weka数据挖掘软件使用指南

1.Weka简介

该软件是WEKA的全名是怀卡托智能分析环境(WaikatoEnvironmentforKnowledgeAnalysis),它的源代码可通过得到。

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

如果想自己实现数据挖掘算法的话,可以看一看Weka的接口文档。

在Weka中集成自己的算法甚至借鉴它的方法自己实现可视化工具并不是件很困难的事情。

2.Weka启动

打开Weka主界面后会出现一个对话框,如图:

主要使用右方的四个模块,说明如下:

Explorer使用Weka探索数据的环境,包括获取关联项,分类预测,

簇等;(本文主要总结这个部分的使用)

Experimenter运行算法试验、管理算法方案之间的统计检验的环境;KnowledgeFlow这个环境本质上和Explorer所支持的功能是一样的,但是它有一个可以拖放的界面。

它有一个优势,就是支持增量学习;SimpleCLI提供了一个简单的命令行界面,从而可以在没有自带命令行的操作系统中直接执行Weka命令;(某些情况下使用命令行功能更好一些)

3.主要操作说明

点击进入Explorer模块开始数据探索环境:

3.1主界面

进入Explorer模式后的主界面如下:

3.1.1标签栏

主界面最左上角(标题栏下方)的是标签栏,分为五个部分,功能依次是:

1.Preprocess.选择和修改要处理的数据;

2.Classify.训练和测试关于分类或回归的学习方案;

3.Cluster.从数据中学习聚类;

4.Associate.从数据中学习关联规则;

5.Selectattributes.选择数据中最相关的属性;

6.Visualize.查看数据的交互式二维图像。

3.1.2载入、编辑数据

标签栏下方是载入数据栏,功能如下:

1.Openfile.打开一个对话框,允许你浏览本地文件系统上的数据文件(.dat);

2.OpenURL.请求一个存有数据的URL地址;

3.OpenDB.从数据库中读取数据;

4.Generate.从一些数据生成器中生成人造数据。

3.1.3其他界面说明

接下来的主界面中依次是Filter(筛选器),Currtentrelation(当前关系)、Attributes(属性信息)、Selectedattribute(选中的属性信息)以及Class(类信息),分别介绍如下:

Filter

在预处理阶段,可以定义筛选器来以各种方式对数据进行变换。

Filter一栏用于对各种筛选器进行必要设置。

Filter一栏的左边是一个

Choose按钮。

点击这个按钮就可选择Weka中的某个筛选器。

用鼠标左键点击这个choose左边的显示框,将出现GenericObjectEditor对话框。

用鼠标右键点击将出现一个菜单,你可从中选择,要么在

GenericObjectEditor对话框中显示相关属性,要么将当前的设置字符复制到剪贴板。

Currtentrelation

显示当前打开的数据文件的基本信息:

Relation(关系名),Instances(实例数)以及Attributes(属性个数)。

Attributes

显示数据文件中的属性信息,并且包含四个操作按键:

1.All.所有选择框都被勾选;

2.None.所有选择框被取消;

3.Invert.已勾选的选择框都被取消,反之亦然;

4.Pattern.让用户基于Perl5正则表达式来选择属性。

例如,用*_id选择所有名称以_id结束的属性。

底下显示的就是数据文件包含的属性,可以进行勾选等操作。

特别地,当数据预处理是不要某个属性时,将其各选,点击列表正下方的Remove按键即可删除这一属性:

Selectedattribute

显示勾选的属性的基本信息。

Class

显示属性中数据元组的直方图。

点击Visualizeall按键可以查看所有属性中元组的直方图。

3.2实现基本数据挖掘功能:

3.2.1Associate(关联规则)

注意:

目前,Weka的关联规则分析功能仅能用来作示范,不适合用来挖掘大型数据集。

各部分功能说明如下:

Associator

首先切换到Associate选项卡。

默认关联规则分析是用Apriori算法,我们就用这个算法,点Choose右边的文本框修改默认的参数,弹出的窗口中点More可以看到各参数的说明。

一下简列几项:

LowerBonundMinSupport:

最小支持度下限;

UpperBonundMinSupport:

最小支持度上限;

metricType:

关联、程度指标;

numRules:

在某种关联规则下取出的满足条件的规则数;

注意:

各种关联规则算法都是尤其使用范围的,并不是所有的属性的数据类型都能被某一算法处理,典型的例如Apriori算法。

因此可以在choose下拉菜单中选择Filter选项,在其中勾选待处理数据的属性的类型以滤除无法使用的算法。

要想知道每种算法都是用哪些数据类型,可以左击choose旁边的文本框,在弹出的菜单栏中单击capabilities选项可以看到这种算法能够处理的数据类型。

Resultlist

点击Associator下方的start按键可以开始进行关联项分析,结果列表即出现在Resultlist中,右击出现更多选项可供选择。

Associatoroutput

这里显示关联分析结果,如图为一个例子:

一次显示了100个符合条件的关联规则,并且在其后显示了关联规则的四项指标以供参考。

3.2.2Classify(分类预测)

该部分实现数据挖掘中的分类与预测功能,提供了各种主要的分类预测算法供使用者选择。

下面是界面各部分的介绍:

Classifier

在choose一栏中选择需要的分类算法,同样地方法,每当选择一个算法,这个算法便在choose

左边的文本框中进行显示,单击他会出

现一个菜单,其中包含了一些参数的设定和more以及capabilities选项,欠着用来获取那些需要设定参数的具体信息,后者用来获取算法适合的属性数据类型,这一点是相似的,因此在对数据进行处理是也应该注意数据的属性类型,单击choose在下拉菜单中选择Filter按键可以进行数据类型的选择从而过滤掉不能使用的算法。

Testoption

提供四种测试模式:

1.Usingtrainingset.根据分类器在用来训练的实例上的预测效果来评价它。

2.Suppliedtestset.从文件载入的一组实例,根据分类器在这组实例上的预测效果来评价它。

点击Set。

按钮将打开一个对话框来选择用来测试的文件。

3.Cross-validation.使用交叉验证来评价分类器,所用的折数填在Folds文本框中。

4.Percentagesplit.从数据集中按一定百分比取出部分数据放在一边作测试用,根据分类器这些实例上预测效果来评价它。

取出的数据量由%一栏中的值决定。

当一切准备就绪时,点击start按键开始分类过程,完成后Resultlist中会显示结果列表,并且Classifieroutput中会显示出结果。

右击Resultlist中的结果,可以看见多个选项,选择Visualizetree,新窗口里可以看到图形模式的决策树。

建议把这个新窗口最大化,然后点右键,选“Fittoscreen”,可以把这个树看清楚些。

先运行一个结果解

释其中一些内容,如图所示:

第一行的CorrectlyClassifiedInstances表示当前参与分类的实例中被正确分类的实例数目,第二行IncorrectlyClassifiedInstances表示未被正确分类的实例数目。

关于ConfusionMatrix,解释如下:

原本“pep”是“YES”的实例,有74个被正确的预测为“YES”,有64个错误的预测成了“NO”;原本“pep”是“NO”的实例,有30个被错误的预测为“YES”,有132个正确的预测成了“NO”。

74+64+30+132=300是实例总数,而(74+132)/300=0.__正好是正确分类的实例所占比例。

这个矩阵对角线上的数字越大,说明预测得越好。

更多选项及解释内容参见:

3.3.3Cluster(聚簇分析)

聚簇分析的原理就是将为标定类的数据根据其相似性分为几个类,在同一类中的数据元组具有较强的相似性,而在不同类中的数据元组则没有相似性或者很弱。

现对其主要界面说明如下:

Clusterer

单击choose,在这里可以选择适当的聚簇算法,选择后该算法会出现在choose左边的文本框中,在单击弹出的菜单可以对参数进行设定。

同时在选择more或者capabilities选项可以查看每种设定表示的具体信息和该算法的适用范围(包括适用的数据类型信息等)。

Clustermode

ClusterMode一栏用来决定依据什么来聚类以及如何评价聚类的结果。

前三个选项和分类的情形是一样的:

Usetrainingset、Suppliedtestset和Percentagesplit区别在于现在的数据是要聚集到某个类中,而不是预测为某个指定的类别。

第四个模式,Classestoclustersevaluation,是要比较所得到的聚类与在数据中预先给出的类别吻合得怎样。

和Classify面板一样,下方的下拉框是用来选择作为类别

的属性的。

在Clustermode之外,有一个Storeclustersforvisualization的勾选框,该框决定了在训练完算法后可否对数据进行可视化。

设定按start开始进行,注意在其上方的

可以允许我们忽略某些属性。

Resultlist

与前面的情形一样,该栏对结果进行顺序显示。

右击每一项弹出选择菜单:

如,Visualizeclusterassignments和Visualizetree。

后者在它不可用时会变灰。

Clustereroutput

显示聚簇分析的结果。

具体解释参见:

http:

//maya.cs.depaul.edu/~classes/ect584/WEKA/classify.html

Linux下Weka环境配置:

在Linux下和windows下使用Weka

注:

我的版本是Weka3.6.

linux环境下:

一般下载了官方提供的tar.gz包之后解压,如果机器上装有java运行环境,可以直接运行weka.

不过可能会在命令行出现

加载数据库驱动出错,在classpath找不到驱动之类消息,

似乎是cannotfindcom.mysql.jdbc.Drivererrornotin__TH?

如果你不需要从数据库加载数据作为分析数据源,完全不用理会。

要想使用数据库连接功能,首先准备好对应数据库的驱动,比如mysqljdbcDriver等,简便的方法是

将jar文件copy到

/usr/lib/jvm/“java-1.6.0-openjdk”/jre/lib/ext

“java-1.6.0-openjdk“不是唯一的,具体视机器上装的java运行时而

定。

还有修改__TH的方法,没尝试过。

这一步弄完之后应该不会出现命令行提示找不到驱动的错误。

其次是修改weka数据类型和数据库数据类型的映射。

(这下面的内容来自Weka官方wiki/Properties+file)

在weka.jar里面有一个文件

/weka/experiment/DatabaseUtils.props,记录了数据库操作的相关参数。

还有很多文件

DatabaseUtils.props.msaccess,

DatabaseUtils.props.mssqlserver等,分别对应了各个数据库的操作参数,

如果你使用msaccess,可以把DatabaseUtils.props.msaccess的内容覆盖DatabaseUtils.props.

如果不对DatabaseUtils.props修改,可能在连接数据库时一切顺利,但在将数据装入准备预处理时

却出现找不到数据类型(cannotreadfromdatabase,unknowndatatype)之类错误。

没关系,在DatabaseUtils.props加入类型映射就OK了。

文件中一般有下面的内容(这里是我用mysql对应的文件覆盖了):

#JDBCdriver(comma-separatedlist)

jdbcDriver=com.mysql.jdbc.Driver

#databaseURL

jdbcURL=jdbc:

mysql:

//server_name:

3306/database_name

#specificdatatypes

string,getString()=0;--nominal

boolean,getBoolean()=1;--nominal

double,getDouble()=2;--numeric

byte,getByte()=3;--numeric

short,getByte()=4;--numeric

int,getInteger()=5;--numeric

long,getLong()=6;--numeric

float,getFloat()=7;--numeric

date,getDate()=8;--date

text,getString()=9;--string

time,getTime()=10;--date

BigDecimal,getBigDecimal()=11;--nominal

#mysql-conversion

CHAR=0

TEXT=0

#mysql-conversion下提供的类型一般是不够的,比如intunsigned就找不到,

所以要加入int是如何映射到weka类型的。

在#specificdatatypes下找到Int对应的java类型,这里是int,getInteger()=5;--numeric

所以在#mysql-conversion下新增INT=5

再加上__D类型,INT___D=6(因为unsigned比signed多一倍的数,为防止截断,要取大的类型)

其他类型的映射依次类推。

注意INT和__D之间的下划线,缺了的话错误解决不了,我就在这里搞了好久。

(Note:

incasedatabasetypeshaveblanks,oneneedstoreplacethoseblankswithanunderscore,e.g.,DOUBLE__ONmustbelistedlikethis:

DOUBLE___ON=2)

from

/weka_experiment_DatabaseUtils.props#toc4

最后,最重要的是,把DatabaseUtils.props放到home目录下,重启Weka后生效。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1