WEKA中文详细教程.ppt

上传人:xiao****1972 文档编号:6320432 上传时间:2020-02-22 格式:PPT 页数:300 大小:14.29MB
返回 下载 相关 举报
WEKA中文详细教程.ppt_第1页
第1页 / 共300页
WEKA中文详细教程.ppt_第2页
第2页 / 共300页
WEKA中文详细教程.ppt_第3页
第3页 / 共300页
点击查看更多>>
资源描述
2020 2 22 1 数据挖掘工具 WEKA教程 WEKA简介 2数据集 11数据准备 24数据预处理 36分类 63聚类 184关联规则 225选择属性 244数据可视化 253知识流界面 275 2020 2 22 2 1 WEKA简介 WEKA的全名是怀卡托智能分析环境 WaikatoEnvironmentforKnowledgeAnalysis weka也是新西兰的一种鸟名是新西兰怀卡托大学WEKA小组用Java开发的机器学习 数据挖掘开源软件 其源代码获取http www cs waikato ac nz ml weka 2020 2 22 3 WEKA软件 主要特点它是集数据预处理 学习算法 分类 回归 聚类 关联分析 和评估方法等为一体的综合性数据挖掘工具 具有交互式可视化界面 提供算法学习比较环境通过其接口 可实现自己的数据挖掘算法 WEKA的界面 2020 2 22 4 探索环境 命令行环境 知识流环境 算法试验环境 2020 2 22 5 Explorer环境 2020 2 22 6 把 Explorer 界面分成8个区域 区域1的几个选项卡是用来切换不同的挖掘任务面板 Preprocess 数据预处理 选择和修改要处理的数据 Classify 分类 训练和测试分类或回归模型 Cluster 聚类 从数据中聚类 Associate 关联分析 从数据中学习关联规则 SelectAttributes 选择属性 选择数据中最相关的属性 Visualize 可视化 查看数据的二维散布图 区域2是一些常用按钮 包括打开 编辑 保存数据及数据转换等功能 例如 我们可以把文件 bank data csv 另存为 bank data arff 区域3中可以选择 Choose 某个筛选器 Filter 以实现筛选数据或者对数据进行某种变换 数据预处理主要就利用它来实现 2020 2 22 7 区域4展示了数据集的关系名 属性数和实例数等基本情况 区域5中列出了数据集的所有属性 勾选一些属性并 Remove 就可以删除它们 删除后还可以利用区域2的 Undo 按钮找回 区域5上方的一排按钮是用来实现快速勾选的 区域6中显示在区域5中选中的当前某个属性的摘要 摘要包括属性名 Name 属性类型 Type 缺失值 Missing 数及比例 不同值 Distinct 数 唯一值 Unique 数及比例对于数值属性和标称属性 摘要的方式是不一样的 图中显示的是对数值属性 income 的摘要 数值属性显示最小值 Minimum 最大值 Maximum 均值 Mean 和标准差 StdDev 标称属性显示每个不同值的计数 2020 2 22 8 区域7是区域5中选中属性的直方图 若数据集的最后一个属性 这是分类或回归任务的默认目标变量 是类标变量 例如 pep 直方图中的每个长方形就会按照该变量的比例分成不同颜色的段 要想换个分段的依据 在区域7上方的下拉框中选个不同的分类属性就可以了 下拉框里选上 NoClass 或者一个数值属性会变成黑白的直方图 2020 2 22 9 区域8窗口的底部区域 包括状态栏 log按钮和Weka鸟 状态栏 Status 显示一些信息让你知道正在做什么 例如 如果Explorer正忙于装载一个文件 状态栏就会有通知 在状态栏中的任意位置右击鼠标将会出现一个小菜单 这个菜单给了你两个选项 MemoryInformation 显示WEKA可用的内存量 Rungarbagecollector 强制运行Java垃圾回收器 搜索不再需要的内存空间并将之释放 从而可为新任务分配更多的内存 Log按钮可以查看以weka操作日志 右边的weka鸟在动的话 说明WEKA正在执行挖掘任务 2020 2 22 10 KnowledgeFlow环境 2020 2 22 11 2 WEKA数据集 WEKA所处理的数据集是一个 arff文件的二维表 2020 2 22 12 表格里的一个横行称作一个实例 Instance 相当于统计学中的一个样本 或者数据库中的一条记录 竖行称作一个属性 Attribute 相当于统计学中的一个变量 或者数据库中的一个字段 这样一个表格 或者叫数据集 在WEKA看来 呈现了属性之间的一种关系 Relation 上图中一共有14个实例 5个属性 关系名称为 weather WEKA存储数据的格式是ARFF Attribute RelationFileFormat 文件 这是一种ASCII文本文件 上图所示的二维表格存储在如下的ARFF文件中 这也就是WEKA自带的 weather arff 文件 在WEKA安装目录的 data 子目录下可以找到 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 no 2020 2 22 14 WEKA数据文件 WEKA存储数据的格式是ARFF Attribute RelationFileFormat 文件这是一种ASCII文本文件文件的扩展名为 arff可以用写字板打开 编辑ARFF文件文件中以 开始的行是注释 WEKA将忽略这些行 除去注释后 整个ARFF文件可以分为两个部分 第一部分给出了头信息 Headinformation 包括了对关系的声明和对属性的声明 第二部分给出了数据信息 Datainformation 即数据集中给出的数据 从 data 标记开始 后面的就是数据信息了 2020 2 22 16 关系声明 关系名称在ARFF文件的第一个有效行来定义 格式为 relation是一个字符串 如果这个字符串包含空格 它必须加上引号 指英文标点的单引号或双引号 2020 2 22 17 属性声明 属性声明用一列以 attribute 开头的语句表示 数据集中的每一个属性都有对应的 attribute 语句 来定义它的属性名称和数据类型 datatype attribute其中必须以字母开头的字符串 和关系名称一样 如果这个字符串包含空格 它必须加上引号 属性声明语句的顺序很重要 它表明了该项属性在数据部分的位置 例如 humidity 是第三个被声明的属性 这说明数据部分那些被逗号分开的列中 第2列 从第0列开始 数据85908696 是相应的 humidity 值 其次 最后一个声明的属性被称作class属性 在分类或回归任务中 它是默认的目标变量 2020 2 22 18 数据类型 WEKA支持四种数据类型numeric数值型标称 nominal 型string字符串型date 日期和时间型还可以使用两个类型 integer 和 real 但是WEKA把它们都当作 numeric 看待 注意 integer real numeric date string 这些关键字是区分大小写的 而 relation attribute 和 data 则不区分 2020 2 22 19 数值型属性数值型属性可以是整数或者实数 但WEKA把它们都当作实数看待 例如 attributetemperaturereal字符串属性字符串属性可以包含任意的文本 例如 attributeLCCstring 2020 2 22 20 标称属性标称属性由列出一系列可能的类别名称并放在花括号中 数据集中该属性的值只能是其中一种类别 例如属性声明 attributeoutlook sunny overcast rainy 说明 outlook 属性有三种类别 sunny overcast 和 rainy 而数据集中每个实例对应的 outlook 值必是这三者之一 如果类别名称带有空格 仍需要将之放入引号中 2020 2 22 21 日期和时间属性日期和时间属性统一用 date 类型表示 它的格式是 attributedate 其中是一个字符串 来规定该怎样解析和显示日期或时间的格式 默认的字符串是ISO 8601所给的日期时间组合格式 yyyy MM ddHH mm ss 数据信息部分表达日期的字符串必须符合声明中规定的格式要求 例如 ATTRIBUTEtimestampDATE yyyy MM ddHH mm ss DATA 2011 05 0312 59 55 2020 2 22 22 数据信息 数据信息中 data 标记独占一行 剩下的是各个实例的数据 每个实例占一行 实例的各属性值用逗号 隔开 如果某个属性的值是缺失值 missingvalue 用问号 表示 且这个问号不能省略 例如 datasunny 85 85 FALSE no 78 90 yes 2020 2 22 23 稀疏数据 有的时候数据集中含有大量的0值 这个时候用稀疏格式的数据存储更加省空间 稀疏格式是针对数据信息中某个对象的表示而言 不需要修改ARFF文件的其它部分 例如数据 data0 X 0 Y classA 0 0 W 0 classB 用稀疏格式表达的话就是 data 1X 3Y 4 classA 2W 4 classB 注意 ARFF数据集最左端的属性列为第0列 因此 1X表示X为第1列属性值 2020 2 22 24 3 数据准备 数据获取直接使用ARFF文件数据 从CSV C4 5 binary等多种格式文件中导入 通过JDBC从SQL数据库中读取数据 从URL UniformResourceLocator 获取网络资源的数据 数据格式转换ARFF格式是WEKA支持得最好的文件格式 使用WEKA作数据挖掘 面临的第一个问题往往是数据不是ARFF格式的 WEKA还提供了对CSV文件的支持 而这种格式是被很多其他软件 比如Excel 所支持 可以利用WEKA将CSV文件格式转化成ARFF文件格式 2020 2 22 25 数据资源 WEKA自带的数据集C ProgramFiles Weka 3 6 data网络数据资源http archive ics uci edu ml datasets html 2020 2 22 26 XLS CSV ARFF Excel的XLS文件可以让多个二维表格放到不同的工作表 Sheet 中 只能把每个工作表存成不同的CSV文件 打开一个XLS文件并切换到需要转换的工作表 另存为CSV类型 点 确定 是 忽略提示即可完成操作 在WEKA中打开一个CSV类型文件 再另存为ARFF类型文件即可 2020 2 22 27 打开Excel的Iris xls文件 2020 2 22 28 2020 2 22 29 将iris xls另存为iris csv文件 2020 2 22 30 2020 2 22 31 2020 2 22 32 在weka的Explorer中打开Iris csv文件 2020 2 22 33 2020 2 22 34 将iris csv另存为iris arff文件 2020 2 22 35 2020 2 22 36 4 数据预处理preprocess 在WEKA中数据预处理工具称作筛选器 filters 可以定义筛选器来以各种方式对数据进行变换 Filter一栏用于对各种筛选器进行必要的设置 Choose按钮 点击这个按钮就可选择WEKA中的某个筛选器 选定一个筛选器后 它的名字和选项会显示在Choose按钮旁边的文本框中 2020 2 22 37 载入数据 Explorer的预处理 preprocess 页区域2的前4个按钮用来把数据载入WEKA Openfile 打开一个对话框 允许你浏览本地文件系统上的数据文件 OpenURL 请求一个存有数据的URL地址 OpenDB 从数据库中读取数据 Generate 从一些数据生成器 DataGenerators 中生成人造数据 2020 2 22 38 去除无用属性 通常对于数据挖掘任务来说 像ID这样的信息是无用的 可以将之删除 在区域5勾选属性 id 并点击 Remove 将新的数据集保存 并重新打开 2020 2 22 39 数据离散化 有些算法 如关联分析 只能处理标称型属性 这时候就需要对数值型的属性进行离散化 对取值有限的数值型属性可通过修改 arff文件中该属性数据类型实现离散化 例如 在某数据集中的 children 属性只有4个数值型取值 0 1 2 3 我们直接修改ARFF文件 把 attributechildrennumeric改为 attributechildren 0 1 2 3 就可以了 在 Explorer 中重新打开 bank data arff 看看选中 children 属性后 区域6那里显示的 Type 变成 Nominal 了 2020 2 22 40 对取值较多的数值型属性 离散化可借助WEKA中名为 Discretize 的Filter来完成 在区域2中点 Choose 出现一棵 Filter树 逐级找到 weka filters unsupervised attribute Discretize 点击 现在 Choose 旁边的文本框应该显示 Discretize B10 M 0 1 Rfirst last 点击这个文本框会弹出新窗口以修改离散化的参数 2020 2 22 41 在weka的Explorer中打开Iris arff文件 2020 2 22 42 2020 2 22 43 2020 2 22 44 查看Iris数据集 2020 2 22 45 2020 2 22 46 查看Iris数据属性分布图 选择属性 2020 2 22 47 2020 2 22 48 2020 2 22 49 通过观察发现petallength最能区分各类 2020 2 22 50 将属性petallength离散化 2020 2 22 51 2020 2 22 52 2020 2 22 53 2020 2 22 54 2020 2 22 55 2020 2 22 56 离散化成10段数据 等频离散化 离散化成10段数据 2020 2 22 57 2020 2 22 58 2020 2 22 59 2020 2 22 60 2020 2 22 61 查看离散化后的Iris数据集 2020 2 22 62 2020 2 22 63 5 分类Classify WEKA把分类 Classification 和回归 Regression 都放在 Classify 选项卡中 在这两个数据挖掘任务中 都有一个目标属性 类别属性 输出变量 我们希望根据一个WEKA实例的一组特征属性 输入变量 对目标属性进行分类预测 为了实现这一目的 我们需要有一个训练数据集 这个数据集中每个实例的输入和输出都是已知的 观察训练集中的实例 可以建立起预测的分类 回归模型 有了这个模型 就可以对新的未知实例进行分类预测 衡量模型的好坏主要在于预测的准确程度 2020 2 22 64 WEKA中的典型分类算法 Bayes 贝叶斯分类器BayesNet 贝叶斯信念网络Na veBayes 朴素贝叶斯网络Functions 人工神经网络和支持向量机MultilayerPerceptron 多层前馈人工神经网络SMO 支持向量机 采用顺序最优化学习方法 Lazy 基于实例的分类器IB1 1 最近邻分类器IBk k 最近邻分类器 2020 2 22 65 选择分类算法 Meta 组合方法AdaBoostM1 AdaBoostM1方法Bagging 袋装方法Rules 基于规则的分类器JRip 直接方法 Ripper算法Part 间接方法 从J48产生的决策树抽取规则Trees 决策树分类器Id3 ID3决策树学习算法 不支持连续属性 J48 C4 5决策树学习算法 第8版本 REPTree 使用降低错误剪枝的决策树学习算法RandomTree 基于决策树的组合方法 2020 2 22 66 选择分类算法 2020 2 22 67 2020 2 22 68 选择模型评估方法 四种方法Usingtrainingset使用训练集评估Suppliedtestset使用测试集评估Cross validation交叉验证设置折数FoldsPercentagesplit保持方法 使用一定比例的训练实例作评估设置训练实例的百分比 2020 2 22 69 选择模型评估方法 2020 2 22 70 Outputmodel 输出基于整个训练集的分类模型 从而模型可以被查看 可视化等 该选项默认选中 Outputper classstats 输出每个class的准确度 反馈率 precision recall 和正确 错误 true false 的统计量 该选项默认选中 Outputevaluationmeasures 输出熵估计度量 该选项默认没有选中 Outputconfusionmatrix 输出分类器预测结果的混淆矩阵 该选项默认选中 Storepredictionsforvisualization 记录分类器的预测结果使得它们能被可视化表示 Outputpredictions 输出测试数据的预测结果 注意在交叉验证时 实例的编号不代表它在数据集中的位置 Cost sensitiveevaluation 误差将根据一个价值矩阵来估计 Set 按钮用来指定价值矩阵 Randomseedforxval Split 指定一个随即种子 当出于评价的目的需要分割数据时 它用来随机化数据 点击Moreoptions按钮可以设置更多的测试选项 2020 2 22 71 文字结果分析 单击start按钮 Classifieroutput窗口显示的文字结果信息 Runinformation运行信息Classifiermodel fulltrainingset 使用全部训练数据构造的分类模型Summary针对训练 检验集的预测效果汇总 DetailedAccuracyByClass对每个类的预测准确度的详细描述 ConfusionMatrix混淆矩阵 其中矩阵的行是实际的类 矩阵的列是预测得到的类 矩阵元素就是相应测试样本的个数 2020 2 22 72 文字结果 2020 2 22 73 主要指标 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建模花费的时间 2020 2 22 74 输出图形结果 鼠标右键 2020 2 22 75 Viewinmainwindow 查看主窗口 在主窗口中查看输出结果 Viewinseparatewindow 查看不同的窗口 打开一个独立的新窗口来查看结果 Saveresultbuffer 保存结果的缓冲区 弹出对话框来保存输出结果的文本文件 Loadmodel 下载模式 从二进制文件中载入一个预训练模式对象 Savemodel 保存模式 将一个模式对象保存到二进制文件中 也就是保存在JAVA的串行对象格式中 Re evaluatemodeloncurrenttestset 对当前测试集进行重新评估 通过已建立的模式 并利用Suppliedtestset 提供的测试集 选项下的Set 按钮来测试指定的数据集 2020 2 22 76 Visualizeclassifiererrors 可视化分类器错误 弹出一个可视化窗口来显示分类器的结果图 其中 正确分类的实例用叉表示 然而不正确分类的实例则是以小正方形来表示的 Visualizetree 树的可视化 如果可能的话 则弹出一个图形化的界面来描述分类器模型的结构 这只有一部分分类器才有的 右键单击空白区域弹出一个菜单 在面板中拖动鼠标并单击 就可以看见每个节点对应的训练实例 Visualizemargincurve 边际曲线的可视化 产生一个散点图来描述预测边际的情况 边际被定义为预测为真实值的概率和预测为真实值之外的其它某类的最高概率之差 例如加速算法通过增加训练数据集的边际来更好地完成测试数据集的任务 2020 2 22 77 Visualizethresholdcurve 阈曲线的可视化 产生一个散点图来描述预测中的权衡问题 其中权衡是通过改变类之间阈值来获取的 例如 缺省阈值为0 5 一个实例预测为positive的概率必须要大于0 5 因为0 5时实例正好预测为positive 而且图表可以用来对精确率 反馈率权衡进行可视化 如ROC曲线分析 正确的正比率和错误的正比率 和其它的曲线 Visualizecostcurve 成本曲线的可视化 产生一个散点图 来确切描述期望成本 正如Drummond和Holte所描述的一样 2020 2 22 78 Visualizeclassifiererrors 可视化分类错误实际类与预测类的散布图 其中正确分类的结果用叉表示 分错的结果用方框表示 2020 2 22 79 Visualizetree可视化树 2020 2 22 80 2020 2 22 81 2020 2 22 82 可视化边际曲线 Visualizemargincurve 创建一个散点图来显示预测边际值 四个变量Margin 预测边际值Instance number 检验实例的序号Current 具有当前预测边际值的实例个数Cumulative 小于或等于预测边际值的实例个数 与Instance number一致 2020 2 22 83 2020 2 22 84 单击8号检验实例 显示该点的边际值为0 5 有7个实例的边际值小于0 5 2020 2 22 85 可视化阈值曲线 基于类 阈值是将检验实例归为当前类的最小概率 使用点的颜色表示阈值曲线上的每个点通过改变阈值的大小生成可以进行ROC分析X轴选假正率Y轴选真正率 2020 2 22 86 2020 2 22 87 2020 2 22 88 ROC曲线 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 是理想模型一个好的分类模型应该尽可能靠近图形的左上角 2020 2 22 89 IRIS分类示例 2020 2 22 90 在weka的Explorer中打开Iris arff文件 2020 2 22 91 在weka的Explorer中打开Iris arff文件 2020 2 22 92 2020 2 22 93 选择分类 Classify 数据挖掘任务 2020 2 22 94 选择分类算法 2020 2 22 95 选择决策树算法Trees J48 2020 2 22 96 设置相关参数 2020 2 22 97 2020 2 22 98 2020 2 22 99 选择检验方法 2020 2 22 100 2020 2 22 101 2020 2 22 102 2020 2 22 103 2020 2 22 104 2020 2 22 105 执行分类算法 建立决策树模型 2020 2 22 106 查看算法执行的输出信息 2020 2 22 107 2020 2 22 108 查看决策树分类模型 2020 2 22 109 2020 2 22 110 2020 2 22 111 查看分类错误散点图 2020 2 22 112 2020 2 22 113 选择其他的分类算法 2020 2 22 114 2020 2 22 115 选择贝叶斯分类算法bayes Naivebayes 2020 2 22 116 选择检验方法 2020 2 22 117 执行分类算法 建立贝叶斯模型 2020 2 22 118 进行ROC分析 2020 2 22 119 2020 2 22 120 2020 2 22 121 选择其他的分类算法 2020 2 22 122 选择决策树用户自分类法trees UserClssifier 2020 2 22 123 选择检验方法 2020 2 22 124 执行算法 2020 2 22 125 2020 2 22 126 数据散点图 2020 2 22 127 但击鼠标 确定分类边界 2020 2 22 128 查看相应的分类树 2020 2 22 129 预测指定属性值 2020 2 22 130 选择预测属性 2020 2 22 131 2020 2 22 132 选择算法 2020 2 22 133 2020 2 22 134 执行算法 2020 2 22 135 观察输出信息 2020 2 22 136 2020 2 22 137 查看分类错误散点图 2020 2 22 138 2020 2 22 139 点击实例 察看详细信息 2020 2 22 140 该实例petallength的实际值为5 1 预测值为5 89 2020 2 22 141 训练BANK DATA分类模型示例 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 2020 2 22 142 浏览bank data xls数据 2020 2 22 143 数据准备 将数据另存为 csv格式 2020 2 22 144 2020 2 22 145 数据准备 在WEKA中打开bank data csv 2020 2 22 146 2020 2 22 147 2020 2 22 148 2020 2 22 149 数据准备 在WEKA中浏览数据 2020 2 22 150 2020 2 22 151 数据准备 将数据另存为 arff格式 2020 2 22 152 在写字板中浏览bank data arff文件 2020 2 22 153 2020 2 22 154 数据预处理 去除无用属性通常对于数据挖掘任务来说 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 了 2020 2 22 155 数据预处理 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 2020 2 22 156 数据预处理 去除无用属性 2020 2 22 157 2020 2 22 158 数据预处理 children数据离散化 2020 2 22 159 数据预处理 children数据离散化 用写字板打开bank data arff文件 2020 2 22 160 2020 2 22 161 在WEKA中重新打开bank data arff文件 2020 2 22 162 2020 2 22 163 观察children属性 2020 2 22 164 数据预处理 离散化 age 和 income 2020 2 22 165 数据预处理 数据离散化 2020 2 22 166 2020 2 22 167 2020 2 22 168 2020 2 22 169 2020 2 22 170 2020 2 22 171 2020 2 22 172 在写字板中重新观察bank data arff数据 2020 2 22 173 训练分类模型 2020 2 22 174 2020 2 22 175 2020 2 22 176 评估分类模型 2020 2 22 177 选择不同的分类算法或参数 2020 2 22 178 2020 2 22 179 选择模型 2020 2 22 180 2020 2 22 181 2020 2 22 182 2020 2 22 183 2020 2 22 184 6 聚类cluster 聚类分析是把对象分配给各个簇 使同簇中的对象相似 而不同簇间的对象相异 WEKA在 Explorer 界面的 Cluster 提供聚类分析工具 选择聚类算法 2020 2 22 185 WEKA中的聚类算法 2020 2 22 186 主要算法包括 SimpleKMeans 支持分类属性的K均值算法DBScan 支持分类属性的基于密度的算法EM 基于混合模型的聚类算法FathestFirst K中心点算法OPTICS 基于密度的另一个算法Cobweb 概念聚类算法sIB 基于信息论的聚类算法 不支持分类属性XMeans 能自动确定簇个数的扩展K均值算法 不支持分类属性 2020 2 22 187 参数设置 SimpleKMeans重要参数N 簇个数DBScan重要参数E Eps半径M MinPts Eps半径内点个数 2020 2 22 188 SimpleKMeans重要参数 2020 2 22 189 displayStdDevs 是否显示数值属性标准差和分类属性个数distanceFunction 选择比较实例的距离函数 默认 weka core EuclideanDistance dontReplaceMissingValues 是否不使用均值 众数 mean mode 替换缺失值 maxIterations 最大迭代次数numClusters 聚类的簇数preserveInstancesOrder 是否预先排列实例的顺序Seed 设定的随机种子值 2020 2 22 190 聚类模式ClusterMode 2020 2 22 191 使用训练集 Usetrainingset 报告训练对象的聚类结果和分组结果使用附加的检验集 Suppliedtestset 报告训练对象的聚类结果和附加的检验对象的分组结果百分比划分 Percentagesplit 报告全部对象的聚类结果 训练对象的聚类结果 以及检验对象的分组结果监督评估 Classestoclustersevaluation 报告训练对象的聚类结果和分组结果 类 簇混淆矩阵和错误分组信息 2020 2 22 192 执行聚类算法 点击 Start 按钮 执行聚类算法 2020 2 22 193 观察聚类结果 观察右边 Clustereroutput 给出的聚类结果 也可以在左下角 Resultlist 中这次产生的结果上点右键 Viewinseparatewindow 在新窗口中浏览结果 2020 2 22 194 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 数据集中的实例个数 2020 2 22 195 Attributes 5 数据集中的属性个数及属性名称sepallengthsepalwidthpetallengthpetalwidthIgnored 忽略的属性classTestmode Classestoclustersevaluationontrainingdata 测试模式 Modelandevaluationontainingset 基于训练数据集的模型与评价kMeans 使用kMeans算法 Numberofiterations 6kMeans 迭代次数Winthinclustersumofsquarederrors 6 998114004826762 SSE 误差的平方和 Missingvaluesgloballyreplacedwithmean mode 用均值 众数替代缺失值 2020 2 22 196 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 2020 2 22 197 注意 采用有监督聚类 即已知建模数据集的类标号 才会出现以下执行信息 Classattribute class 类标号属性名称ClassestoClusters 类簇混淆矩阵012 assignedtocluster0500 Iris setosa4703 Iris versicolor14036 Iris virginisaCluster0 Iris versicolorCluster1 Iris setosaCluster2 Iris virginicaIncorrectlyclusteredinstances 17 011 3333 错分实例个数及百分比 2020 2 22 198 文字分析SimpleKMeans非监督模式 运行信息 KMeans结果 迭代次数 SSE 簇中心 检验对象的分组信息监督模式 运行信息 KMeans结果 迭代次数 SSE 簇中心 类 簇混淆矩阵 错误分组的对象个数和比例簇中心 对于数值属性为均值 对于分类属性为众数DBScan非监督模式 运行信息 DBScan结果 迭代次数 各个训练对象的分组信息 检验对象的分组信息监督模式 运行信息 DBScan结果 迭代次数 各个训练对象的分组信息 类 簇混淆矩阵 错误分组的对象个数和比例图形分析 必须将storeclustersforvisualization勾上 可视化簇指派 Visualizeclusterassignments 2D散布图 能够可视化类 簇混淆矩阵 2020 2 22 199 SimpleKMeans聚类结果分析 重要的输出信息 Withinclustersumofsquarederrors 评价聚类好坏的标准 SSE 即误差的平方和 SSE值越小说明聚类结果越好 Clustercentroids 之后列出了各个簇中心的位置 对于数值型的属性 簇中心就是它的均值 Mean 分类型的就是它的众数 Mode ClusteredInstances 是各个簇中实例的数目及百分比 2020 2 22 200 观察可视化的聚类结果 在左下方 Resultlist 列出的结果上右击 点 Visualizeclusterassignments 弹出的窗口给出了各实例的散点图 最上方的两个框是选择横坐标和纵坐标 第二行的 color 是散点图着色的依据 默认是根据不同的簇 Cluster 给实例标上不同的颜色 2020 2 22 201 示例 对IRIS数据集作聚类分析 2020 2 22 202 采用无监督聚类 删除原有的类标号 2020 2 22 203 选择聚类数据挖掘任务 2020 2 22 204 选择聚类算法 2020 2 22 205 选中SimpleKMeans算法 2020 2 22 206 设置参数 2020 2 22 207 聚类簇数numCluster 3 2020 2 22 208 执行聚类算法 2020 2 22 209 观察聚类结果 2020 2 22 210 2020 2 22 211 可视化聚类结果 2020 2 22 212 保存聚类结果 2020 2 22 213 2020 2 22 214 在写字板中观察实例的簇 2020 2 22 215 聚类实验 银行客户分类 本次实验利用Weka中提供的simpleKmeans K 均值 算法对 bank data 数据进行聚类分析 其目的是发现相似客户群 以满足银行的客户细分需求 为银行针对不同客户群体的营销策略提供支持 2020 2 22 216 数据的准备及预处理 原始数据 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 2020 2 22 217 K均值算法只能处理数值型的属性 遇到分类型的属性时要把它变为若干个取值0和1的属性 WEKA将自动实施这个分类型到数值型的变换 而且WEKA会自动对数值型的数据作标准化 因此 对于ARFF格式的原始数据 bank data arff 我们所做的预处理只是删去属性 id 修改属性 children 为分类型 修改过程如下 打开 bank data arff 将 attributechildrennumeric改成如下 2020 2 22 218 使用WEKA聚类 用 Explorer 打开包含600条实例 bank data arff 并切换到 Cluster 点击 Choose 按钮 选择 SimpleKMeans 点击旁边的文本框 修改参数 numClusters 为6 说明我们希望把这600条实例聚成6类 即K 6 下面的 seed 参数是要设置一个随机种子 依此产生一个随机数 用来得到K均值算法中第一次给出的K个簇中心的位置 我们暂时让它就为10 选中 ClusterMode 的 Usetrainingset 点击 Start 按钮观察右边 Clustereroutput 给出的聚类结果 2020 2 22 219 2020 2 22 220 2020 2 22 221 2020 2 22 222 结果分析 当前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 2020 2 22 223 2020 2 22 224 点击 Save 把聚类结果保存成bank Cluster arff文件 可以在写字板中打开观察聚类结果文件 在这个新的ARFF文件中 instance number 属性表示某实例的编号 Cluster 属性表示聚类算法给出的该实例所在的簇 2020 2 22 225 7 关联规则associations WEKA关联规则学习能够发现属性组之间的依赖关系 例如 milk butter bread eggs 置信度0 9and支持数2000 对于关联规则L R支持度 support 同时观察到前件和后件的概率support Pr L R 置信度 confidence 出现前件时同时出现后件的概率confidence Pr L R Pr L 2020 2 22 226 关联规则挖掘的主要算法 WEKA数据挖掘平台上的关联规则挖掘的主要算法有 Apriori 能够得出满足最小支持度和最小支持度的所有关联规则 PredictiveApriori 将置信度和支持度合并为预测精度而成为单一度测量法 找出经过预测精度排序的关联规则 Terius 根据确认度来寻找规则 它与Apriori一样寻找其结论中含有多重条件的规则 但不同的是这些条件相互间是 或 而不是 与 的关系 这三个算法均不支持数值型数据 事实上 绝大部分的关联规则算法均不支持数值型 所以必须将数据进行处理 将数据按区段进行划分 进行离散化分箱处理 2020 2 22 227 2020 2 22 228 算法属性设置 2020 2 22 229 car 如果设为真 则会挖掘类关联规则而不是全局关联规则 classindex 类属性索引 如果设置为 1 最后的属性被当做类属性 delta 以此数值为迭代递减单位 不断减小支持度直至达到最小支持度或产生了满足数量要求的规则 lowerBoundMinSupport 最小支持度下界 metricType 度量类型 设置对规则进行排序的度量依据 可以是 置信度 类关联规则只能用置信度挖掘 提升度 lift 平衡度 leverage 确信度 conviction minMtric 度量的最小值 numRules 要发现的规则数 outputItemSets 如果设置为真 会在结果中输出项集 removeAllMissingCols 移除全部为缺失值的列 significanceLevel 重要程度 重要性测试 仅用于置信度 upperBoundMinSupport 最小支持度上界 从这个值开始迭代减小最小支持度 verbose 如果设置为真 则算法会以冗余模式运行 2020 2 22 230 度量类型metricType Weka中设置了几个类似置信度 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越关联 2020 2 22 231 关联规则挖掘算法运行信息 Runinformation 运行信息Scheme weka associa
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!