数据挖掘工具WEKA文档格式.docx
- 文档编号:19174736
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:18
- 大小:32KB
数据挖掘工具WEKA文档格式.docx
《数据挖掘工具WEKA文档格式.docx》由会员分享,可在线阅读,更多相关《数据挖掘工具WEKA文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
关系声明关系名称在ARFF文件的第一个有效行来定义,格式为@relation<
relation-name>
<
是一个字符串。
如果这个字符串包含空格,它必须加上引号(指英文标点的单引号或双引号)。
属性声明属性声明用一列以“@attribute”开头的语句表示。
数据集中的每一个属性都有它对应的“@attribute”语句,来定义它的属性名称和数据类型。
这些声明语句的顺序很重要。
首先它表明了该项属性在数据部分的位置。
例如,“humidity”是第三个被声明的属性,这说明数据部分那些被逗号分开的列中,第三列数据85908696...是相应的“humidity”值。
其次,最后一个声明的属性被称作class属性,在分类或回归任务中,它是默认的目标变量。
属性声明的格式为@attribute<
attribute-name>
datatype>
其中<
是必须以字母开头的字符串。
和关系名称一样,如果这个字符串包含空格,它必须加上引号。
WEKA支持的<
有四种
numeric<
nominal-specification>
stringdate[<
date-format>
]数值型标称(nominal)型字符串型日期和时间型
其中<
和<
将在下面说明。
还可以使用两个类型“integer”和“real”,但是WEKA把它们都当作“numeric”看待。
注意“integer”,“real”,“numeric”,“date”,“string”这些关键字是区分大小写的,而“relation”、“attribute”和“data”则不区分。
数值属性数值型属性可以是整数或者实数,但WEKA把它们都当作实数看待。
标称属性标称属性由<
列出一系列可能的类别名称并放在花括号中:
{<
nominal-name1>
<
nominal-name2>
nominal-name3>
...}。
数据集中该属性的值只能是其中一种类别。
例如如下的属性声明说明“outlook”属性有三种类别:
“sunny”,“overcast”和“rainy”。
而数据集中每个实例对应的“outlook”值必是这三者之一。
@attributeoutlook{sunny,overcast,rainy}如果类别名称带有空格,仍需要将之放入引号中。
字符串属性字符串属性中可以包含任意的文本。
这种类型的属性在文本挖掘中非常有用。
示例:
@ATTRIBUTELCCstring日期和时间属性日期和时间属性统一用“date”类型表示,它的格式是@attribute<
name>
date[<
]其中<
是这个属性的名称,<
是一个字符串,来规定该怎样解析和显示日期或时间的格式,默认的字符串是ISO-8601所给的日期时间组合格式“yyyy-MM-ddTHH:
mm:
ss”。
数据信息部分表达日期的字符串必须符合声明中规定的格式要求(下文有例子)。
数据信息数据信息中“@data”标记独占一行,剩下的是各个实例的数据。
每个实例占一行。
实例的各属性值用逗号“,”隔开。
如果某个属性的值是缺失值(missingvalue),用问号“”表示,且这个问号不能省略。
例如:
@datasunny,85,85,FALSE,no,78,90,,yes
字符串属性和标称属性的值是区分大小写的。
若值中含有空格,必须被引号括起来。
@relationLCCvsLCSH@attributeLCCstring@attributeLCSHstring@data
AG5,'
Encyclopediasanddictionaries.;
Twentiethcentury.'
AS262,'
Science--SovietUnion--History.'
日期属性的值必须与属性声明中给定的相一致。
@RELATIONTimestamps@ATTRIBUTEtimestampDATE"
yyyy-MM-ddHH:
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
1.
2.
3.4.
上图显示的是“Explorer”打开“bank-data.csv”的情况。
我们根据不同的功能把这个界面分成8个区域。
区域1的几个选项卡是用来切换不同的挖掘任务面板。
这一节用到的只有“Preprocess”,其他面板的功能将在以后介绍。
区域2是一些常用按钮。
包括打开数据,保存及编辑功能。
我们可以在这里把“bank-data.csv”另存为“bankdata.arff”。
在区域3中“Choose”某个“Filter”,可以实现筛选数据或者对数据进行某种变换。
数据预处理主要就利用它来实现。
区域4展示了数据集的一些基本情况。
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进行不分层的采样,即与类信息无关。
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数据集,选择任意三个分类算法分析三个分类算法的实验结果解释文字分析结果解释图形分析结果使用两个性能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 挖掘 工具 WEKA