数据挖掘工具WEKA.docx

上传人:b****6 文档编号:6172220 上传时间:2023-01-04 格式:DOCX 页数:18 大小:32KB
下载 相关 举报
数据挖掘工具WEKA.docx_第1页
第1页 / 共18页
数据挖掘工具WEKA.docx_第2页
第2页 / 共18页
数据挖掘工具WEKA.docx_第3页
第3页 / 共18页
数据挖掘工具WEKA.docx_第4页
第4页 / 共18页
数据挖掘工具WEKA.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

数据挖掘工具WEKA.docx

《数据挖掘工具WEKA.docx》由会员分享,可在线阅读,更多相关《数据挖掘工具WEKA.docx(18页珍藏版)》请在冰豆网上搜索。

数据挖掘工具WEKA.docx

数据挖掘工具WEKA

数据挖掘工具(WEKA)

WEKA简介数据格式数据准备属性选择可视化分析分类预测关联分析聚类分析扩展WEKA

课程的总体目标和要求:

课程的总体目标和要求:

熟悉WEKA的基本操作,了解WEKA的各项功能掌握数据挖掘实验的流程

准备数据选择算法和参数运行评估实验结果

了解或掌握在WEKA中加入新算法的方法

1、WEKA简介

WEKA的全名是怀卡托智能分析环境(WaikatoEnvironmentforKnowledgeAnalysis),其源代码可从http:

//www.cs.waikato.ac.nz/ml/weka/得到。

同时weka也是新西兰的一种鸟名,而WEKA的主要开发者来自新西兰。

2005年8月,在第11届ACMSIGKDD国际会议上,怀卡托大学的WEKA小组荣获了数据挖掘和知识探索领域的最高服务奖,WEKA系统得到了广泛的认可,被誉为数据挖掘和机器学习历史上的里程碑,是现今最完备最完备的数最完备据挖掘工具之一。

WEKA的每月下载次数已超过万次。

1、WEKA简介(续)

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

通过其接口,可在其基础上实现自己的数据挖掘算法。

WEKA的界面

2、数据格式

WEKA所用的数据格式(跟Excel一样)Explorer界面界面Openfile…Edit…

2、数据格式(续)

WEKA文件相关术语表格里的一个横行称作一个实例(Instance),相当于统计学中的一个样本,或者数据库中的一条记录。

竖行称作一个属性(Attribute),相当于统计学中的一个变量,或者数据库中的一个字段。

这样一个表格,或者叫数据集,在WEKA看来,呈现了属性之间的一种关系(Relation)。

上图中一共有14个实例,5个属性,关系名称为“weather”。

WEKA存储数据的格式是ARFF(Attribute-RelationFileFormat)文件,这是一种ASCII文本文件。

上图所示的二维表格存储在如下的ARFF文件中。

这也就是WEKA自带的“weather.arff”文件,在WEKA安装目录的“data”子目录下可以找到。

2、数据格式(续)

文件内容说明识别ARFF文件的重要依据是分行,因此不能在这种文件里随意的断行。

空行(或全是空格的行)将被忽略。

以“%”开始的行是注释,WEKA将忽略这些行。

如果你看到的“weather.arff”文件多了或少了些“%”开始的行,是没有影响的。

除去注释后,整个ARFF文件可以分为两个部分。

第一部分给出了头信息(Headinformation),包括了对关系的声明和对属性的声明。

第二部分给出了数据信息(Datainformation),即数据集中给出的数据。

从“@data”标记开始,后面的就是数据信息了。

2、数据格式(续)

关系声明关系名称在ARFF文件的第一个有效行来定义,格式为@relation是一个字符串。

如果这个字符串包含空格,它必须加上引号(指英文标点的单引号或双引号)。

2、数据格式(续)

属性声明属性声明用一列以“@attribute”开头的语句表示。

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

这些声明语句的顺序很重要。

首先它表明了该项属性在数据部分的位置。

例如,“humidity”是第三个被声明的属性,这说明数据部分那些被逗号分开的列中,第三列数据85908696...是相应的“humidity”值。

其次,最后一个声明的属性被称作class属性,在分类或回归任务中,它是默认的目标变量。

属性声明的格式为@attribute其中是必须以字母开头的字符串。

和关系名称一样,如果这个字符串包含空格,它必须加上引号。

2、数据格式(续)

WEKA支持的有四种

numericstringdate[]数值型标称(nominal)型字符串型日期和时间型

其中将在下面说明。

还可以使用两个类型“integer”和“real”,但是WEKA把它们都当作“numeric”看待。

注意“integer”,“real”,“numeric”,“date”,“string”这些关键字是区分大小写的,而“relation”、“attribute”和“data”则不区分。

2、数据格式(续)

数值属性数值型属性可以是整数或者实数,但WEKA把它们都当作实数看待。

标称属性标称属性由列出一系列可能的类别名称并放在花括号中:

{,,,...}。

数据集中该属性的值只能是其中一种类别。

例如如下的属性声明说明“outlook”属性有三种类别:

“sunny”,“overcast”和“rainy”。

而数据集中每个实例对应的“outlook”值必是这三者之一。

@attributeoutlook{sunny,overcast,rainy}如果类别名称带有空格,仍需要将之放入引号中。

2、数据格式(续)

字符串属性字符串属性中可以包含任意的文本。

这种类型的属性在文本挖掘中非常有用。

示例:

@ATTRIBUTELCCstring日期和时间属性日期和时间属性统一用“date”类型表示,它的格式是@attributedate[]其中是这个属性的名称,是一个字符串,来规定该怎样解析和显示日期或时间的格式,默认的字符串是ISO-8601所给的日期时间组合格式“yyyy-MM-ddTHH:

mm:

ss”。

数据信息部分表达日期的字符串必须符合声明中规定的格式要求(下文有例子)。

2、数据格式(续)

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

每个实例占一行。

实例的各属性值用逗号“,”隔开。

如果某个属性的值是缺失值(missingvalue),用问号“”表示,且这个问号不能省略。

例如:

@datasunny,85,85,FALSE,no,78,90,,yes

2、数据格式(续)

字符串属性和标称属性的值是区分大小写的。

若值中含有空格,必须被引号括起来。

例如:

@relationLCCvsLCSH@attributeLCCstring@attributeLCSHstring@data

AG5,'Encyclopediasanddictionaries.;Twentiethcentury.'AS262,'Science--SovietUnion--History.'

2、数据格式(续)

日期属性的值必须与属性声明中给定的相一致。

例如:

@RELATIONTimestamps@ATTRIBUTEtimestampDATE"yyyy-MM-ddHH:

mm:

ss"@DATA"2001-04-0312:

12:

12""2001-05-0312:

59:

55"

3、数据准备

数据文件格式转换使用WEKA作数据挖掘,面临的第一个问题往往是我们的数据不是ARFF格式的。

幸好,WEKA还提供了对CSV文件的支持,而这种格式是被很多其他软件,比如Excel,所支持的。

现在我们打开“bank-data.csv”。

利用WEKA可以将CSV文件格式转化成ARFF文件格式。

ARFF格式是WEKA支持得最好的文件格式。

此外,WEKA还提供了通过JDBC访问数据库的功能。

“Explorer”界面界面“Explorer”提供了很多功能,是WEKA使用最多的模块。

现在我们先来熟悉它的界面,然后利用它对数据进行预处理。

3、数据准备(续)

bank-data数据各属性的含义如下:

id:

auniqueidentificationnumberage:

ageofcustomerinyears(numeric)sex:

MALE/FEMALEregion:

inner_city/rural/suburban/townincome:

incomeofcustomer(numeric)married:

isthecustomermarried(YES/NO)children:

numberofchildren(numeric)car:

doesthecustomerownacar(YES/NO)save_act:

doesthecustomerhaveasavingaccount(YES/NO)current_act:

doesthecustomerhaveacurrentaccount(YES/NO)mortgage:

doesthecustomerhaveamortgage(YES/NO)pep:

didthecustomerbuyaPEP(PersonalEquityPlan,个人参股计划)afterthelastmailing(YES/NO)

12346

57

8

3、数据准备(续)

1.

2.

3.4.

上图显示的是“Explorer”打开“bank-data.csv”的情况。

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

区域1的几个选项卡是用来切换不同的挖掘任务面板。

这一节用到的只有“Preprocess”,其他面板的功能将在以后介绍。

区域2是一些常用按钮。

包括打开数据,保存及编辑功能。

我们可以在这里把“bank-data.csv”另存为“bankdata.arff”。

在区域3中“Choose”某个“Filter”,可以实现筛选数据或者对数据进行某种变换。

数据预处理主要就利用它来实现。

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

3、数据准备(续)

5.

6.

7.

区域5中列出了数据集的所有属性。

勾选一些属性并“Remove”就可以删除它们,删除后还可以利用区域2的“Undo”按钮找回。

区域5上方的一排按钮是用来实现快速勾选的。

在区域5中选中某个属性,则区域6中有关于这个属性的摘要。

注意对于数值属性和标称属性,摘要的方式是不一样的。

图中显示的是对数值属性“income”的摘要。

区域7是区域5中选中属性的直方图。

若数据集的最后一个属性(这是分类或回归任务的默认目标变量)是类标变量(这里的“pep”正好是),直方图中的每个长方形就会按照该变量的比例分成不同颜色的段。

要想换个分段的依据,在区域7上方的下拉框中选个不同的分类属性就可以了。

下拉框里选上“NoClass”或者一个数值属性会变成黑白的直方图。

区域8是状态栏,可以查看Log以判断是否有错。

右边的weka鸟在动的话说明WEKA正在执行挖掘任务。

右键点击状态栏还可以执行JAVA内存的垃圾回收。

3、数据准备(预处理1)

去除无用属性

通常对于数据挖掘任务来说,ID这样的信息是无用的,我们将之删除。

在区域5勾选属性“id”,并点击“Remove”。

将新的数据集保存为“bankdata.arff”,重新打开。

接下来演示“RemoveType”。

离散化

我们知道,有些算法(如关联分析),只能处理所有的属性都是标称型的情况。

这时候我们就需要对数值型的属性进行离散化。

在这个数据集中有3个变量是数值型的,分别是“age”,“income”和“children”。

其中“children”只有4个取值:

0,1,2,3。

这时我们直接修改ARFF文件,把@attributechildrennumeric改为@attributechildren{0,1,2,3}就可以了。

在“Explorer”中重新打开“bank-data.arff”,看看选中“children”属性后,区域6那里显示的“Type”变成“Nominal”了。

3、数据准备(预处理2)

离散化(续)

“age”和“income”的离散化可借助WEKA中名为“Discretize”的Filter来完成。

在区域2中点“Choose”,出现一棵“Filter树”,逐级找到“weka.filters.unsupervised.attribute.Discretize”,点击。

现在“Choose”旁边的文本框应该显示“Discretize-B10-M-0.1-Rfirst-last”。

点击这个文本框会弹出新窗口以修改离散化的参数。

我们不打算对所有的属性离散化,只是针对对第1个和第4个属性(见区域5属性名左边的数字),故把attributeIndices右边改成“1,4”。

计划把这两个属性都分成3段,于是把“bins”改成“3”。

其它框里不用更改。

点“OK”回到“Explorer”,可以看到“age”和“income”已经被离散化成分类型的属性。

若想放弃离散化可以点区域2的“Undo”。

经过上述操作得到的数据集我们保存为bank-data-final.arff。

3、数据准备(预处理3)

属性类型转换

NominalToBinary过滤器将所有nominal类型的属性转为binary(0,1二值)属性,一个可取k个值的nominal类型的属性转为k个二值属性,这样可将数据中所有属性转为数值(numeric)属性。

以下是weather.arff转换后的结果。

3、数据准备(预处理4)

增加一个表达式属性

AddExpression:

Aninstancefilterthatcreatesanewattributebyapplyingamathematicalexpressiontoexistingattributes.Theexpressioncancontainattributereferencesandnumericconstants.Supportedoperatorsare:

+,-,*,/,^,log,abs,cos,exp,sqrt,floor,ceil,rint,tan,sin,(,)Attributesarespecifiedbyprefixingwith'a',eg.a7isattributenumber7(startingfrom1).Exampleexpression:

a1^2*a5/log(a7*4.0).以下命令在weather.arff中增加了一个temp/hum属性,其值为第二个属性(temperature)除以第三个属性(humidity)的值。

AddExpression–Ea2/a3–Ntemp/hum

3、数据准备(预处理5)

采样

使用weka.filters.supervised.instance.Resample对整个数据集进行分层的采样(stratifiedsubsample,采样所得数据仍保持原来的类分布)。

以下Filter命令从soybean.arff中采样了5%的数据。

Resample–B1.0–S1–Z5.0使用weka.filters.unsupervised.instance.Resample进行不分层的采样,即与类信息无关。

以下Filter命令从soybean.arff中采样了5%的数据。

Resample–S1–Z5.0

4、属性选择

两种属性子集选择模式

属性子集评估器+搜索方法单一属性评估器+排序方法

4.1属性选择模式1

属性子集评估器

CfsSubsetEval:

综合考虑单一属性的预测值和属性间的重复度ClassifierSubsetEval:

用分类器评估属性集ConsistencySubsetEval:

将训练数据集映射到属性集上来检测类值的一致性WrapperSubsetEval:

使用分类器和交叉验证搜索方法

BestFirst:

回溯的贪婪搜索ExhaustiveSearch:

穷举搜索GeneticSearch:

使用遗传算法搜索GreedyStepwise:

不回溯的贪婪搜索RaceSearch:

竞争搜索RandomSearch:

随机搜索RankSearch:

排列属性并使用属性子集评估器将有潜力的属性进行排序

4.2、属性选择模式2

单一属性评估器

ChiSquaredAttributeEval:

以基于类的Χ2为依据的属性评估GainRationAttributeEval:

以增益率为依据的属性评估InfoGainAttributeEval:

以信息增益为依据的属性评估OneRAttributeEval:

以OneR的方法论来评估属性PrincipleComponents:

进行主成分的分析和转换ReliefAttributeEval:

基于实例的属性评估器SymmetricalUncertAttributeEval:

以对称不确定性为依据的属性评估

排序方法

Ranker:

按照属性的评估对它们进行排序

5、可视化分析

二维散列图

选择类标

标称类标:

数据点的颜色是离散的数值类标:

数据点的颜色用色谱(蓝色到橙色)表示

改变点阵的大小和点的大小改变抖动度,使互相重叠的点分开选择属性子集和采样注意:

必须点击Update按钮上述改动才能生效

6、分类预测

WEKA把分类(Classification)和回归(Regression)都放在“Classify”选项卡中。

在这两个任务中,都有一个目标属性(类别属性,输出变量)。

我们希望根据一个样本(WEKA中称作实例)的一组特征(输入变量),对目标进行预测。

为了实现这一目的,我们需要有一个训练数据集,这个数据集中每个实例的输入和输出都是已知的。

观察训练集中的实例,可以建立起预测的模型。

有了这个模型,我们就可以对新的未知实例进行预测了。

衡量模型的好坏主要在于预测的准确程度。

选择分类算法

WEKA中的典型分类算法

Bayes:

贝叶斯分类器

BayesNet:

贝叶斯信念网络NaveBayes:

朴素贝叶斯网络

Functions:

人工神经网络和支持向量机

MultilayerPerceptron:

多层前馈人工神经网络SMO:

支持向量机(采用顺序最优化学习方法)

Lazy:

基于实例的分类器

IB1:

1-最近邻分类器IBk:

k-最近邻分类器

选择分类算法

Meta:

组合方法

AdaBoostM1:

AdaBoostM1方法Bagging:

袋装方法

Rules:

基于规则的分类器

JRip:

直接方法-Ripper算法Part:

间接方法-从J48产生的决策树抽取规则

Trees:

决策树分类器

Id3:

ID3决策树学习算法(不支持连续属性)J48:

C4.5决策树学习算法(第8版本)REPTree:

使用降低错误剪枝的决策树学习算法RandomTree:

RandomTree基于决策树的组合方法

选择模型评估方法

四种方法

完全使用训练集使用外部的检验集交叉验证

设置折数

保持方法

设置训练实例的百分比

其他设置

设置代价矩阵

文字结果分析

窗口显示的文字结果信息:

运行信息使用全部训练数据构造的分类模型针对训练/检验集的预测效果汇总/

k-折交叉验证的结果是k次实验的汇总即TP=TP1+…+TPk,FN=FN1+…+FNk,FP=FP1+…+FPk,TN=TN1+…+TNk

基于类的详细结果

加权平均的系数是类大小的百分比

混淆矩阵

图形结果分析

可视化分类错误

实际类与预测类的散布图

可视化模型

可视化图:

贝叶斯网络

查看条件概率表

可视化树:

决策树

居中显示屏幕大小显示自动调整显示查看结点关联的训练集

图形结果分析…

可视化边缘曲线(margincurve)

显示预测边缘,即实际类的预测概率与其他类的最大预测概率的差别对于每个检验实例,从小到大显示预测边缘四个变量

Margin:

预测边缘的值Instance_number:

检验实例的序号Current:

具有当前预测边缘值的实例个数Cumulative:

小于或等于预测边缘值的实例个数(与Instance_number一致)

图形结果分析…

可视化阈值曲线(基于类)

阈值是将检验实例归为当前类的最小概率,使用点的颜色表示阈值曲线上的每个点通过改变阈值的大小生成可以进行ROC分析

X轴选假正率Y轴选真正率

问题:

为什么决策树也可以进行ROC分析?

可能答案:

叶子不一定是纯的,存在类的概率分布

实验者界面

优点

同时对多个数据集和多个分类算法工作可以比较多个分类算法的性能

缺点

不能使用数据预处理工具不能选择类标,只能将输入数据集的最后一个属性作为类标

三个页面

设置页面(Setup)-设置实验参数运行页面(Run)-启动实验,监视实验过程分析页面(Analyze)-分析实验结果

设置页面

设置实验配置模式(ExperimentConfigurationMode)设置保存结果路径(ChooseDestination)设置实验类型(ExperimentType)

交叉验证保持方法(随机化记录次序)保持方法(未知原有记录次序)

迭代控制(IterationControl)

设置实验迭代次数,特别适用于保持方法

数据集(Datasets)

增加数据集,类标是数据集最后一个属性

分类算法(Algorithms)

增加算法设置算法参数

运行页面

点击运行,报告运行情况运行后生成一个数据集

一个记录对应一个数据集和一个分类算法的一次实验,字段包括算法、数据集和不同的性能度量分析仅限于数值分析和显著性测试没有可视化分析功能

分析页面

实验结果数据源(Source)配置测试(Configuretest)

选择行和列,行缺省是数据集,列缺省是Scheme,Scheme_options和Scheme_version_ID基准分类模型(Testbase)某个输入模型汇总(summary)排序(ranking)

结果列表(Resultlist)测试输出(Testoutput)

实验内容

分组对UCI数据集进行实验http:

//archive.ics.uci.edu/ml/datasets.html

12个组每组选择一个数据集分析

实验内容

使用一个UCI数据集,选择任意三个分类算法分析三个分类算法的实验结果解释文字分析结果解释图形分析结果使用两个性能

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

当前位置:首页 > 高中教育 > 其它课程

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

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