




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据挖掘工具-WEKA教程WEKA简介.2数据集.11数据准备.24数据预处理36分类63聚类.184关联规则225选择属性244数据可视化253知识流界面2752022/7/2211、WEKA简介WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis)weka也是新西兰的一种鸟名是新西兰怀卡托大学WEKA小组用Java开发的机器学习/数据挖掘开源软件。其源代码获取http:/www.cs.waikato.ac.nz/ml/weka/weka/weka-3-6-6jre.exe2005年8月,在第11届ACM SIGKDD国际会
2、议上,怀卡托大学的WEKA小组荣获了数据挖掘和知识探索领域的最高服务奖, WEKA系统得到了广泛的认可,被誉为数据挖掘和机器学习历史上的里程碑,是现今最完备的数据挖掘工具之一。 WEKA的每月下载次数已超过万次。2022/7/222WEKA软件主要特点它是集数据预处理、学习算法(分类、回归、聚类、关联分析)和评估方法等为一体的综合性数据挖掘工具。具有交互式可视化界面。提供算法学习比较环境通过其接口,可实现自己的数据挖掘算法WEKA的界面2022/7/223探索环境命令行环境知识流环境算法试验环境2022/7/224Explorer环境 2022/7/225把“Explorer”界面分成8个区域
3、区域1的几个选项卡是用来切换不同的挖掘任务面板。Preprocess(数据预处理):选择和修改要处理的数据。 Classify(分类):训练和测试分类或回归模型。 Cluster(聚类):从数据中聚类。 Associate(关联分析):从数据中学习关联规则。 Select Attributes(选择属性):选择数据中最相关的属性。 Visualize(可视化) :查看数据的二维散布图。区域2是一些常用按钮。包括打开、编辑、保存数据及数据转换等功能。例如,我们可以把文件“bank-data.csv”另存为“bank-data.arff”。区域3中可以选择(Choose)某个筛选器(Filter)
4、,以实现筛选数据或者对数据进行某种变换。数据预处理主要就利用它来实现。2022/7/226区域4展示了数据集的关系名、属性数和实例数等基本情况。区域5中列出了数据集的所有属性。勾选一些属性并“Remove”就可以删除它们,删除后还可以利用区域2的“Undo”按钮找回。区域5上方的一排按钮是用来实现快速勾选的。区域6中显示在区域5中选中的当前某个属性的摘要。摘要包括属性名(Name)、属性类型(Type)、缺失值(Missing)数及比例、不同值(Distinct )数、唯一值(Unique)数及比例对于数值属性和标称属性,摘要的方式是不一样的。图中显示的是对数值属性“income”的摘要。数值
5、属性显示最小值(Minimum)、最大值(Maximum) 、均值(Mean)和标准差(StdDev)标称属性显示每个不同值的计数2022/7/227区域7是区域5中选中属性的直方图。若数据集的最后一个属性(这是分类或回归任务的默认目标变量)是类标变量(例如“pep” ),直方图中的每个长方形就会按照该变量的比例分成不同颜色的段。要想换个分段的依据,在区域7上方的下拉框中选个不同的分类属性就可以了。下拉框里选上“No Class”或者一个数值属性会变成黑白的直方图。2022/7/228区域8窗口的底部区域,包括状态栏、log按钮和Weka鸟。状态栏(Status)显示一些信息让你知道正在做什么
6、。例如,如果 Explorer 正忙于装载一个文件,状态栏就会有通知。在状态栏中的任意位置右击鼠标将会出现一个小菜单。这个菜单给了你两个选项: Memory Information-显示WEKA可用的内存量。 Run garbage collector-强制运行Java垃圾回收器,搜索不再需要的内存空间并将之释放,从而可为新任务分配更多的内存。Log按钮可以查看以weka操作日志 。右边的weka鸟在动的话,说明WEKA正在执行挖掘任务。2022/7/229KnowledgeFlow环境2022/7/22102、WEKA数据集WEKA所处理的数据集是一个.arff文件的二维表2022/7/22
7、11表格里的一个横行称作一个实例(Instance),相当于统计学中的一个样本,或者数据库中的一条记录。竖行称作一个属性(Attribute),相当于统计学中的一个变量,或者数据库中的一个字段。这样一个表格,或者叫数据集,在WEKA看来,呈现了属性之间的一种关系(Relation)。上图中一共有14个实例,5个属性,关系名称为“weather”。WEKA存储数据的格式是ARFF(Attribute-Relation File Format)文件,这是一种ASCII文本文件。上图所示的二维表格存储在如下的ARFF文件中。这也就是WEKA自带的“weather.arff”文件,在WEKA安装目录的
8、“data”子目录下可以找到。2022/7/2212relation weatherattribute outlook sunny, overcast, rainyattribute temperature realattribute humidity realattribute windy TRUE, FALSEattribute play yes, nodatasunny,85,85,FALSE,nosunny,80,90,TRUE,noovercast,83,86,FALSE,yesrainy,70,96,FALSE,yesrainy,68,80,FALSE,yesrainy,65,70
9、,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,no2022/7/2213WEKA数据文件WEKA存储数据的格式是ARFF(Attribute-Relation File Format)文件这是一种ASCII文本文件文件的扩展名为.arff可以用写字板打开、编辑 ARFF文件文件中以“%”开始
10、的行是注释,WEKA将忽略这些行。除去注释后,整个ARFF文件可以分为两个部分:第一部分给出了头信息(Head information),包括了对关系的声明和对属性的声明。第二部分给出了数据信息(Data information),即数据集中给出的数据。从“data”标记开始,后面的就是数据信息了。2022/7/22142022/7/2215关系声明关系名称在ARFF文件的第一个有效行来定义,格式为: relation 是一个字符串。如果这个字符串包含空格,它必须加上引号(指英文标点的单引号或双引号)。 2022/7/2216属性声明属性声明用一列以“attribute”开头的语句表示。数据集
11、中的每一个属性都有对应的“attribute”语句,来定义它的属性名称和数据类型(datatype): attribute 其中必须以字母开头的字符串。和关系名称一样,如果这个字符串包含空格,它必须加上引号。属性声明语句的顺序很重要,它表明了该项属性在数据部分的位置。例如,“humidity”是第三个被声明的属性,这说明数据部分那些被逗号分开的列中,第2列(从第0列开始)数据 85 90 86 96 . 是相应的“humidity”值。其次,最后一个声明的属性被称作class属性,在分类或回归任务中,它是默认的目标变量。2022/7/2217数据类型WEKA支持四种数据类型numeric数值型
12、 标称(nominal)型string字符串型date 日期和时间型还可以使用两个类型“integer”和“real”,但是WEKA把它们都当作“numeric”看待。注意:“integer”,“real”,“numeric”,“date”,“string”这些关键字是区分大小写的,而“relation”、“attribute ”和“data”则不区分。2022/7/2218数值型属性数值型属性可以是整数或者实数,但WEKA把它们都当作实数看待。例如: attribute temperature real 字符串属性字符串属性可以包含任意的文本。例如: attribute LCC string
13、2022/7/2219标称属性标称属性由列出一系列可能的类别名称并放在花括号中:, , , . 。数据集中该属性的值只能是其中一种类别。例如属性声明: attribute outlook sunny, overcast, rainy 说明“outlook”属性有三种类别:“sunny”,“ overcast”和“rainy”。而数据集中每个实例对应的“outlook”值必是这三者之一。如果类别名称带有空格,仍需要将之放入引号中。2022/7/2220日期和时间属性日期和时间属性统一用“date”类型表示,它的格式是: attribute date 其中是一个字符串,来规定该怎样解析和显示日期或
14、时间的格式,默认的字符串是ISO-8601所给的日期时间组合格式: “yyyy-MM-dd HH:mm:ss” 数据信息部分表达日期的字符串必须符合声明中规定的格式要求,例如: ATTRIBUTE timestamp DATE yyyy-MM-dd HH:mm:ss DATA 2011-05-03 12:59:552022/7/2221数据信息数据信息中“data”标记独占一行,剩下的是各个实例的数据。每个实例占一行,实例的各属性值用逗号“,”隔开。如果某个属性的值是缺失值(missing value),用问号“?”表示,且这个问号不能省略。例如: data sunny,85,85,FALSE
15、,no ?,78,90,?,yes2022/7/2222稀疏数据有的时候数据集中含有大量的0值,这个时候用稀疏格式的数据存储更加省空间。稀疏格式是针对数据信息中某个对象的表示而言,不需要修改ARFF文件的其它部分。例如数据:data 0, X, 0, Y, class A 0, 0, W, 0, class B 用稀疏格式表达的话就是 data 1 X, 3 Y, 4 class A 2 W, 4 class B 注意:ARFF数据集最左端的属性列为第0列,因此,1 X表示X为第1列属性值。2022/7/22233、数据准备数据获取直接使用ARFF文件数据。 从CSV,C4.5,binary等
16、多种格式文件中导入。通过JDBC从SQL数据库中读取数据。从URL(Uniform Resource Locator)获取网络资源的数据。数据格式转换ARFF格式是WEKA支持得最好的文件格式。使用WEKA作数据挖掘,面临的第一个问题往往是数据不是ARFF格式的。WEKA还提供了对CSV文件的支持,而这种格式是被很多其他软件(比如Excel)所支持。可以利用WEKA将CSV文件格式转化成ARFF文件格式。2022/7/2224数据资源WEKA自带的数据集C:Program FilesWeka-3-6data网络数据资源 /ml/datasets.html2022/7/2225.XLS .CSV
17、 .ARFFExcel的XLS文件可以让多个二维表格放到不同的工作表(Sheet)中,只能把每个工作表存成不同的CSV文件。打开一个XLS文件并切换到需要转换的工作表,另存为CSV类型,点“确定”、“是”忽略提示即可完成操作。在WEKA中打开一个CSV类型文件,再另存为ARFF类型文件即可。2022/7/2226打开Excel的Iris.xls文件2022/7/22272022/7/2228将iris.xls另存为iris.csv文件2022/7/22292022/7/22302022/7/2231在weka的Explorer中打开Iris.csv文件2022/7/22322022/7/223
18、3将iris. csv另存为iris. arff 文件2022/7/22342022/7/22354、数据预处理 preprocess在WEKA中数据预处理工具称作筛选器(filters)可以定义筛选器来以各种方式对数据进行变换。Filter 一栏用于对各种筛选器进行必要的设置。Choose 按钮:点击这个按钮就可选择 WEKA 中的某个筛选器。选定一个筛选器后,它的名字和选项会显示在 Choose 按钮旁边的文本框中。2022/7/2236载入数据Explorer的预处理( preprocess )页区域2的前4个按钮用来把数据载入WEKA: Open file. 打开一个对话框,允许你浏览
19、本地文件系统上的数据文件。 Open URL. 请求一个存有数据的URL地址。 Open DB. 从数据库中读取数据 。 Generate. 从一些数据生成器(DataGenerators)中生成人造数据。 2022/7/2237去除无用属性通常对于数据挖掘任务来说,像ID这样的信息是无用的,可以将之删除。在区域5勾选属性“id”,并点击“Remove”。将新的数据集保存,并重新打开。2022/7/2238数据离散化有些算法(如关联分析),只能处理标称型属性,这时候就需要对数值型的属性进行离散化。对取值有限的数值型属性可通过修改.arff文件中该属性数据类型实现离散化。例如,在某数据集中的 “
20、children”属性只有4个数值型取值:0,1,2,3。我们直接修改ARFF文件,把 attribute children numeric 改为 attribute children 0,1,2,3 就可以了。在“Explorer”中重新打开“bank-data.arff”,看看选中“children”属性后,区域6那里显示的“Type” 变成“Nominal”了。2022/7/2239对取值较多的数值型属性,离散化可借助WEKA中名为“Discretize”的Filter来完成。在区域2中点“Choose”,出现一棵“Filter树”,逐级找到“weka.filters.unsupervi
21、sed.attribute.Discretize”,点击。现在“Choose”旁边的文本框应该显示“Discretize -B 10 -M -0.1 -R first-last”。 点击这个文本框会弹出新窗口以修改离散化的参数。2022/7/2240在weka的Explorer中打开Iris.arff文件2022/7/22412022/7/22422022/7/2243查看Iris数据集2022/7/22442022/7/2245查看Iris数据属性分布图,选择属性2022/7/22462022/7/22472022/7/2248通过观察发现petallength最能区分各类2022/7/22
22、49将属性petallength离散化2022/7/22502022/7/22512022/7/22522022/7/22532022/7/22542022/7/2255离散化成10段数据等频离散化离散化成10段数据2022/7/22562022/7/22572022/7/22582022/7/22592022/7/2260查看离散化后的Iris数据集2022/7/22612022/7/22625、分类 ClassifyWEKA把分类(Classification)和回归(Regression)都放在“Classify”选项卡中。在这两个数据挖掘任务中,都有一个目标属性(类别属性,输出变量)。
23、我们希望根据一个WEKA实例的一组特征属性 (输入变量),对目标属性进行分类预测。为了实现这一目的,我们需要有一个训练数据集,这个数据集中每个实例的输入和输出都是已知的。观察训练集中的实例,可以建立起预测的分类/回归模型。有了这个模型,就可以对新的未知实例进行分类预测。衡量模型的好坏主要在于预测的准确程度。2022/7/2263WEKA中的典型分类算法Bayes: 贝叶斯分类器BayesNet: 贝叶斯信念网络NaveBayes: 朴素贝叶斯网络Functions: 人工神经网络和支持向量机MultilayerPerceptron: 多层前馈人工神经网络SMO: 支持向量机(采用顺序最优化学习
24、方法)Lazy: 基于实例的分类器IB1: 1-最近邻分类器IBk: k-最近邻分类器2022/7/2264选择分类算法Meta: 组合方法AdaBoostM1: AdaBoost M1方法Bagging: 袋装方法Rules: 基于规则的分类器JRip: 直接方法Ripper算法Part: 间接方法从J48产生的决策树抽取规则Trees: 决策树分类器Id3: ID3决策树学习算法(不支持连续属性)J48: C4.5决策树学习算法(第8版本)REPTree: 使用降低错误剪枝的决策树学习算法RandomTree: 基于决策树的组合方法2022/7/2265选择分类算法2022/7/22662
25、022/7/2267选择模型评估方法四种方法Using training set 使用训练集评估Supplied test set 使用测试集评估Cross-validation 交叉验证设置折数FoldsPercentage split 保持方法。使用一定比例的训练实例作评估设置训练实例的百分比2022/7/2268选择模型评估方法2022/7/2269Output model. 输出基于整个训练集的分类模型,从而模型可以被查看,可视化等。该选项默认选中。Output per-class stats. 输出每个class的准确度/反馈率(precision/recall)和正确/错误(tru
26、e/false)的统计量。该选项默认选中。Output evaluation measures. 输出熵估计度量。该选项默认没有选中。Output confusion matrix. 输出分类器预测结果的混淆矩阵。该选项默认选中。Store predictions for visualization. 记录分类器的预测结果使得它们能被可视化表示。Output predictions. 输出测试数据的预测结果。注意在交叉验证时,实例的编号不代表它在数据集中的位置。Cost-sensitive evaluation. 误差将根据一个价值矩阵来估计。Set 按钮用来指定价值矩阵。Random see
27、d for xval / % Split. 指定一个随即种子,当出于评价的目的需要分割数据时,它用来随机化数据。点击More options 按钮可以设置更多的测试选项:2022/7/2270文字结果分析单击start按钮,Classifier output窗口显示的文字结果信息:Run information 运行信息Classifier model (full training set) 使用全部训练数据构造的分类模型Summary 针对训练/检验集的预测效果汇总。Detailed Accuracy By Class 对每个类的预测准确度的详细描述。Confusion Matrix 混淆矩
28、阵,其中矩阵的行是实际的类,矩阵的列是预测得到的类,矩阵元素就是相应测试样本的个数。2022/7/2271文字结果2022/7/2272主要指标Correctly Classified Instances 正确分类率Incorrectly Classified Instances 错误分类率Kappa statistic Kappa 统计数据Mean absolute error 平均绝对误差Root mean squared error 根均方差Relative absolute error 相对绝对误差Root relative squared error 相对平方根误差TP Rate(b
29、ad/good) 正确肯定率FP Rate(bad/good) 错误肯定率Precision(bad/good) 精确率Recall(bad/good) 反馈率F-Measure(bad/good) F测量Time taken to build model 建模花费的时间 2022/7/2273输出图形结果鼠标右键2022/7/2274View in main window(查看主窗口)。在主窗口中查看输出结果。View in separate window(查看不同的窗口)。打开一个独立的新窗口来查看结果。Save result buffer(保存结果的缓冲区)。弹出对话框来保存输出结果的文
30、本文件。Load model(下载模式)。从二进制文件中载入一个预训练模式对象。Save model (保存模式)。将一个模式对象保存到二进制文件中,也就是保存在JAVA 的串行对象格式中。Re-evaluate model on current test set(对当前测试集进行重新评估)。通过已建立的模式,并利用Supplied test set(提供的测试集) 选项下的Set.按钮来测试指定的数据集。2022/7/2275Visualize classifier errors(可视化分类器错误)。弹出一个可视化窗口来显示分类器的结果图。其中,正确分类的实例用叉表示,然而不正确分类的实例则
31、是以小正方形来表示的。Visualize tree(树的可视化)。如果可能的话,则弹出一个图形化的界面来描述分类器模型的结构(这只有一部分分类器才有的)。右键单击空白区域弹出一个菜单,在面板中拖动鼠标并单击,就可以看见每个节点对应的训练实例。Visualize margin curve(边际曲线的可视化)。产生一个散点图来描述预测边际的情况。边际被定义为预测为真实值的概率和预测为真实值之外的其它某类的最高概率之差。例如加速算法通过增加训练数据集的边际来更好地完成测试数据集的任务。2022/7/2276Visualize threshold curve(阈曲线的可视化)。产生一个散点图来描述预测
32、中的权衡问题,其中权衡是通过改变类之间阈值来获取的。例如,缺省阈值为0.5,一个实例预测为positive的概率必须要大于0.5,因为0.5时实例正好预测为positive。而且图表可以用来对精确率/反馈率权衡进行可视化,如ROC 曲线分析(正确的正比率和错误的正比率)和其它的曲线。Visualize cost curve(成本曲线的可视化)。产生一个散点图,来确切描述期望成本,正如Drummond 和Holte 所描述的一样。 2022/7/2277Visualize classifier errors. 可视化分类错误实际类与预测类的散布图。其中正确分类的结果用叉表示,分错的结果用方框表示
33、。2022/7/2278Visualize tree可视化树2022/7/22792022/7/22802022/7/2281可视化边际曲线 (Visualize margin curve)创建一个散点图来显示预测边际值。四个变量Margin: 预测边际值Instance_number: 检验实例的序号Current: 具有当前预测边际值的实例个数Cumulative: 小于或等于预测边际值的实例个数 (与Instance_number一致)2022/7/22822022/7/2283单击8号检验实例,显示该点的边际值为0.5,有7个实例的边际值小于0.5。2022/7/2284可视化阈值曲线
34、(基于类)阈值是将检验实例归为当前类的最小概率,使用点的颜色表示阈值曲线上的每个点通过改变阈值的大小生成可以进行ROC分析X轴选假正率Y轴选真正率2022/7/22852022/7/22862022/7/2287ROC曲线ROC曲线(Receiver Operating Characteeristic Curve)是显示Classification模型真正率和假正率之间折中的一种图形化方法。假设样本可分为正负两类,解读ROC图的一些概念定义:真正(True Positive , TP),被模型预测为正的正样本 假负(False Negative , FN)被模型预测为负的正样本假正(False
35、 Positive , FP)被模型预测为正的负样本 真负(True Negative , TN)被模型预测为负的负样本真正率(True Positive Rate , TPR)或灵敏度(sensitivity) TPR = TP /(TP + FN) 正样本预测结果数 / 正样本实际数假正率(False Positive Rate , FPR) FPR = FP /(FP + TN) 被预测为正的负样本结果数 /负样本实际数 ( TPR=1,FPR=0 ) 是理想模型 一个好的分类模型应该尽可能靠近图形的左上角。2022/7/2288IRIS分类示例 2022/7/2289在weka的Exp
36、lorer中打开Iris.arff文件2022/7/2290在weka的Explorer中打开Iris.arff文件2022/7/22912022/7/2292选择分类(Classify)数据挖掘任务2022/7/2293选择分类算法2022/7/2294选择决策树算法Trees-J482022/7/2295设置相关参数2022/7/22962022/7/22972022/7/2298选择检验方法2022/7/22992022/7/221002022/7/221012022/7/221022022/7/221032022/7/22104执行分类算法,建立决策树模型2022/7/22105查看算
37、法执行的输出信息2022/7/221062022/7/22107查看决策树分类模型2022/7/221082022/7/221092022/7/22110查看分类错误散点图2022/7/221112022/7/22112选择其他的分类算法2022/7/221132022/7/22114选择贝叶斯分类算法bayes-Naive bayes2022/7/22115选择检验方法2022/7/22116执行分类算法,建立贝叶斯模型2022/7/22117进行ROC分析2022/7/221182022/7/221192022/7/22120选择其他的分类算法2022/7/22121选择决策树用户自分类法
38、trees-UserClssifier2022/7/22122选择检验方法2022/7/22123执行算法2022/7/221242022/7/22125数据散点图2022/7/22126但击鼠标,确定分类边界2022/7/22127查看相应的分类树 2022/7/22128预测指定属性值 2022/7/22129选择预测属性2022/7/221302022/7/22131选择算法2022/7/221322022/7/22133执行算法2022/7/22134观察输出信息2022/7/221352022/7/22136查看分类错误散点图2022/7/221372022/7/22138点击实例,
39、察看详细信息2022/7/22139该实例petallength的实际值为5.1,预测值为5.892022/7/22140训练BANK-DATA分类模型示例bank-data数据各属性的含义如下: id: a unique identification number age: age of customer in years (numeric) sex: MALE / FEMALE region:inner_city/rural/suburban/town income: income of customer (numeric) married:is the customer married
40、(YES/NO) children: number of children (numeric) car: does the customer own a car (YES/NO) save_act: does the customer have a saving account (YES/NO) current_act:does the customer have a current account (YES/NO) mortgage: does the customer have a mortgage (YES/NO) pep (目标变量) : did the customer buy a
41、PEP (Personal Equity Plan,个人参股计划) after the last mailing (YES/NO)2022/7/22141浏览bank-data. xls数据2022/7/22142数据准备将数据另存为.csv格式2022/7/221432022/7/22144数据准备在WEKA中打开bank-data. csv2022/7/221452022/7/221462022/7/221472022/7/22148数据准备在WEKA中浏览数据2022/7/221492022/7/22150数据准备将数据另存为.arff格式2022/7/22151在写字板中浏览bank-
42、data.arff文件2022/7/221522022/7/22153数据预处理去除无用属性 通常对于数据挖掘任务来说,ID这样的信息是无用的,我们将之删除。勾选属性“id”,并点击“Remove”。将新的数据集保存为“bank-data.arff”,重新打开。离散化在这个数据集中有3个变量是数值型的,分别是“age”,“income”和“children”。 其中“children”只有4个取值:0,1,2,3。这时我们直接修改ARFF文件,把 attribute children numeric 改为 attribute children 0,1,2,3 就可以了。 在“Explorer”
43、中重新打开“bank-data.arff”,看看选中“children”属性后,显示的“Type” 变成“Nominal”了。2022/7/22154数据预处理“age”和“income”的离散化可借助WEKA中名为“Discretize”的Filter来完成。点“Choose”,出现一棵“Filter树”,逐级找到“weka.filters.unsupervised.attribute.Discretize”,点击。现在“Choose”旁边的文本框应该显示“Discretize -B 10 -M -0.1 -R first-last”。 点击这个文本框会弹出新窗口以修改离散化的参数。 我们不
44、打算对所有的属性离散化,只是针对对第1个和第4个属性(见属性名左边的数字),故把attributeIndices右边改成“1,4”。计划把这两个属性都分成3段,于是把“bins”改成“3”。其它框里不用更改。点“OK”回到“Explorer”,可以看到“age”和“income”已经被离散化成分类型的属性。若想放弃离散化可以点“Undo”。经过上述操作得到的数据集我们保存为bank-data-final.arff。2022/7/22155数据预处理-去除无用属性 2022/7/221562022/7/22157数据预处理children数据离散化2022/7/22158数据预处理childre
45、n数据离散化用写字板打开bank-data.arff文件2022/7/221592022/7/22160在WEKA中重新打开bank-data.arff文件。2022/7/221612022/7/22162观察 children属性。2022/7/22163数据预处理离散化“age”和“income” 2022/7/22164数据预处理数据离散化2022/7/221652022/7/221662022/7/221672022/7/221682022/7/221692022/7/221702022/7/22171在写字板中重新观察bank-data.arff数据2022/7/22172训练分类模
46、型2022/7/221732022/7/221742022/7/22175评估分类模型2022/7/22176选择不同的分类算法或参数2022/7/221772022/7/22178选择模型2022/7/221792022/7/221802022/7/221812022/7/221822022/7/221836、 聚类 cluster聚类分析是把对象分配给各个簇,使同簇中的对象相似,而不同簇间的对象相异。WEKA在“Explorer”界面的“Cluster”提供聚类分析工具选择聚类算法2022/7/22184WEKA中的聚类算法2022/7/22185主要算法包括:SimpleKMeans 支
47、持分类属性的K均值算法DBScan 支持分类属性的基于密度的算法EM 基于混合模型的聚类算法FathestFirst K中心点算法OPTICS 基于密度的另一个算法Cobweb 概念聚类算法sIB 基于信息论的聚类算法,不支持分类属性XMeans 能自动确定簇个数的扩展K均值算法,不支持分类属性2022/7/22186参数设置SimpleKMeans重要参数N 簇个数DBScan重要参数E Eps半径M MinPts, Eps半径内点个数2022/7/22187SimpleKMeans重要参数2022/7/22188displayStdDevs:是否显示数值属性标准差和分类属性个数distan
48、ceFunction:选择比较实例的距离函数(默认: weka.core.EuclideanDistance)dontReplaceMissingValues:是否不使用均值/众数(mean/mode)替换缺失值。maxIterations:最大迭代次数numClusters:聚类的簇数preserveInstancesOrder:是否预先排列实例的顺序Seed:设定的随机种子值2022/7/22189聚类模式Cluster Mode2022/7/22190使用训练集 (Use training set) 报告训练对象的聚类结果和分组结果使用附加的检验集 (Supplied test set)
49、 报告训练对象的聚类结果和附加的检验对象的分组结果百分比划分 (Percentage split) 报告全部对象的聚类结果、训练对象的聚类结果,以及检验对象的分组结果监督评估 (Classes to clusters evaluation) 报告训练对象的聚类结果和分组结果、类/簇混淆矩阵和错误分组信息2022/7/22191执行聚类算法点击“Start”按钮,执行聚类算法2022/7/22192观察聚类结果观察右边“Clusterer output”给出的聚类结果。也可以在左下角“Result list”中这次产生的结果上点右键,“View in separate window”在新窗口中浏
50、览结果。2022/7/22193= Run information = %运行信息Scheme:weka. clusterers. SimpleKMeans -N 3 -A “weka. core. EuclideanDistance -R first-last” -I 500 -S 10% 算法的参数设置:-N 3 -A “weka. core. EuclideanDistance -R first-last” -I 500 -S 10;% 各参数依次表示:% -N 3 聚类簇数为3;% -A “weka. core. EuclideanDistance 中心距离为欧氏距离;% - I 50
51、0 -最多迭代次数为500;% -S 10 -随机种子值为10。Relation: iris %数据集名称Instances: 150 %数据集中的实例个数2022/7/22194Attributes: 5 %数据集中的属性个数及属性名称 sepallength sepalwidth petallength petalwidthIgnored: %忽略的属性 classTest mode:Classes to clusters evaluation on training data %测试模式= Model and evaluation on taining set = %基于训练数据集的模型
52、与评价kMeans %使用kMeans算法=Number of iterations: 6 kMeans %迭代次数Winthin cluster sum of squared errors: 6.998114004826762 % SSE(误差的平方和)Missing values globally replaced with mean/mode %用均值/众数替代缺失值2022/7/22195Cluster centroids: %各个簇的质心 Cluster#Attribute Full Data 0 1 2 (150) (61) (60) (39)=sepallength 5.8433
53、 5.8885 5.006 6.8462sepalwidth 3.064 2.7377 3,418 3.0821petallength 3.7587 4,3967 1,464 5.7026petalwidth 1.1987 1.418 0.244 2.0795Time taken to build model (full training data) : 0.03 seconds %建模用的时间= Modal and evaluation on training set =Clustered Instances %各个簇中的实例个数及百分比。0 61 (41%)1 50 (33%)2 39 (
54、26%)2022/7/22196注意:采用有监督聚类(即已知建模数据集的类标号), 才会出现以下执行信息。Class attribute: class %类标号属性名称Classes to Clusters: %类簇混淆矩阵 0 1 2 - assigned to cluster 0 50 0 | Iris-setosa 47 0 3 | Iris-versicolor 14 0 36 | Iris-virginisaCluster 0 - Iris-versicolorCluster 1 - Iris-setosaCluster 2 另存为,在弹出的对话框中,文件名输入“bank-data”
55、,保存类型选择“CSV(逗号分隔)”,保存,我们便可得到“bank-data.csv”文件;然后,打开Weka的Exporler,点击Open file按钮,打开刚才得到的“bank-data.csv”文件;点击“save”按钮,在弹出的对话框中,文件名输入“bank-data.arff”,文件类型选择“Arff data files(*.arff)”,这样得到的数据文件为“bank-data.arff”。 2022/7/22216K均值算法只能处理数值型的属性,遇到分类型的属性时要把它变为若干个取值0和1的属性。WEKA将自动实施这个分类型到数值型的变换,而且WEKA会自动对数值型的数据作标
56、准化。因此,对于ARFF格式的原始数据“bank-data.arff”,我们所做的预处理只是删去属性“id”,修改属性“children”为分类型。 修改过程如下:打开“bank-data.arff”,将attribute children numeric改成如下: 2022/7/22217使用WEKA聚类用“Explorer”打开包含600条实例“bank-data.arff”,并切换到“Cluster”。点击“Choose”按钮,选择“SimpleKMeans” 。点击旁边的文本框,修改参数“numClusters”为6,说明我们希望把这600条实例聚成6类,即K=6。下面的“seed”参
57、数是要设置一个随机种子,依此产生一个随机数,用来得到K均值算法中第一次给出的K个簇中心的位置。我们暂时让它就为10。选中“Cluster Mode”的“Use training set”点击“Start”按钮观察右边“Clusterer output”给出的聚类结果。 2022/7/222182022/7/222192022/7/222202022/7/22221结果分析 当前Within cluster sum of squared errors: 1604.7416693522332,调整“seed”参数,观察Within cluster sum of squared errors(SSE
58、)变化。采纳SSE最小的一个结果。“Cluster centroids:”之后列出了各个簇中心的位置。对于数值型的属性,簇中心就是它的均值(Mean),如cluster0的数值型变量age的均值37.1299;分类型的就是它的众数(Mode),如cluster0的分类型变量children的众数为3,也就是说这个属性上取值为众数值3(有3个孩子)的实例最多。为了观察可视化的聚类结果,在左下方“Result list”列出的结果上右击,点“Visualize cluster assignments”。弹出的窗口给出了各实例的散点图。最上方的两个框是选择横坐标和纵坐标,第二行的”color”是散点
59、图着色的依据,默认是根据不同的簇“Cluster”给实例标上不同的颜色。例如,横坐标选择Instance_number,纵坐标选择income。2022/7/222222022/7/22223点击“Save”,把聚类结果保存成bank_Cluster.arff文件。可以在写字板中打开观察聚类结果文件。在这个新的ARFF文件中,“instance_number”属性表示某实例的编号,“Cluster”属性表示聚类算法给出的该实例所在的簇。2022/7/222247、 关联规则associationsWEKA关联规则学习能够发现属性组之间的依赖关系:例如,milk, butter bread, e
60、ggs (置信度 0.9 and 支持数 2000)对于关联规则L-R支持度(support) 同时观察到前件和后件的概率 support = Pr(L,R)置信度(confidence) 出现前件时同时出现后件的概率 confidence = Pr(L,R)/Pr(L)2022/7/22225关联规则挖掘的主要算法WEKA数据挖掘平台上的关联规则挖掘的主要算法有:Apriori-能够得出满足最小支持度和最小支持度的所有关联规则。PredictiveApriori-将置信度和支持度合并为预测精度而成为单一度测量法,找出经过预测精度排序的关联规则。Terius-根据确认度来寻找规则,它与Apri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度暖气片行业展会参展与合作合同范本
- 2025年度社区生鲜肉类配送服务合同协议
- 2025年度车辆抵押贷款合同备案合同
- 2025年度自建房房屋租赁合同模板(含租赁合同执行)
- 二零二五年度企业工伤后续治疗保障合同范本
- 二零二五淘宝商家入驻平台入驻资格审查合同
- 2025年度达人品牌代言合作协议范本
- 2025年度联合体投标协议书-文化旅游产业联合体投标协议
- 二零二五年度全民健身中心兼职教练员服务合同
- 2025年度银行转账跨境支付安全协议
- 工程施工联系单范文全部
- 脊髓压迫症A吴绍勇
- FMEA第五版表格(实例)
- 【讲座】情境性试题:基于《中国高考评价体系》的高考语文命题研究
- 环保考核试卷18285(含答案)
- SMED培训材料-快速换模
- HG20592-2009法兰(PL)法兰盖(BL)精加工尺寸
- 叉车蓄电池容量与铁箱规格表
- 风管、水管支架估算表
- 浅谈小学低年级数学计算课堂教学的有效策略
- scratch趣味编程社团活动方案活动计划
评论
0/150
提交评论