WEKA中文详细教程课件_第1页
WEKA中文详细教程课件_第2页
WEKA中文详细教程课件_第3页
WEKA中文详细教程课件_第4页
WEKA中文详细教程课件_第5页
已阅读5页,还剩295页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据挖掘工具--WEKA教程WEKA简介…….2数据集……..11数据准备…..24数据预处理…36分类……………63聚类………….184关联规则……225选择属性……244数据可视化…253知识流界面…2752023/8/101数据挖掘工具--WEKA教程WEKA简介…….22023/81、WEKA简介WEKA的全名是怀卡托智能分析环境(WaikatoEnvironmentforKnowledgeAnalysis)weka也是新西兰的一种鸟名是新西兰怀卡托大学WEKA小组用Java开发的机器学习/数据挖掘开源软件。其源代码获取http://www.cs.waikato.ac.nz/ml/weka//weka/weka-3-6-6jre.exe2005年8月,在第11届ACMSIGKDD国际会议上,怀卡托大学的WEKA小组荣获了数据挖掘和知识探索领域的最高服务奖,WEKA系统得到了广泛的认可,被誉为数据挖掘和机器学习历史上的里程碑,是现今最完备的数据挖掘工具之一。WEKA的每月下载次数已超过万次。2023/8/1021、WEKA简介WEKA的全名是怀卡托智能分析环境2023/WEKA软件主要特点它是集数据预处理、学习算法(分类、回归、聚类、关联分析)和评估方法等为一体的综合性数据挖掘工具。具有交互式可视化界面。提供算法学习比较环境通过其接口,可实现自己的数据挖掘算法WEKA的界面2023/8/103WEKA软件WEKA的界面2023/8/13探索环境命令行环境知识流环境算法试验环境2023/8/104探索环境命令行环境知识流环境算法试验环境2023/8/14Explorer环境2023/8/105Explorer环境2023/8/15把“Explorer”界面分成8个区域区域1的几个选项卡是用来切换不同的挖掘任务面板。Preprocess(数据预处理):选择和修改要处理的数据。Classify(分类):训练和测试分类或回归模型。Cluster(聚类):从数据中聚类。Associate(关联分析):从数据中学习关联规则。SelectAttributes(选择属性):选择数据中最相关的属性。Visualize(可视化):查看数据的二维散布图。区域2是一些常用按钮。包括打开、编辑、保存数据及数据转换等功能。例如,我们可以把文件“bank-data.csv”另存为“bank-data.arff”。区域3中可以选择(Choose)某个筛选器(Filter),以实现筛选数据或者对数据进行某种变换。数据预处理主要就利用它来实现。2023/8/106把“Explorer”界面分成8个区域区域1的几个选项卡是用区域4展示了数据集的关系名、属性数和实例数等基本情况。区域5中列出了数据集的所有属性。勾选一些属性并“Remove”就可以删除它们,删除后还可以利用区域2的“Undo”按钮找回。区域5上方的一排按钮是用来实现快速勾选的。区域6中显示在区域5中选中的当前某个属性的摘要。摘要包括属性名(Name)、属性类型(Type)、缺失值(Missing)数及比例、不同值(Distinct)数、唯一值(Unique)数及比例对于数值属性和标称属性,摘要的方式是不一样的。图中显示的是对数值属性“income”的摘要。数值属性显示最小值(Minimum)、最大值(Maximum)、均值(Mean)和标准差(StdDev)标称属性显示每个不同值的计数2023/8/107区域4展示了数据集的关系名、属性数和实例数等基本情况。202区域7是区域5中选中属性的直方图。若数据集的最后一个属性(这是分类或回归任务的默认目标变量)是类标变量(例如“pep”),直方图中的每个长方形就会按照该变量的比例分成不同颜色的段。要想换个分段的依据,在区域7上方的下拉框中选个不同的分类属性就可以了。下拉框里选上“NoClass”或者一个数值属性会变成黑白的直方图。2023/8/108区域7是区域5中选中属性的直方图。2023/8/18区域8窗口的底部区域,包括状态栏、log按钮和Weka鸟。状态栏(Status)显示一些信息让你知道正在做什么。例如,如果Explorer正忙于装载一个文件,状态栏就会有通知。在状态栏中的任意位置右击鼠标将会出现一个小菜单。这个菜单给了你两个选项:MemoryInformation--显示WEKA可用的内存量。Rungarbagecollector--强制运行Java垃圾回收器,搜索不再需要的内存空间并将之释放,从而可为新任务分配更多的内存。Log按钮可以查看以weka操作日志。右边的weka鸟在动的话,说明WEKA正在执行挖掘任务。2023/8/109区域8窗口的底部区域,包括状态栏、log按钮和Weka鸟。2KnowledgeFlow环境2023/8/1010KnowledgeFlow环境2023/8/1102、WEKA数据集WEKA所处理的数据集是一个.arff文件的二维表2023/8/10112、WEKA数据集WEKA所处理的数据集是一个.arff文件表格里的一个横行称作一个实例(Instance),相当于统计学中的一个样本,或者数据库中的一条记录。竖行称作一个属性(Attribute),相当于统计学中的一个变量,或者数据库中的一个字段。这样一个表格,或者叫数据集,在WEKA看来,呈现了属性之间的一种关系(Relation)。上图中一共有14个实例,5个属性,关系名称为“weather”。WEKA存储数据的格式是ARFF(Attribute-RelationFileFormat)文件,这是一种ASCII文本文件。上图所示的二维表格存储在如下的ARFF文件中。这也就是WEKA自带的“weather.arff”文件,在WEKA安装目录的“data”子目录下可以找到。2023/8/1012表格里的一个横行称作一个实例(Instance),相当于统计@relationweather@attributeoutlook{sunny,overcast,rainy}@attributetemperaturereal@attributehumidityreal@attributewindy{TRUE,FALSE}@attributeplay{yes,no}@datasunny,85,85,FALSE,nosunny,80,90,TRUE,noovercast,83,86,FALSE,yesrainy,70,96,FALSE,yesrainy,68,80,FALSE,yesrainy,65,70,TRUE,noovercast,64,65,TRUE,yessunny,72,95,FALSE,nosunny,69,70,FALSE,yesrainy,75,80,FALSE,yessunny,75,70,TRUE,yesovercast,72,90,TRUE,yesovercast,81,75,FALSE,yesrainy,71,91,TRUE,no2023/8/1013@relationweather2023/8/113WEKA数据文件WEKA存储数据的格式是ARFF(Attribute-RelationFileFormat)文件这是一种ASCII文本文件文件的扩展名为.arff可以用写字板打开、编辑ARFF文件文件中以“%”开始的行是注释,WEKA将忽略这些行。除去注释后,整个ARFF文件可以分为两个部分:第一部分给出了头信息(Headinformation),包括了对关系的声明和对属性的声明。第二部分给出了数据信息(Datainformation),即数据集中给出的数据。从“@data”标记开始,后面的就是数据信息了。2023/8/1014WEKA数据文件WEKA存储数据的格式是ARFF(Attri2023/8/10152023/8/115关系声明关系名称在ARFF文件的第一个有效行来定义,格式为:

@relation<关系名><关系名>是一个字符串。如果这个字符串包含空格,它必须加上引号(指英文标点的单引号或双引号)。2023/8/1016关系声明关系名称在ARFF文件的第一个有效行来定义,格式为:属性声明属性声明用一列以“@attribute”开头的语句表示。数据集中的每一个属性都有对应的“@attribute”语句,来定义它的属性名称和数据类型(datatype):

@attribute<属性名><数据类型>

其中<属性名>必须以字母开头的字符串。和关系名称一样,如果这个字符串包含空格,它必须加上引号。属性声明语句的顺序很重要,它表明了该项属性在数据部分的位置。例如,“humidity”是第三个被声明的属性,这说明数据部分那些被逗号分开的列中,第2列(从第0列开始)数据85908696...是相应的“humidity”值。其次,最后一个声明的属性被称作class属性,在分类或回归任务中,它是默认的目标变量。2023/8/1017属性声明属性声明用一列以“@attribute”开头的语句表数据类型WEKA支持四种数据类型numeric 数值型<nominal-specification> 标称(nominal)型string 字符串型date[<date-format>] 日期和时间型还可以使用两个类型“integer”和“real”,但是WEKA把它们都当作“numeric”看待。注意:“integer”,“real”,“numeric”,“date”,“string”这些关键字是区分大小写的,而“relation”、“attribute”和“data”则不区分。2023/8/1018数据类型WEKA支持四种数据类型2023/8/118数值型属性数值型属性可以是整数或者实数,但WEKA把它们都当作实数看待。例如:

@attributetemperaturereal

字符串属性字符串属性可以包含任意的文本。例如:

@attributeLCCstring2023/8/1019数值型属性2023/8/119标称属性标称属性由<nominal-specification>列出一系列可能的类别名称并放在花括号中:{<nominal-name1>,<nominal-name2>,<nominal-name3>,...}。数据集中该属性的值只能是其中一种类别。例如属性声明:@attributeoutlook{sunny,overcast,rainy}说明“outlook”属性有三种类别:“sunny”,“overcast”和“rainy”。而数据集中每个实例对应的“outlook”值必是这三者之一。如果类别名称带有空格,仍需要将之放入引号中。2023/8/1020标称属性2023/8/120日期和时间属性日期和时间属性统一用“date”类型表示,它的格式是:

@attribute<属性名>date[<date-format>]其中<date-format>是一个字符串,来规定该怎样解析和显示日期或时间的格式,默认的字符串是ISO-8601所给的日期时间组合格式:“yyyy-MM-ddHH:mm:ss”数据信息部分表达日期的字符串必须符合声明中规定的格式要求,例如:@ATTRIBUTEtimestampDATE"yyyy-MM-ddHH:mm:ss"

@DATA

"2011-05-0312:59:55"2023/8/1021日期和时间属性2023/8/121数据信息数据信息中“@data”标记独占一行,剩下的是各个实例的数据。每个实例占一行,实例的各属性值用逗号“,”隔开。如果某个属性的值是缺失值(missingvalue),用问号“?”表示,且这个问号不能省略。例如:

@data

sunny,85,85,FALSE,no

?,78,90,?,yes2023/8/1022数据信息数据信息中“@data”标记独占一行,剩下的是各个实稀疏数据有的时候数据集中含有大量的0值,这个时候用稀疏格式的数据存储更加省空间。稀疏格式是针对数据信息中某个对象的表示而言,不需要修改ARFF文件的其它部分。例如数据:@data

0,X,0,Y,"classA"

0,0,W,0,"classB"用稀疏格式表达的话就是

@data

{1X,3Y,4"classA"}

{2W,4"classB"}注意:ARFF数据集最左端的属性列为第0列,因此,1X表示X为第1列属性值。2023/8/1023稀疏数据有的时候数据集中含有大量的0值,这个时候用稀疏格式的3、数据准备数据获取直接使用ARFF文件数据。从CSV,C4.5,binary等多种格式文件中导入。通过JDBC从SQL数据库中读取数据。从URL(UniformResourceLocator)获取网络资源的数据。数据格式转换ARFF格式是WEKA支持得最好的文件格式。使用WEKA作数据挖掘,面临的第一个问题往往是数据不是ARFF格式的。WEKA还提供了对CSV文件的支持,而这种格式是被很多其他软件(比如Excel)所支持。可以利用WEKA将CSV文件格式转化成ARFF文件格式。2023/8/10243、数据准备数据获取2023/8/124数据资源WEKA自带的数据集C:\ProgramFiles\Weka-3-6\data网络数据资源

/ml/datasets.html2023/8/1025数据资源WEKA自带的数据集2023/8/125.XLS.CSV.ARFFExcel的XLS文件可以让多个二维表格放到不同的工作表(Sheet)中,只能把每个工作表存成不同的CSV文件。打开一个XLS文件并切换到需要转换的工作表,另存为CSV类型,点“确定”、“是”忽略提示即可完成操作。在WEKA中打开一个CSV类型文件,再另存为ARFF类型文件即可。2023/8/1026.XLS.CSV.ARFFExcel的XLS文件可以打开Excel的Iris.xls文件2023/8/1027打开Excel的Iris.xls文件2023/8/1272023/8/10282023/8/128将iris.xls另存为iris.csv文件2023/8/1029将iris.xls另存为iris.csv文件2023/8/12023/8/10302023/8/1302023/8/10312023/8/131在weka的Explorer中打开Iris.csv文件2023/8/1032在weka的Explorer中打开Iris.csv文件2022023/8/10332023/8/133将iris.csv另存为iris.

arff文件2023/8/1034将iris.csv另存为iris.arff文件20232023/8/10352023/8/1354、数据预处理preprocess在WEKA中数据预处理工具称作筛选器(filters)可以定义筛选器来以各种方式对数据进行变换。Filter一栏用于对各种筛选器进行必要的设置。Choose按钮:点击这个按钮就可选择WEKA中的某个筛选器。选定一个筛选器后,它的名字和选项会显示在Choose按钮旁边的文本框中。2023/8/10364、数据预处理preprocess在WEKA中数据预处理工载入数据Explorer的预处理(preprocess)页区域2的前4个按钮用来把数据载入WEKA:Openfile....打开一个对话框,允许你浏览本地文件系统上的数据文件。OpenURL....请求一个存有数据的URL地址。OpenDB....从数据库中读取数据。Generate....从一些数据生成器(DataGenerators)中生成人造数据。2023/8/1037载入数据Explorer的预处理(preprocess)去除无用属性通常对于数据挖掘任务来说,像ID这样的信息是无用的,可以将之删除。在区域5勾选属性“id”,并点击“Remove”。将新的数据集保存,并重新打开。2023/8/1038去除无用属性通常对于数据挖掘任务来说,像ID这样的信息是无用数据离散化有些算法(如关联分析),只能处理标称型属性,这时候就需要对数值型的属性进行离散化。对取值有限的数值型属性可通过修改.arff文件中该属性数据类型实现离散化。例如,在某数据集中的

“children”属性只有4个数值型取值:0,1,2,3。我们直接修改ARFF文件,把

@attributechildrennumeric

改为

@attributechildren{0,1,2,3}

就可以了。在“Explorer”中重新打开“bank-data.arff”,看看选中“children”属性后,区域6那里显示的“Type”变成“Nominal”了。2023/8/1039数据离散化有些算法(如关联分析),只能处理标称型属性,这时候对取值较多的数值型属性,离散化可借助WEKA中名为“Discretize”的Filter来完成。在区域2中点“Choose”,出现一棵“Filter树”,逐级找到“weka.filters.unsupervised.attribute.Discretize”,点击。现在“Choose”旁边的文本框应该显示“Discretize-B10-M-0.1-Rfirst-last”。点击这个文本框会弹出新窗口以修改离散化的参数。2023/8/1040对取值较多的数值型属性,离散化可借助WEKA中名为“Disc在weka的Explorer中打开Iris.arff文件2023/8/1041在weka的Explorer中打开Iris.arff文件202023/8/10422023/8/1422023/8/10432023/8/143查看Iris数据集2023/8/1044查看Iris数据集2023/8/1442023/8/10452023/8/145查看Iris数据属性分布图,选择属性2023/8/1046查看Iris数据属性分布图,选择属性2023/8/1462023/8/10472023/8/1472023/8/10482023/8/148通过观察发现petallength最能区分各类2023/8/1049通过观察发现petallength最能区分各类2023/8/将属性petallength离散化2023/8/1050将属性petallength离散化2023/8/1502023/8/10512023/8/1512023/8/10522023/8/1522023/8/10532023/8/1532023/8/10542023/8/1542023/8/10552023/8/155离散化成10段数据等频离散化离散化成10段数据2023/8/1056离散化成10段数据等频离散化离散化成10段数据2023/8/2023/8/10572023/8/1572023/8/10582023/8/1582023/8/10592023/8/1592023/8/10602023/8/160查看离散化后的Iris数据集2023/8/1061查看离散化后的Iris数据集2023/8/1612023/8/10622023/8/1625、分类ClassifyWEKA把分类(Classification)和回归(Regression)都放在“Classify”选项卡中。在这两个数据挖掘任务中,都有一个目标属性(类别属性,输出变量)。我们希望根据一个WEKA实例的一组特征属性(输入变量),对目标属性进行分类预测。为了实现这一目的,我们需要有一个训练数据集,这个数据集中每个实例的输入和输出都是已知的。观察训练集中的实例,可以建立起预测的分类/回归模型。有了这个模型,就可以对新的未知实例进行分类预测。衡量模型的好坏主要在于预测的准确程度。2023/8/10635、分类ClassifyWEKA把分类(ClassificWEKA中的典型分类算法Bayes:贝叶斯分类器BayesNet:贝叶斯信念网络NaïveBayes:朴素贝叶斯网络Functions:人工神经网络和支持向量机MultilayerPerceptron:多层前馈人工神经网络SMO:支持向量机(采用顺序最优化学习方法)Lazy:基于实例的分类器IB1:1-最近邻分类器IBk:k-最近邻分类器2023/8/1064WEKA中的典型分类算法Bayes:贝叶斯分类器2023/选择分类算法Meta:组合方法AdaBoostM1:AdaBoostM1方法Bagging:袋装方法Rules:基于规则的分类器JRip:直接方法-Ripper算法Part:间接方法-从J48产生的决策树抽取规则Trees:决策树分类器Id3:ID3决策树学习算法(不支持连续属性)J48:C4.5决策树学习算法(第8版本)REPTree:使用降低错误剪枝的决策树学习算法RandomTree:基于决策树的组合方法2023/8/1065选择分类算法Meta:组合方法2023/8/165选择分类算法2023/8/1066选择分类算法2023/8/1662023/8/10672023/8/167选择模型评估方法四种方法Usingtrainingset使用训练集评估Suppliedtestset使用测试集评估Cross-validation交叉验证设置折数FoldsPercentagesplit保持方法。使用一定比例的训练实例作评估设置训练实例的百分比2023/8/1068选择模型评估方法四种方法2023/8/168选择模型评估方法2023/8/1069选择模型评估方法2023/8/169Outputmodel.输出基于整个训练集的分类模型,从而模型可以被查看,可视化等。该选项默认选中。Outputper-classstats.输出每个class的准确度/反馈率(precision/recall)和正确/错误(true/false)的统计量。该选项默认选中。Outputevaluationmeasures.输出熵估计度量。该选项默认没有选中。Outputconfusionmatrix.输出分类器预测结果的混淆矩阵。该选项默认选中。Storepredictionsforvisualization.记录分类器的预测结果使得它们能被可视化表示。Outputpredictions.输出测试数据的预测结果。注意在交叉验证时,实例的编号不代表它在数据集中的位置。Cost-sensitiveevaluation.误差将根据一个价值矩阵来估计。Set…按钮用来指定价值矩阵。Randomseedforxval/%Split.指定一个随即种子,当出于评价的目的需要分割数据时,它用来随机化数据。点击Moreoptions按钮可以设置更多的测试选项:2023/8/1070Outputmodel.输出基于整个训练集的分类模型,从文字结果分析单击start按钮,Classifieroutput窗口显示的文字结果信息:Runinformation运行信息Classifiermodel(fulltrainingset)使用全部训练数据构造的分类模型Summary针对训练/检验集的预测效果汇总。DetailedAccuracyByClass对每个类的预测准确度的详细描述。ConfusionMatrix混淆矩阵,其中矩阵的行是实际的类,矩阵的列是预测得到的类,矩阵元素就是相应测试样本的个数。2023/8/1071文字结果分析单击start按钮,Classifierout文字结果2023/8/1072文字结果2023/8/172主要指标CorrectlyClassifiedInstances正确分类率IncorrectlyClassifiedInstances错误分类率KappastatisticKappa统计数据Meanabsoluteerror平均绝对误差Rootmeansquarederror根均方差Relativeabsoluteerror相对绝对误差Rootrelativesquarederror相对平方根误差TPRate(bad/good)正确肯定率FPRate(bad/good)错误肯定率Precision(bad/good)精确率Recall(bad/good)反馈率F-Measure(bad/good)F测量Timetakentobuildmodel建模花费的时间

2023/8/1073主要指标CorrectlyClassifiedInsta输出图形结果鼠标右键2023/8/1074输出图形结果鼠标右键2023/8/174Viewinmainwindow(查看主窗口)。在主窗口中查看输出结果。Viewinseparatewindow(查看不同的窗口)。打开一个独立的新窗口来查看结果。Saveresultbuffer(保存结果的缓冲区)。弹出对话框来保存输出结果的文本文件。Loadmodel(下载模式)。从二进制文件中载入一个预训练模式对象。Savemodel(保存模式)。将一个模式对象保存到二进制文件中,也就是保存在JAVA的串行对象格式中。Re-evaluatemodeloncurrenttestset(对当前测试集进行重新评估)。通过已建立的模式,并利用Suppliedtestset(提供的测试集)选项下的Set..按钮来测试指定的数据集。2023/8/1075Viewinmainwindow(查看主窗口)。在主窗Visualizeclassifiererrors(可视化分类器错误)。弹出一个可视化窗口来显示分类器的结果图。其中,正确分类的实例用叉表示,然而不正确分类的实例则是以小正方形来表示的。Visualizetree(树的可视化)。如果可能的话,则弹出一个图形化的界面来描述分类器模型的结构(这只有一部分分类器才有的)。右键单击空白区域弹出一个菜单,在面板中拖动鼠标并单击,就可以看见每个节点对应的训练实例。Visualizemargincurve(边际曲线的可视化)。产生一个散点图来描述预测边际的情况。边际被定义为预测为真实值的概率和预测为真实值之外的其它某类的最高概率之差。例如加速算法通过增加训练数据集的边际来更好地完成测试数据集的任务。2023/8/1076Visualizeclassifiererrors(可视Visualizethresholdcurve(阈曲线的可视化)。产生一个散点图来描述预测中的权衡问题,其中权衡是通过改变类之间阈值来获取的。例如,缺省阈值为0.5,一个实例预测为positive的概率必须要大于0.5,因为0.5时实例正好预测为positive。而且图表可以用来对精确率/反馈率权衡进行可视化,如ROC曲线分析(正确的正比率和错误的正比率)和其它的曲线。Visualizecostcurve(成本曲线的可视化)。产生一个散点图,来确切描述期望成本,正如Drummond和Holte所描述的一样。

2023/8/1077Visualizethresholdcurve(阈曲线的Visualizeclassifiererrors.可视化分类错误实际类与预测类的散布图。其中正确分类的结果用叉表示,分错的结果用方框表示。2023/8/1078Visualizeclassifiererrors.可Visualizetree可视化树2023/8/1079Visualizetree可视化树2023/8/1792023/8/10802023/8/1802023/8/10812023/8/181可视化边际曲线(Visualizemargincurve)创建一个散点图来显示预测边际值。四个变量Margin:预测边际值Instance_number:检验实例的序号Current:具有当前预测边际值的实例个数Cumulative:小于或等于预测边际值的实例个数(与Instance_number一致)2023/8/1082可视化边际曲线(Visualizemargincurv2023/8/10832023/8/183单击8号检验实例,显示该点的边际值为0.5,有7个实例的边际值小于0.5。2023/8/1084单击8号检验实例,显示该点的边际值为0.5,有7个实例的边际可视化阈值曲线(基于类)阈值是将检验实例归为当前类的最小概率,使用点的颜色表示阈值曲线上的每个点通过改变阈值的大小生成可以进行ROC分析X轴选假正率Y轴选真正率2023/8/1085可视化阈值曲线(基于类)阈值是将检验实例归为当前类的最小概率2023/8/10862023/8/1862023/8/10872023/8/187ROC曲线ROC曲线(ReceiverOperatingCharacteeristicCurve)是显示Classification模型真正率和假正率之间折中的一种图形化方法。假设样本可分为正负两类,解读ROC图的一些概念定义:真正(TruePositive,TP),被模型预测为正的正样本

假负(FalseNegative,FN)被模型预测为负的正样本假正(FalsePositive,FP)被模型预测为正的负样本

真负(TrueNegative,TN)被模型预测为负的负样本真正率(TruePositiveRate,TPR)或灵敏度(sensitivity)

TPR=TP/(TP+FN)

正样本预测结果数/正样本实际数假正率(FalsePositiveRate,FPR)

FPR=FP/(FP+TN)

被预测为正的负样本结果数/负样本实际数

(TPR=1,FPR=0)是理想模型

一个好的分类模型应该尽可能靠近图形的左上角。2023/8/1088ROC曲线ROC曲线(ReceiverOperatingIRIS分类示例

2023/8/1089IRIS分类示例2023/8/189在weka的Explorer中打开Iris.arff文件2023/8/1090在weka的Explorer中打开Iris.arff文件20在weka的Explorer中打开Iris.arff文件2023/8/1091在weka的Explorer中打开Iris.arff文件202023/8/10922023/8/192选择分类(Classify)数据挖掘任务2023/8/1093选择分类(Classify)数据挖掘任务2023/8/193选择分类算法2023/8/1094选择分类算法2023/8/194选择决策树算法Trees->J482023/8/1095选择决策树算法Trees->J482023/8/195设置相关参数2023/8/1096设置相关参数2023/8/1962023/8/10972023/8/1972023/8/10982023/8/198选择检验方法2023/8/1099选择检验方法2023/8/1992023/8/101002023/8/11002023/8/101012023/8/11012023/8/101022023/8/11022023/8/101032023/8/11032023/8/101042023/8/1104执行分类算法,建立决策树模型2023/8/10105执行分类算法,建立决策树模型2023/8/1105查看算法执行的输出信息2023/8/10106查看算法执行的输出信息2023/8/11062023/8/101072023/8/1107查看决策树分类模型2023/8/10108查看决策树分类模型2023/8/11082023/8/101092023/8/11092023/8/101102023/8/1110查看分类错误散点图2023/8/10111查看分类错误散点图2023/8/11112023/8/101122023/8/1112选择其他的分类算法2023/8/10113选择其他的分类算法2023/8/11132023/8/101142023/8/1114选择贝叶斯分类算法bayes->Naivebayes2023/8/10115选择贝叶斯分类算法bayes->Naivebayes202选择检验方法2023/8/10116选择检验方法2023/8/1116执行分类算法,建立贝叶斯模型2023/8/10117执行分类算法,建立贝叶斯模型2023/8/1117进行ROC分析2023/8/10118进行ROC分析2023/8/11182023/8/101192023/8/11192023/8/101202023/8/1120选择其他的分类算法2023/8/10121选择其他的分类算法2023/8/1121选择决策树用户自分类法trees->UserClssifier2023/8/10122选择决策树用户自分类法trees->UserClssifie选择检验方法2023/8/10123选择检验方法2023/8/1123执行算法2023/8/10124执行算法2023/8/11242023/8/101252023/8/1125数据散点图2023/8/10126数据散点图2023/8/1126但击鼠标,确定分类边界2023/8/10127但击鼠标,确定分类边界2023/8/1127查看相应的分类树2023/8/10128查看相应的分类树2023/8/1128预测指定属性值2023/8/10129预测指定属性值2023/8/1129选择预测属性2023/8/10130选择预测属性2023/8/11302023/8/101312023/8/1131选择算法2023/8/10132选择算法2023/8/11322023/8/101332023/8/1133执行算法2023/8/10134执行算法2023/8/1134观察输出信息2023/8/10135观察输出信息2023/8/11352023/8/101362023/8/1136查看分类错误散点图2023/8/10137查看分类错误散点图2023/8/11372023/8/101382023/8/1138点击实例,察看详细信息2023/8/10139点击实例,察看详细信息2023/8/1139该实例petallength的实际值为5.1,预测值为5.892023/8/10140该实例petallength的实际值为5.1,预测值为5.8训练BANK-DATA分类模型示例bank-data数据各属性的含义如下:

id: auniqueidentificationnumber

age: ageofcustomerinyears(numeric)

sex: MALE/FEMALE

region: inner_city/rural/suburban/town

income: 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)2023/8/10141训练BANK-DATA分类模型示例bank-data数据各属浏览bank-data.xls数据2023/8/10142浏览bank-data.xls数据2023/8/1142数据准备—将数据另存为.csv格式2023/8/10143数据准备—将数据另存为.csv格式2023/8/11432023/8/101442023/8/1144数据准备—在WEKA中打开bank-data.csv2023/8/10145数据准备—在WEKA中打开bank-data.csv2022023/8/101462023/8/11462023/8/101472023/8/11472023/8/101482023/8/1148数据准备—在WEKA中浏览数据2023/8/10149数据准备—在WEKA中浏览数据2023/8/11492023/8/101502023/8/1150数据准备—将数据另存为.arff格式2023/8/10151数据准备—将数据另存为.arff格式2023/8/1151在写字板中浏览bank-data.arff文件2023/8/10152在写字板中浏览bank-data.arff文件2023/8/2023/8/101532023/8/1153数据预处理去除无用属性 通常对于数据挖掘任务来说,ID这样的信息是无用的,我们将之删除。勾选属性“id”,并点击“Remove”。将新的数据集保存为“bank-data.arff”,重新打开。离散化 在这个数据集中有3个变量是数值型的,分别是“age”,“income”和“children”。

其中“children”只有4个取值:0,1,2,3。这时我们直接修改ARFF文件,把

@attributechildrennumeric

改为

@attributechildren{0,1,2,3}

就可以了。

在“Explorer”中重新打开“bank-data.arff”,看看选中“children”属性后,显示的“Type”变成“Nominal”了。2023/8/10154数据预处理去除无用属性2023/8/1154数据预处理“age”和“income”的离散化可借助WEKA中名为“Discretize”的Filter来完成。点“Choose”,出现一棵“Filter树”,逐级找到“weka.filters.unsupervised.attribute.Discretize”,点击。现在“Choose”旁边的文本框应该显示“Discretize-B10-M-0.1-Rfirst-last”。点击这个文本框会弹出新窗口以修改离散化的参数。

我们不打算对所有的属性离散化,只是针对对第1个和第4个属性(见属性名左边的数字),故把attributeIndices右边改成“1,4”。计划把这两个属性都分成3段,于是把“bins”改成“3”。其它框里不用更改。点“OK”回到“Explorer”,可以看到“age”和“income”已经被离散化成分类型的属性。若想放弃离散化可以点“Undo”。经过上述操作得到的数据集我们保存为bank-data-final.arff。2023/8/10155数据预处理“age”和“income”的离散化可借助WEKA数据预处理--去除无用属性

2023/8/10156数据预处理--去除无用属性2023/8/11562023/8/101572023/8/1157数据预处理—children数据离散化2023/8/10158数据预处理—children数据离散化2023/8/1158数据预处理—children数据离散化用写字板打开bank-data.arff文件2023/8/10159数据预处理—children数据离散化用写字板打开bank-2023/8/101602023/8/1160在WEKA中重新打开bank-data.arff文件。2023/8/10161在WEKA中重新打开bank-data.arff文件。2022023/8/101622023/8/1162观察children属性。2023/8/10163观察children属性。2023/8/1163数据预处理—离散化“age”和“income”

2023/8/10164数据预处理—离散化“age”和“income”2023/8数据预处理—数据离散化2023/8/10165数据预处理—数据离散化2023/8/11652023/8/101662023/8/11662023/8/101672023/8/11672023/8/101682023/8/11682023/8/101692023/8/11692023/8/101702023/8/11702023/8/101712023/8/1171在写字板中重新观察bank-data.arff数据2023/8/10172在写字板中重新观察bank-data.arff数据2023/训练分类模型2023/8/10173训练分类模型2023/8/11732023/8/101742023/8/11742023/8/101752023/8/1175评估分类模型2023/8/10176评估分类模型2023/8/1176选择不同的分类算法或参数2023/8/10177选择不同的分类算法或参数2023/8/11772023/8/101782023/8/1178选择模型2023/8/10179选择模型2023/8/11792023/8/101802023/8/11802023/8/101812023/8/11812023/8/101822023/8/11822023/8/101832023/8/11836、聚类cluster聚类分析是把对象分配给各个簇,使同簇中的对象相似,而不同簇间的对象相异。WEKA在“Explorer”界面的“Cluster”提供聚类分析工具选择聚类算法2023/8/101846、聚类cluster聚类分析是把对象分配给各个簇,使同WEKA中的聚类算法2023/8/10185WEKA中的聚类算法2023/8/1185主要算法包括:SimpleKMeans—支持分类属性的K均值算法DBScan—支持分类属性的基于密度的算法EM—基于混合模型的聚类算法FathestFirst—K中心点算法OPTICS—基于密度的另一个算法Cobweb—概念聚类算法sIB—基于信息论的聚类算法,不支持分类属性XMeans—能自动确定簇个数的扩展K均值算法,不支持分类属性2023/8/10186主要算法包括:2023/8/1186参数设置SimpleKMeans重要参数N—簇个数DBScan重要参数E—Eps半径M—MinPts,Eps半径内点个数2023/8/10187参数设置SimpleKMeans重要参数2023/8/118SimpleKMeans重要参数2023/8/10188SimpleKMeans重要参数2023/8/1188displayStdDevs:是否显示数值属性标准差和分类属性个数distanceFunction:选择比较实例的距离函数(默认:weka.core.EuclideanDistance)dontReplaceMissingValues:是否不使用均值/众数(mean/mode)替换缺失值。maxIterations:最大迭代次数numClusters:聚类的簇数preserveInstancesOrder:是否预先排列实例的顺序Seed:设定的随机种子值2023/8/10189displayStdDevs:是否显示数值属性标准差和分类属聚类模式ClusterMode2023/8/10190聚类模式ClusterMode2023/8/1190使用训练集(Usetrainingset)—报告训练对象的聚类结果和分组结果使用附加的检验集(Suppliedtestset)—报告训练对象的聚类结果和附加的检验对象的分组结果百分比划分(Percentagesplit)—报告全部对象的聚类结果、训练对象的聚类结果,以及检验对象的分组结果监督评估(Classestoclustersevaluation)—报告训练对象的聚类结果和分组结果、类/簇混淆矩阵和错误分组信息2023/8/10191使用训练集(Usetrainingset)—报告训执行聚类算法点击“Start”按钮,执行聚类算法2023/8/10192执行聚类算法点击“Start”按钮,执行聚类算法2023/8观察聚类结果观察右边“Clustereroutput”给出的聚类结果。也可以在左下角“Resultlist”中这次产生的结果上点右键,“Viewinseparatewindow”在新窗口中浏览结果。2023/8/10193观察聚类结果观察右边“Clustereroutput”给出===Runinformation===%运行信息Scheme:weka.clusterers.SimpleKMeans-N3-A“weka.core.EuclideanDistance-Rfirst-last”-I500-S10%

算法的参数设置:-N3-A“weka.core.EuclideanDistance-Rfirst-last”-I500-S10;%

各参数依次表示:%-N3–聚类簇数为3;%-A“weka.core.EuclideanDistance–中心距离为欧氏距离;%-I500--最多迭代次数为500;%-S10--随机种子值为10。Relation:iris%数据集名称Instances:150%数据集中的实例个数2023/8/10194===Runinformation===%运Attributes:5%数据集中的属性个数及属性名称sepallengthsepalwidthpetallengthpetalwidthIgnored:%忽略的属性classTestmode:Classestoclustersevaluationontrainingdata%测试模式===Modelandevaluationontainingset===%基于训练数据集的模型与评价kMeans%使用kMeans算法======Numberofiterations:6kMeans%迭代次数Winthinclustersumofsquarederrors:6.998114004826762%SSE(误差的平方和)Missingvaluesgloballyreplacedwithmean/mode%用均值/众数替代缺失值2023/8/10195Attributes:5%数据集中的属性Clustercentroids:%各个簇的质心Cluster#AttributeFullData012(150)(61)(60)(39)========================================sepallength5.84335.88855.0066.8462sepalwidth3.0642.73773,4183.0821petallength3.75874,39671,4645.7026petalwidth1.19871.4180.2442.0795Timetakentobuildmodel(fulltrainingdata):0.03seconds%建模用的时间===Modalandevaluationontrainingset===ClusteredInstances%各个簇中的实例个数及百分比。061(41%)150(33%)239(26%)2023/8/10196Clustercentroids:%各个簇的质心202注意:采用有监督聚类(即已知建模数据集的类标号),

才会出现以下执行信息。Classattribute:class%类标号属性名称ClassestoClusters:%类簇混淆矩阵012<--assignedtocluster0500|Iris-setosa4703|Iris-versicolor14036|Iris-virginisaCluster0<--Iris-versicolorCluster1<--Iris-setosaCluster2<--Iris-virginicaIncorrectlyclusteredinstances:17.011.3333%%错分实例个数及百分比2023/8/10197注意:采用有监督聚类(即已知建模数据集的类标号),

文字分析SimpleKMeans非监督模式:运行信息、KMeans结果(迭代次数、SSE、簇中心)、检验对象的分组信息监督模式:运行信息、KMeans结果(迭代次数、SSE、簇中心)、类/簇混淆矩阵、错误分组的对象个数和比例簇中心:对于数值属性为均值,对于分类属性为众数DBScan非监督模式:运行信息、DBScan结果(迭代次数、各个训练对象的分组信息)、检验对象的分组信息监督模式:运行信息、DBScan结果(迭代次数、各个训练对象的分组信息)、类/簇混淆矩阵、错误分组的对象个数和比例图形分析(必须将storeclustersforvisualization勾上)可视化簇指派(Visualizeclusterassignments):2D散布图,能够可视化类/簇混淆矩阵2023/8/10198文字分析2023/8/1198SimpleKMeans聚类结果分析重要的输出信息“Withinclustersumofsquarederrors

”评价聚类好坏的标准—SSE,即误差的平方和。SSE值越小说明聚类结果越好。“Clustercentroids:”之后列出了各个簇中心的位置。对于数值型的属性,簇中心就是它的均值(Mean),分类型的就是它的众数(Mode)。“ClusteredInstances”是各个簇中实例的数目及百分比。

2023/8/10199SimpleKMeans聚类结果分析重要的输出信息2023/观察可视化的聚类结果在左下方“Resultlist”列出的结果上右击,点“Visualizeclusterassignments”。弹出的窗口给出了各实例的散点图。最上方的两个框是选择横坐标和纵坐标,第二行的”color”是散点图着色的依据,默认是根据不同的簇“Cluster”给实例标上不同的颜色。

2023/8/10200观察可视化的聚类结果在左下方“Resultlist”列出的示例:对IRIS数据集作聚类分析2023/8/10201示例:对IRIS数据集作聚类分析2023/8/1201采用无监督聚类,删除原有的类标号2023/8/10202采用无监督聚类,删除原有的类标号2023/8/1202选择聚类数据挖掘任务2023/8/10203选择聚类数据挖掘任务2023/8/1203选择聚类算法2023/8/10204选择聚类算法2023/8/1204选中SimpleKMeans算法2023/8/10205选中SimpleKMeans算法2023/8/1205设置参数2023/8/10206设置参数2023/8/1206聚类簇数numCluster=32023/8/10207聚类簇数numCluster=32023/8/1207执行聚类算法2023/8/10208执行聚类算法2023/8/1208观察聚类结果2023/8/10209观察聚类结果2023/8/12092023/8/102102023/8/1210可视化聚类结果2023/8/10211可视化聚类结果2023/8/1211保存聚类结果2023/8/10212保存聚类结果2023/8/12122023/8/102132023/8/1213在写字板中观察实例的簇2023/8/10214在写字板中观察实例的簇2023/8/1214聚类实验—银行客户分类

本次实验利用Weka中提供的simpleKmeans(K-均值)算法对“bank-data”数据进行聚类分析,其目的是发现相似客户群,以满足银行的客户细分需求,为银行针对不同客户群体的营销策略提供支持。2023/8/10215聚类实验—银行客户分类本次实验利用Weka中提供的simp数据的准备及预处理

原始数据“bank-data.xls”是excel文件格式的数据,需要转换成Weka支持的ARFF文件格式的。转换方法:在excel中打开“bank-data.xls”,选择菜单文件—>另存为,在弹出的对话框中,文件名输入“bank-data”,保存类型选择“CSV(逗号分隔)”,保存,我们便可得到“bank-data.csv”文件;然后,打开Weka的Exporler,点击Openfile按钮,打开刚才得到的“bank-data.csv”文件;点击“save”按钮,在弹出的对话框中,文件名输入“bank-data.arff”,文件类型选择“Arffdatafiles(*.arff)”,这样得到的数据文件为“bank-data.arff”。

2023/8/10216数据的准备及预处理原始数据“bank-data.xls”是K均值算法只能处理数值型的属性,遇到分类型的属性时要把它变为若干个取值0和1的属性。WEKA将自动实施这个分类型到数值型的变换,而且WEKA会自动对数值型的数据作标准化。因此,对于ARFF格式的原始数据“bank-data.arff”,我们所做的预处理只是删去属性“id”,修改属性“children”为分类型。

修改过程如下:打开“bank-data.arff”,将@attributechildrennumeric改成如下:

2023/8/10217K均值算法只能处理数值型的属性,遇到分类型的属性时要把它变为使用WEKA聚类用“Explorer”打开包含600条实例“bank-data.arff”,并切换到“Cluster”。点击“Choose”按钮,选择“SimpleKMeans”。点击旁边的文本框,修改参数“numClusters”为6,说明我们希望把这600条实例聚成6类,即K=6。下面的“seed”参数是要设置一个随机种子,依此产生一个随机数,用来得到K均值算法中第一次给出的K个簇中心的位置。我们暂时让它就为10。选中“ClusterMode”的“Usetrainingset”点击“Start”按钮观察右边“Clustereroutput”给出的聚类结果。

2023/8/10218使用WEKA聚类用“Explorer”打开包含600条实例“2023/8/102192023/8/12192023/8/102202023/8/12202023/8/102212023/8/1221结果分析

当前Withinclustersumofsquarederrors:1604.7416693522332,调整“seed”参数,观察Withinclustersumofsquarederrors(SSE)变化。采纳SSE最小的一个结果。“Clustercentroids:”之后列出了各个簇中心的位置。对于数值型的属性,簇中心就是它的均值(Mean),如cluster0的数值型变量age的均值37.1299;分类型的就是它的众数(Mode),如cluster0的分类型变量children的众数为3,也就是说这个属性上取值为众数值3(有3个孩子)的实例最多。为了观察可视化的聚类结果,在左下方“Resultlist”列出的结果上右击,点“Visualizeclusterassignments”。弹出的窗口给出了各实例的散点图。最上方的两个框是选择横坐标和纵坐标,第二行的”color”是散点图着色的依据,默认是根据不同的簇“Cluster”给实例标上不同的颜色。例如,横坐标选择Instance_number,纵坐标选择income。2023/8/10222结果分析当前Withinclustersumofs2023/8/102232023/8/1223点击“Save”,把聚类结果保存成bank_Cluster.arff文件。可以在写字板中打开观察聚类结果文件。在这个新的ARFF文件中,“instance_number”属性表示某实例的编号,“Cluster”属性表示聚类算法给出的该实例所在的簇。2023/8/10224点击“Save”,把聚类结果保存成bank_Cluster.7、关联规则associationsWEKA关联规则学习能够发现属性组之间的依赖关系:例如,milk,butterbread,eggs(置信度0.9a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论