版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据挖掘工具--WEKA教程WEKA简介…….2数据集……..11数据准备…..24数据预处理…36分类……………63聚类………….184关联规那么……225选择属性……244数据可视化…253知识流界面…2752024/5/2811、WEKA简介WEKA的全名是怀卡托智能分析环境〔WaikatoEnvironmentforKnowledgeAnalysis〕weka也是新西兰的一种鸟名是新西兰怀卡托大学WEKA小组用Java开发的机器学习/数据挖掘开源软件。其源代码获取2005年8月,在第11届ACMSIGKDD国际会议上,怀卡托大学的WEKA小组荣获了数据挖掘和知识探索领域的最高效劳奖,WEKA系统得到了广泛的认可,被誉为数据挖掘和机器学习历史上的里程碑,是现今最完备的数据挖掘工具之一。WEKA的每月下载次数已超过万次。2024/5/282WEKA软件主要特点它是集数据预处理、学习算法〔分类、回归、聚类、关联分析〕和评估方法等为一体的综合性数据挖掘工具。具有交互式可视化界面。提供算法学习比较环境通过其接口,可实现自己的数据挖掘算法WEKA的界面2024/5/283探索环境命令行环境知识流环境算法试验环境2024/5/284Explorer环境2024/5/285把“Explorer”界面分成8个区域区域1的几个选项卡是用来切换不同的挖掘任务面板。Preprocess〔数据预处理〕:选择和修改要处理的数据。Classify〔分类〕:训练和测试分类或回归模型。Cluster〔聚类〕:从数据中聚类。Associate〔关联分析〕:从数据中学习关联规那么。SelectAttributes〔选择属性〕:选择数据中最相关的属性。Visualize〔可视化〕:查看数据的二维散布图。区域2是一些常用按钮。包括翻开、编辑、保存数据及数据转换等功能。例如,我们可以把文件“bank-data.csv”另存为“bank-data.arff”。区域3中可以选择〔Choose〕某个筛选器〔Filter〕,以实现筛选数据或者对数据进行某种变换。数据预处理主要就利用它来实现。2024/5/286区域4展示了数据集的关系名、属性数和实例数等根本情况。区域5中列出了数据集的所有属性。勾选一些属性并“Remove”就可以删除它们,删除后还可以利用区域2的“Undo”按钮找回。区域5上方的一排按钮是用来实现快速勾选的。区域6中显示在区域5中选中的当前某个属性的摘要。摘要包括属性名〔Name〕、属性类型〔Type〕、缺失值〔Missing〕数及比例、不同值〔Distinct〕数、唯一值〔Unique〕数及比例对于数值属性和标称属性,摘要的方式是不一样的。图中显示的是对数值属性“income”的摘要。数值属性显示最小值〔Minimum〕、最大值〔Maximum〕、均值〔Mean〕和标准差〔StdDev〕标称属性显示每个不同值的计数2024/5/287区域7是区域5中选中属性的直方图。假设数据集的最后一个属性〔这是分类或回归任务的默认目标变量〕是类标变量〔例如“pep”〕,直方图中的每个长方形就会按照该变量的比例分成不同颜色的段。要想换个分段的依据,在区域7上方的下拉框中选个不同的分类属性就可以了。下拉框里选上“NoClass”或者一个数值属性会变成黑白的直方图。2024/5/288区域8窗口的底部区域,包括状态栏、log按钮和Weka鸟。状态栏〔Status〕显示一些信息让你知道正在做什么。例如,如果Explorer正忙于装载一个文件,状态栏就会有通知。在状态栏中的任意位置右击鼠标将会出现一个小菜单。这个菜单给了你两个选项:MemoryInformation--显示WEKA可用的内存量。Rungarbagecollector--强制运行Java垃圾回收器,搜索不再需要的内存空间并将之释放,从而可为新任务分配更多的内存。Log按钮可以查看以weka操作日志。右边的weka鸟在动的话,说明WEKA正在执行挖掘任务。2024/5/289KnowledgeFlow环境2024/5/28102、WEKA数据集WEKA所处理的数据集是一个.arff文件的二维表2024/5/2811表格里的一个横行称作一个实例〔Instance〕,相当于统计学中的一个样本,或者数据库中的一条记录。竖行称作一个属性〔Attribute〕,相当于统计学中的一个变量,或者数据库中的一个字段。这样一个表格,或者叫数据集,在WEKA看来,呈现了属性之间的一种关系(Relation)。上图中一共有14个实例,5个属性,关系名称为“weather”。WEKA存储数据的格式是ARFF〔Attribute-RelationFileFormat〕文件,这是一种ASCII文本文件。上图所示的二维表格存储在如下的ARFF文件中。这也就是WEKA自带的“weather.arff”文件,在WEKA安装目录的“data”子目录下可以找到。2024/5/2812@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,no2024/5/2813WEKA数据文件WEKA存储数据的格式是ARFF〔Attribute-RelationFileFormat〕文件这是一种ASCII文本文件文件的扩展名为.arff可以用写字板翻开、编辑ARFF文件文件中以“%”开始的行是注释,WEKA将忽略这些行。除去注释后,整个ARFF文件可以分为两个局部:第一局部给出了头信息〔Headinformation〕,包括了对关系的声明和对属性的声明。第二局部给出了数据信息〔Datainformation〕,即数据集中给出的数据。从“@data”标记开始,后面的就是数据信息了。2024/5/28142024/5/2815关系声明关系名称在ARFF文件的第一个有效行来定义,格式为:@relation<关系名><关系名>是一个字符串。如果这个字符串包含空格,它必须加上引号〔指英文标点的单引号或双引号〕。2024/5/2816属性声明属性声明用一列以“@attribute”开头的语句表示。数据集中的每一个属性都有对应的“@attribute”语句,来定义它的属性名称和数据类型〔datatype〕:@attribute<属性名><数据类型>其中<属性名>必须以字母开头的字符串。和关系名称一样,如果这个字符串包含空格,它必须加上引号。属性声明语句的顺序很重要,它说明了该项属性在数据局部的位置。例如,“humidity”是第三个被声明的属性,这说明数据局部那些被逗号分开的列中,第2列〔从第0列开始〕数据85908696...是相应的“humidity”值。其次,最后一个声明的属性被称作class属性,在分类或回归任务中,它是默认的目标变量。2024/5/2817数据类型WEKA支持四种数据类型numeric 数值型<nominal-specification> 标称〔nominal〕型string 字符串型date[<date-format>] 日期和时间型还可以使用两个类型“integer”和“real”,但是WEKA把它们都当作“numeric”看待。注意:“integer”,“real”,“numeric”,“date”,“string”这些关键字是区分大小写的,而“relation”、“attribute”和“data”那么不区分。2024/5/2818数值型属性数值型属性可以是整数或者实数,但WEKA把它们都当作实数看待。例如:
@attributetemperaturereal
字符串属性字符串属性可以包含任意的文本。例如:
@attributeLCCstring2024/5/2819标称属性标称属性由<nominal-specification>列出一系列可能的类别名称并放在花括号中:{<nominal-name1>,<nominal-name2>,<nominal-name3>,...}。数据集中该属性的值只能是其中一种类别。例如属性声明:@attributeoutlook{sunny,overcast,rainy}说明“outlook”属性有三种类别:“sunny”,“overcast”和“rainy”。而数据集中每个实例对应的“outlook”值必是这三者之一。如果类别名称带有空格,仍需要将之放入引号中。2024/5/2820日期和时间属性日期和时间属性统一用“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"2024/5/2821数据信息数据信息中“@data”标记独占一行,剩下的是各个实例的数据。每个实例占一行,实例的各属性值用逗号“,”隔开。如果某个属性的值是缺失值〔missingvalue〕,用问号“?”表示,且这个问号不能省略。例如:
@data
sunny,85,85,FALSE,no
?,78,90,?,yes2024/5/2822稀疏数据有的时候数据集中含有大量的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列属性值。2024/5/28233、数据准备数据获取直接使用ARFF文件数据。从CSV,C4.5,binary等多种格式文件中导入。通过JDBC从SQL数据库中读取数据。从URL〔UniformResourceLocator〕获取网络资源的数据。数据格式转换ARFF格式是WEKA支持得最好的文件格式。使用WEKA作数据挖掘,面临的第一个问题往往是数据不是ARFF格式的。WEKA还提供了对CSV文件的支持,而这种格式是被很多其他软件〔比方Excel〕所支持。可以利用WEKA将CSV文件格式转化成ARFF文件格式。2024/5/2824数据资源WEKA自带的数据集C:\ProgramFiles\Weka-3-6\data网络数据资源
2024/5/2825.XLS.CSV.ARFFExcel的XLS文件可以让多个二维表格放到不同的工作表〔Sheet〕中,只能把每个工作表存成不同的CSV文件。翻开一个XLS文件并切换到需要转换的工作表,另存为CSV类型,点“确定”、“是”忽略提示即可完成操作。在WEKA中翻开一个CSV类型文件,再另存为ARFF类型文件即可。2024/5/2826翻开Excel的Iris.xls文件2024/5/28272024/5/2828将iris.xls另存为iris.csv文件2024/5/28292024/5/28302024/5/2831在weka的Explorer中翻开Iris.csv文件2024/5/28322024/5/2833将iris.csv另存为iris.
arff文件2024/5/28342024/5/28354、数据预处理preprocess在WEKA中数据预处理工具称作筛选器〔filters〕可以定义筛选器来以各种方式对数据进行变换。Filter一栏用于对各种筛选器进行必要的设置。Choose按钮:点击这个按钮就可选择WEKA中的某个筛选器。选定一个筛选器后,它的名字和选项会显示在Choose按钮旁边的文本框中。2024/5/2836载入数据Explorer的预处理〔preprocess〕页区域2的前4个按钮用来把数据载入WEKA:Openfile....翻开一个对话框,允许你浏览本地文件系统上的数据文件。OpenURL....请求一个存有数据的URL地址。OpenDB....从数据库中读取数据。Generate....从一些数据生成器〔DataGenerators〕中生成人造数据。2024/5/2837去除无用属性通常对于数据挖掘任务来说,像ID这样的信息是无用的,可以将之删除。在区域5勾选属性“id”,并点击“Remove”。将新的数据集保存,并重新翻开。2024/5/2838数据离散化有些算法(如关联分析),只能处理标称型属性,这时候就需要对数值型的属性进行离散化。对取值有限的数值型属性可通过修改.arff文件中该属性数据类型实现离散化。例如,在某数据集中的“children”属性只有4个数值型取值:0,1,2,3。我们直接修改ARFF文件,把
@attributechildrennumeric
改为
@attributechildren{0,1,2,3}
就可以了。在“Explorer”中重新翻开“bank-data.arff”,看看选中“children”属性后,区域6那里显示的“Type”变成“Nominal”了。2024/5/2839对取值较多的数值型属性,离散化可借助WEKA中名为“Discretize”的Filter来完成。在区域2中点“Choose”,出现一棵“Filter树”,逐级找到“weka.filters.unsupervised.attribute.Discretize”,点击。现在“Choose”旁边的文本框应该显示“Discretize-B10-M-0.1-Rfirst-last”。点击这个文本框会弹出新窗口以修改离散化的参数。2024/5/2840在weka的Explorer中翻开Iris.arff文件2024/5/28412024/5/28422024/5/2843查看Iris数据集2024/5/28442024/5/2845查看Iris数据属性分布图,选择属性2024/5/28462024/5/28472024/5/2848通过观察发现petallength最能区分各类2024/5/2849将属性petallength离散化2024/5/28502024/5/28512024/5/28522024/5/28532024/5/28542024/5/2855离散化成10段数据等频离散化离散化成10段数据2024/5/28562024/5/28572024/5/28582024/5/28592024/5/2860查看离散化后的Iris数据集2024/5/28612024/5/28625、分类ClassifyWEKA把分类(Classification)和回归(Regression)都放在“Classify”选项卡中。在这两个数据挖掘任务中,都有一个目标属性〔类别属性,输出变量〕。我们希望根据一个WEKA实例的一组特征属性〔输入变量〕,对目标属性进行分类预测。为了实现这一目的,我们需要有一个训练数据集,这个数据集中每个实例的输入和输出都是的。观察训练集中的实例,可以建立起预测的分类/回归模型。有了这个模型,就可以对新的未知实例进行分类预测。衡量模型的好坏主要在于预测的准确程度。2024/5/2863WEKA中的典型分类算法Bayes:贝叶斯分类器BayesNet:贝叶斯信念网络NaïveBayes:朴素贝叶斯网络Functions:人工神经网络和支持向量机MultilayerPerceptron:多层前馈人工神经网络SMO:支持向量机〔采用顺序最优化学习方法〕Lazy:基于实例的分类器IB1:1-最近邻分类器IBk:k-最近邻分类器2024/5/2864选择分类算法Meta:组合方法AdaBoostM1:AdaBoostM1方法Bagging:袋装方法Rules:基于规那么的分类器JRip:直接方法-Ripper算法Part:间接方法-从J48产生的决策树抽取规那么Trees:决策树分类器Id3:ID3决策树学习算法〔不支持连续属性〕J48:C4.5决策树学习算法〔第8版本〕REPTree:使用降低错误剪枝的决策树学习算法RandomTree:基于决策树的组合方法2024/5/2865选择分类算法2024/5/28662024/5/2867选择模型评估方法四种方法Usingtrainingset使用训练集评估Suppliedtestset使用测试集评估Cross-validation交叉验证设置折数FoldsPercentagesplit保持方法。使用一定比例的训练实例作评估设置训练实例的百分比2024/5/2868选择模型评估方法2024/5/2869Outputmodel.输出基于整个训练集的分类模型,从而模型可以被查看,可视化等。该选项默认选中。Outputper-classstats.输出每个class的准确度/反响率〔precision/recall〕和正确/错误〔true/false〕的统计量。该选项默认选中。Outputevaluationmeasures.输出熵估计度量。该选项默认没有选中。Outputconfusionmatrix.输出分类器预测结果的混淆矩阵。该选项默认选中。Storepredictionsforvisualization.记录分类器的预测结果使得它们能被可视化表示。Outputpredictions.输出测试数据的预测结果。注意在交叉验证时,实例的编号不代表它在数据集中的位置。Cost-sensitiveevaluation.误差将根据一个价值矩阵来估计。Set…按钮用来指定价值矩阵。Randomseedforxval/%Split.指定一个随即种子,当出于评价的目的需要分割数据时,它用来随机化数据。点击Moreoptions按钮可以设置更多的测试选项:2024/5/2870文字结果分析单击start按钮,Classifieroutput窗口显示的文字结果信息:Runinformation运行信息Classifiermodel(fulltrainingset)使用全部训练数据构造的分类模型Summary针对训练/检验集的预测效果汇总。DetailedAccuracyByClass对每个类的预测准确度的详细描述。ConfusionMatrix混淆矩阵,其中矩阵的行是实际的类,矩阵的列是预测得到的类,矩阵元素就是相应测试样本的个数。2024/5/2871文字结果2024/5/2872主要指标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建模花费的时间2024/5/2873输出图形结果鼠标右键2024/5/2874Viewinmainwindow(查看主窗口)。在主窗口中查看输出结果。Viewinseparatewindow(查看不同的窗口)。翻开一个独立的新窗口来查看结果。Saveresultbuffer(保存结果的缓冲区)。弹出对话框来保存输出结果的文本文件。Loadmodel(下载模式)。从二进制文件中载入一个预训练模式对象。Savemodel(保存模式)。将一个模式对象保存到二进制文件中,也就是保存在JAVA的串行对象格式中。Re-evaluatemodeloncurrenttestset(对当前测试集进行重新评估)。通过已建立的模式,并利用Suppliedtestset(提供的测试集)选项下的Set..按钮来测试指定的数据集。2024/5/2875Visualizeclassifiererrors(可视化分类器错误)。弹出一个可视化窗口来显示分类器的结果图。其中,正确分类的实例用叉表示,然而不正确分类的实例那么是以小正方形来表示的。Visualizetree(树的可视化)。如果可能的话,那么弹出一个图形化的界面来描述分类器模型的结构(这只有一局部分类器才有的)。右键单击空白区域弹出一个菜单,在面板中拖动鼠标并单击,就可以看见每个节点对应的训练实例。Visualizemargincurve(边际曲线的可视化)。产生一个散点图来描述预测边际的情况。边际被定义为预测为真实值的概率和预测为真实值之外的其它某类的最高概率之差。例如加速算法通过增加训练数据集的边际来更好地完成测试数据集的任务。2024/5/2876Visualizethresholdcurve(阈曲线的可视化)。产生一个散点图来描述预测中的权衡问题,其中权衡是通过改变类之间阈值来获取的。例如,缺省阈值为0.5,一个实例预测为positive的概率必须要大于0.5,因为0.5时实例正好预测为positive。而且图表可以用来对精确率/反响率权衡进行可视化,如ROC曲线分析(正确的正比率和错误的正比率)和其它的曲线。Visualizecostcurve(本钱曲线的可视化)。产生一个散点图,来确切描述期望本钱,正如Drummond和Holte所描述的一样。2024/5/2877Visualizeclassifiererrors.可视化分类错误实际类与预测类的散布图。其中正确分类的结果用叉表示,分错的结果用方框表示。2024/5/2878Visualizetree可视化树2024/5/28792024/5/28802024/5/2881可视化边际曲线〔Visualizemargincurve〕创立一个散点图来显示预测边际值。四个变量Margin:预测边际值Instance_number:检验实例的序号Current:具有当前预测边际值的实例个数Cumulative:小于或等于预测边际值的实例个数〔与Instance_number一致〕2024/5/28822024/5/2883单击8号检验实例,显示该点的边际值为0.5,有7个实例的边际值小于0.5。2024/5/2884可视化阈值曲线〔基于类〕阈值是将检验实例归为当前类的最小概率,使用点的颜色表示阈值曲线上的每个点通过改变阈值的大小生成可以进行ROC分析X轴选假正率Y轴选真正率2024/5/28852024/5/28862024/5/2887ROC曲线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)是理想模型一个好的分类模型应该尽可能靠近图形的左上角。2024/5/2888IRIS分类例如2024/5/2889在weka的Explorer中翻开Iris.arff文件2024/5/2890在weka的Explorer中翻开Iris.arff文件2024/5/28912024/5/2892选择分类〔Classify〕数据挖掘任务2024/5/2893选择分类算法2024/5/2894选择决策树算法Trees->J482024/5/2895设置相关参数2024/5/28962024/5/28972024/5/2898选择检验方法2024/5/28992024/5/281002024/5/281012024/5/281022024/5/281032024/5/28104执行分类算法,建立决策树模型2024/5/28105查看算法执行的输出信息2024/5/281062024/5/28107查看决策树分类模型2024/5/281082024/5/281092024/5/28110查看分类错误散点图2024/5/281112024/5/28112选择其他的分类算法2024/5/281132024/5/28114选择贝叶斯分类算法bayes->Naivebayes2024/5/28115选择检验方法2024/5/28116执行分类算法,建立贝叶斯模型2024/5/28117进行ROC分析2024/5/281182024/5/281192024/5/28120选择其他的分类算法2024/5/28121选择决策树用户自分类法trees->UserClssifier2024/5/28122选择检验方法2024/5/28123执行算法2024/5/281242024/5/28125数据散点图2024/5/28126但击鼠标,确定分类边界2024/5/28127查看相应的分类树2024/5/28128预测指定属性值2024/5/28129选择预测属性2024/5/281302024/5/28131选择算法2024/5/281322024/5/28133执行算法2024/5/28134观察输出信息2024/5/281352024/5/28136查看分类错误散点图2024/5/281372024/5/28138点击实例,观察详细信息2024/5/28139该实例petallength的实际值为5.1,预测值为5.892024/5/28140训练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)2024/5/28141浏览bank-data.xls数据2024/5/28142数据准备—将数据另存为.csv格式2024/5/281432024/5/28144数据准备—在WEKA中翻开bank-data.csv2024/5/281452024/5/281462024/5/281472024/5/28148数据准备—在WEKA中浏览数据2024/5/281492024/5/28150数据准备—将数据另存为.arff格式2024/5/28151在写字板中浏览bank-data.arff文件2024/5/281522024/5/28153数据预处理去除无用属性 通常对于数据挖掘任务来说,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”了。2024/5/28154数据预处理“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。2024/5/28155数据预处理--去除无用属性
2024/5/281562024/5/28157数据预处理—children数据离散化2024/5/28158数据预处理—children数据离散化用写字板翻开bank-data.arff文件2024/5/281592024/5/28160在WEKA中重新翻开bank-data.arff文件。2024/5/281612024/5/28162观察children属性。2024/5/28163数据预处理—离散化“age”和“income”
2024/5/28164数据预处理—数据离散化2024/5/281652024/5/281662024/5/281672024/5/281682024/5/281692024/5/281702024/5/28171在写字板中重新观察bank-data.arff数据2024/5/28172训练分类模型2024/5/281732024/5/281742024/5/28175评估分类模型2024/5/28176选择不同的分类算法或参数2024/5/281772024/5/28178选择模型2024/5/281792024/5/281802024/5/281812024/5/281822024/5/281836、聚类cluster聚类分析是把对象分配给各个簇,使同簇中的对象相似,而不同簇间的对象相异。WEKA在“Explorer”界面的“Cluster”提供聚类分析工具选择聚类算法2024/5/28184WEKA中的聚类算法2024/5/28185主要算法包括:SimpleKMeans—支持分类属性的K均值算法DBScan—支持分类属性的基于密度的算法EM—基于混合模型的聚类算法FathestFirst—K中心点算法OPTICS—基于密度的另一个算法Cobweb—概念聚类算法sIB—基于信息论的聚类算法,不支持分类属性XMeans—能自动确定簇个数的扩展K均值算法,不支持分类属性2024/5/28186参数设置SimpleKMeans重要参数N—簇个数DBScan重要参数E—Eps半径M—MinPts,Eps半径内点个数2024/5/28187SimpleKMeans重要参数2024/5/28188displayStdDevs:是否显示数值属性标准差和分类属性个数distanceFunction:选择比较实例的距离函数(默认:weka.core.EuclideanDistance)dontReplaceMissingValues:是否不使用均值/众数〔mean/mode〕替换缺失值。maxIterations:最大迭代次数numClusters:聚类的簇数preserveInstancesOrder:是否预先排列实例的顺序Seed:设定的随机种子值2024/5/28189聚类模式ClusterMode2024/5/28190使用训练集(Usetrainingset)—报告训练对象的聚类结果和分组结果使用附加的检验集(Suppliedtestset)—报告训练对象的聚类结果和附加的检验对象的分组结果百分比划分(Percentagesplit)—报告全部对象的聚类结果、训练对象的聚类结果,以及检验对象的分组结果监督评估(Classestoclustersevaluation)—报告训练对象的聚类结果和分组结果、类/簇混淆矩阵和错误分组信息2024/5/28191执行聚类算法点击“Start”按钮,执行聚类算法2024/5/28192观察聚类结果观察右边“Clustereroutput”给出的聚类结果。也可以在左下角“Resultlist”中这次产生的结果上点右键,“Viewinseparatewindow”在新窗口中浏览结果。2024/5/28193===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%数据集中的实例个数2024/5/28194Attributes:5%数据集中的属性个数及属性名称sepallengthsepalwidthpetallengthpetalwidthIgnored:%忽略的属性classTestmode:Classestoclustersevaluationontrainingdata%测试模式===Modelandevaluationontainingset===%基于训练数据集的模型与评价kMeans%使用kMeans算法======Numberofiterations:6kMeans%迭代次数%SSE(误差的平方和)Missingvaluesgloballyreplacedwithmean/mode%用均值/众数替代缺失值2024/5/28195Clustercentroids:%各个簇的质心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%)2024/5/28196注意:采用有监督聚类〔即建模数据集的类标号〕,
才会出现以下执行信息。Classattribute:class%类标号属性名称ClassestoClusters:%类簇混淆矩阵012<--assignedtocluster0500|Iris-setosa4703|Iris-versicolor14036|Iris-virginisaCluster0<--Iris-versicolorCluster1<--Iris-setosaCluster2<--Iris-virginicaIncorrectlyclusteredinstances:17.011.3333%%错分实例个数及百分比2024/5/28197文字分析SimpleKMeans非监督模式:运行信息、KMeans结果〔迭代次数、SSE、簇中心〕、检验对象的分组信息监督模式:运行信息、KMeans结果〔迭代次数、SSE、簇中心〕、类/簇混淆矩阵、错误分组的对象个数和比例簇中心:对于数值属性为均值,对于分类属性为众数DBScan非监督模式:运行信息、DBScan结果〔迭代次数、各个训练对象的分组信息〕、检验对象的分组信息监督模式:运行信息、DBScan结果〔迭代次数、各个训练对象的分组信息〕、类/簇混淆矩阵、错误分组的对象个数和比例图形分析〔必须将storeclustersforvisualization勾上〕可视化簇指派(Visualizeclusterassignments):2D散布图,能够可视化类/簇混淆矩阵2024/5/28198SimpleKMeans聚类结果分析重要的输出信息“Withinclustersumofsquarederrors”评价聚类好坏的标准—SSE,即误差的平方和。SSE值越小说明聚类结果越好。“Clustercentroids:”之后列出了各个簇中心的位置。对于数值型的属性,簇中心就是它的均值〔Mean〕,分类型的就是它的众数〔Mode〕。“ClusteredInstances”是各个簇中实例的数目及百分比。2024/5/28199观察可视化的聚类结果在左下方“Resultlist”列出的结果上右击,点“Visualizeclusterassignments”。弹出的窗口给出了各实例的散点图。最上方的两个框是选择横坐标和纵坐标,第二行的”color”是散点图着色的依据,默认是根据不同的簇“Cluster”给实例标上不同的颜色。
2024/5/28200例如:对IRIS数据集作聚类分析2024/5/28201采用无监督聚类,删除原有的类标号2024/5/28202选择聚类数据挖掘任务2024/5/28203选择聚类算法2024/5/28204选中SimpleKMeans算法2024/5/28205设置参数2024/5/28206聚类簇数numCluster=32024/5/28207执行聚类算法2024/5/28208观察聚类结果2024/5/282092024/5/28210可视化聚类结果2024/5/28211保存聚类结果2024/5/282122024/5/28213在写字板中观察实例的簇2024/5/28214聚类实验—银行客户分类
本次实验利用Weka中提供的simpleKmeans(K-均值〕算法对“bank-data”数据进行聚类分析,其目的是发现相似客户群,以满足银行的客户细分需求,为银行针对不同客户群体的营销策略提供支持。2024/5/28215数据的准备及预处理
原始数据“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”。2024/5/28216K均值算法只能处理数值型的属性,遇到分类型的属性时要把它变为假设干个取值0和1的属性。WEKA将自动实施这个分类型到数值型的变换,而且WEKA会自动对数值型的数据作标准化。因此,对于ARFF格式的原始数据“bank-data.arff”,我们所做的预处理只是删去属性“id”,修改属性“children”为分类型。修改正程如下:翻开“bank-data.arff”,将@attributechildrennumeric改成如下:2024/5/28217使用WEKA聚类用“Explorer”翻开包含600条实例“bank-data.arff”,并切换到“Cluster”。点击“Choose”按钮,选择“SimpleKMeans”。点击旁边的文本框,修改参数“numClusters”为6,说明我们希望把这600条实例聚成6类,即K=6。下面的“seed”参数是要设置一个随机种子,依此产生一个随机数,用来得到K均值算法中第一次给出的K个簇中心的位置。我们暂时让它就为10。选中“ClusterMode”的“Usetrainingset”点击“Start”按钮观察右边“Clustereroutput”给出的聚类结果。2024/5/282182024/5/282192024/5/282202024/5/28221结果分析
当前,调整“seed”参数,观察Withinclustersumofsquarederrors〔SSE〕变化。采纳SSE最小的一个结果。“Clustercentroids:”之后列出了各个簇中心的位置。对于数值型的属性,簇中心就是它的均值〔Mean〕,如cluster0的数值型变量age的均值37.1299;分类型的就是它的众数〔Mode〕,如cluster0的分类型变量children的众数为3,也就是说这个属性上取值为众数值3〔有3个孩子〕的实例最多。为了观察可视化的聚类结果,在左下方“Resultlist”列出的结果上右击,点“Visualizeclusterassignments”。弹出的窗口给出了各实例的散点图。最上方的两个框是选择横坐标和纵坐标,第二行的”color”是散点图着色的依据,默认是根据不同的簇“Cluster”给实例标上不同的颜色。例如,横坐标选择Instance_number,纵坐标选择income。2024/5/282222024/5/28223点击“Save”,把聚类结果保存成bank_Cluster.arff文件。可以在写字板中翻开观察聚类结果文件。在这个新的ARFF文件中,“instance_number”属性表示某实例的编号,“Cluster”属性表示聚类算法给出的该实例所在的簇。2024/5/282247、关联规那么associationsWEKA关联规那么学习能够发现属性组之间的依赖关系:例如,milk,butterbread,eggs(置信度0.9and支持数2000)对于关联规那么L->R支持度〔support〕——同时观察到前件和后件的概率 support=Pr(L,R)置信度〔confidence〕——出现前件时同时出现后件的概率 confidence=Pr(L,R)/Pr(L)2024/5/28225关联规那么挖掘的主要算法WEKA数据挖掘平台上的关联规那么挖掘的主要算法有:Apriori--能够得出满足最小支持度和最小支持度的所有关联规那么。PredictiveApriori--将置信度和支持度合并为预测精度而成为单一度测量法,找出经过预测精度排序的关联规那么。Terius--根据确认度来寻找规那么,它与Apriori一样寻找其结论中含有多重条件的规那么,但不同的是这些条件相互间是‘或’,而不是‘与’的关系。这三个算法均不支持数值型数据。事实上,绝大局部的关联规那么算法均不支持数值型。所以必须将数据进行处理,将数据按区段进行划分,进行离散化分箱处理。2024/5/282262024/5/28227算法属性设置2024/5/28228car:如果设为真,那么会挖掘类关联规那么而不是全局关联规那么。classindex:类属性索引。如果设置为-1,最后的属性被当做类属性。delta:以此数值为迭代递减单位。不断减小支持度直至到达最小支持度或产生了满足数量要求的规那么。lowerBoundMinSupport:最小支持度下界。metricType:度量类型,设置对规那么进行排序的度量依据。可以是:置信度〔类关联规那么只能用置信度挖掘〕,提升度(lift),平衡度(leverage),确信度(conviction)。minMtric:度量的最小值。numRules:要发现的规那么数。outputItemSets:如果设置为真,会在结果中输出项集。removeAllMissingCols:移除全部为缺失值的列。significanceLevel:重要程度。重要性测试〔仅用于置信度〕。upperBoundMinSupport:最小支持度上界。从这个值开始迭代减小最小支持度。verbose:如果设置为真,那么算法会以冗余模式运行。2024/5/28229度量类型metricTypeWeka中设置了几个类似置信度(confidence)的度量来衡量规那么的关联程度,它们分别是:Lift,提升度:置信度与后件支持度的比率 lift=Pr(L,R)/(Pr(L)Pr(R))Lift=1时表示L和R独立。这个数越大(>1),越说明L和B存在于一个购物篮中不是偶然现象,有较强的关联度。Leverage,平衡度:在前件和后件统计独立的假设下,被前件和后件同时涵盖的超出期望值的那局部实例的比例。
leverage=Pr(L,R)-Pr(L)Pr(R)Leverage=0时L和R独立,Leverage越大L和R的关系越密切。Conviction,可信度:也用来衡量前件和后件的独立性。conviction=Pr(L)Pr(!R)/Pr(L,!R)〔!R表示R没有发生〕从它和lift的关系〔对R取反,代入Lift公式后求倒数〕可以看出,这个值越大,L和R越关联。2024/5/28230关联规那么挖掘算法运行信息===Runinformation===%运行信息
Scheme:
weka.associations.Apriori-I-N10-T0-C0.9-D0.05-U1.0-M0.1-S-1.0-c-1
%
算法的参数设置:-I-N10-T0-C0.9-D0.05-U1.0-M0.5-S-1.0-c-1;
%
各参数依次表示:
%
I-输出项集,假设设为false那么该值缺省;
%
N10-规那么数为10;
%
T0–度量单位选为置信度,(T1-提升度,T2杠杆率,T3确信度);
%
C0.9–度量的最小值为0.9;
%
D0.05-递减迭代值为0.05;
%
U1.0-最小支持度上界为1.0;
%
M0.5-最小支持度下届设为0.5;
%
S-1.0-重要程度为-1.0;
%
c-1-类索引为-1输出项集设为真
%
(由于car,removeAllMissingCols,verbose都保持为默认值False,因此在结果的参数设置为缺省,假设设为True,那么会在结果的参数设置信息中分别表示为A,R,V)
2024/5/28231Relation:
mushroom%数据集名称
Instances:
8124%数据项个数
Attributes:
23%属性项个数/属性项
cap-shape
cap-surface
cap-color
bruises?
odor
gill-attachment
gill-spacing
gill-size
gill-color
stalk-shape
stalk-root
stalk-surface-above-ring
stalk-surface-below-ring
stalk-color-above-ring
stalk-color-below-ring
veil-type
veil-color
ring-number
ring-type
spore-print-color
population
habitat
class
2024/5/28232===Associatormodel(fulltrainingset)===Apriori
=======
Minimumsupport:0.95(7718instances)
%最小支持度0.95,即最少需要7718个实例
Minimummetric<confidence>:0.9
%最小度量<置信度>:0.9
Numberofcyclesperformed:1%进行了1轮搜索
Generatedsetsoflargeitemsets:%生成的频繁项集
SizeofsetoflargeitemsetsL(1):3
%频繁1项集:3个
LargeItemsetsL(1):
%频繁1项集(outputItemSets设为True,因此下面会具体列出)
gill-attachment=f7914
veil-type=p8124
veil-color=w7924
2024/5/28233SizeofsetoflargeitemsetsL(2):3
LargeItemsetsL(2):
%频繁2项集
gill-attachment=fveil-type=p7914
gill-attachment=fveil-color=w7906
veil-type=pveil-color=w7924
SizeofsetoflargeitemsetsL(3):1
LargeItemsetsL(3):
%频繁3项集
gill-attachment=fveil-type=pveil-color=w79062024/5/28234Bestrulesfound:
%最正确规那么
1.veil-color=w7924==>veil-type=p7924
conf:(1)
2.gill-attachment=f7914==>veil-type=p7914
conf:(1)
3.gill-attachment=fveil-color=w7906==>veil-type=p7906
conf:(1)
4.gill-attachment=f7914==>veil-color=w7906
conf:(1)
5.gill-attachment=fveil-type=p7914==>veil-color=w7906
conf:(1)
6.gill-attachment=f7914==>veil-type=pveil-color=w7906
conf:(1)
7.veil-color=w7924==>gill-attachment=f7906
conf:(1)
8.veil-type=pveil-color=w7924==>gill-attachment=f7906
conf:(1)
9.veil-color=w7924==>gill-attachment=fveil-type=p7906
conf:(1)
10.veil-type=p8124==>veil-color=w7924
conf:(0.98)
2024/5/28235数据挖掘任务挖掘支持度在10%到100%之间,并且置信度超过0.8且置信度排在前100位的分类关联规那么数据集为“weather.nominal.arff”“car”设为True“metricType”设为confidence“minMetric”设为0.8“numRules”设为1002024/5/28236在WEKA中翻开“weather.nominal.arff”数据集2024/5/28237选择关联分析2024/5/28238选择Apriori算法2024/5/28239设定参数2024/5/282402024/5/28241执行算法2024/5/28242观察关联规那么2024/5/282438、属性选择SelectAttributes属性选择是搜索数据集中全部属性的所有可能组合,找出预测效果最好的那一组属性。为实现这一目标,必须设定属性评估器〔evaluator〕和搜索策略。评估器决定了怎样给一组属性安排一个表示它们好坏的值。搜索策略决定了要怎样进行搜索。选项AttributeSelectionMode一栏有两个选项。Usefulltrainingset.使用训练数据的全体决定一组属性的好坏。Cross-validation.一组属性的好坏通过一个交叉验证过程来决定。Fold和Seed分别给出了交叉验证的折数和打乱数据时的随机种子。和Classify局部一样,有一个下拉框来指定class属性。2024/5/28244执行选择点击Start按钮开始执行属性选择过程。它完成后,结果会输出到结果区域中,同时结果列表中会增加一个条目。在结果列表上右击,会给出假设干选项。其中前面三个〔Viewinmainwindow,Viewinseparatewindow和Saveresultbuffe〕和分类面板中是一样的。还可以可视化精简过的数据集〔Visualizereduceddata〕能可视化变换过的数据集〔Visualizetransformeddata〕精简过/变换过的数据能够通过Savereduceddata...或Savetransformeddata...选项来保存。2024/5/282452024/5/282462024/5/282472024/5/282482024/5/282492024/5/282502024/5/282512024/5/282529、数据可视化VisualizeWEKA的可视化页面可以对当前的关系作二维散点图式的可视化浏览。散点图矩阵选择了Visualize面板后,会为所有的属性给出一个散点图矩阵,它们会根据所选的class属性来着色。在这里可以改变每个二维散点图的大小,改变各点的大小,以及随机地抖动〔jitter〕数据〔使得被隐藏的点显示出来〕。也可以改变用来着色的属性,可以只选择一组属性的子集放在散点图矩阵中,还可以取出数据的一个子样本。注意这些改变只有在点击了Update了按钮之后才会生效。2024/5/282532024/5/28254选择单独的二维散点图在散点图矩阵的一个元素上点击后,会弹出一个单独的窗口对所选的散点图进行可视化。数据点散布在窗口的主要区域里。上方是两个下拉框选择用来选择打点的坐标轴。左边是用作x轴的属性;右边是用作y轴的属性。在x轴选择器旁边是一个下拉框用来选择着色的方案。它
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 营销计划书论文
- 2024年团支部“一团一品”建设计划
- 2024学年小学四年级班主任工作计划
- 4竞聘计划生育办演讲稿范文
- 中专班主任春季工作计划范文
- 2024年中专生班主任工作计划范文
- KPMG精英计划笔试经验
- 《温州皮革市场调查》课件
- 2024年小学课外活动计划例文大全
- 2024年计划生育工作总结年终总结汇报
- 研究生考试考研法律硕士专业基础(法学397)试卷及答案指导(2024年)
- 中煤集团山西有限公司社会招聘考试试卷及答案
- 2024年安徽客运驾驶员培训试题及答案解析
- 《光伏电站运行与维护》试题及答案一
- 在线旅游平台旅游产品供应商管理预案
- 北师大版七年级上册生物教学设计 3.6.1 种子萌发形成幼苗
- 【课件】珍惜师生情谊+课件-2024-2025学年统编版道德与法治七年级上册
- 赋能或去能:人工智能对创造性人格的影响
- 2024年广东省中山市住房和城乡建设局招聘8人历年高频500题难、易错点模拟试题附带答案详解
- 矫形器装配工(三级)职业技能鉴定考试题库(含答案)
- 国家病案质控死亡病例自查表
评论
0/150
提交评论