ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

WEKA中文教程PPT:数据挖掘入门与ARFF格式详解

WEKA中文教程PPT:数据挖掘入门与ARFF格式详解 简介这份WEKA中文详细教程PPT面向数据挖掘与机器学习初学者、高校学生及需要快速上手WEKA的科研人员帮助解决工具界面陌生、操作流程不清、算法选择困难等问题。压缩包内共1个PPT文件大小约14.29MB以幻灯片形式系统梳理了WEKA的核心知识体系。内容从WEKA简介、数据集与ARFF格式讲起逐步展开数据准备、数据预处理、分类、聚类、关联规则、选择属性、数据可视化及知识流界面等模块并重点拆解Explorer环境的八大区域功能包括筛选器使用、属性摘要查看、直方图解读与数据集管理。目前已有163人学习适合作为课堂配套讲义或自学参考读者可借此掌握数据导入、预处理、算法应用与结果解释的完整流程并借助实践案例理解如何用WEKA解决实际数据分析问题。1. 从一份 WEKA 中文详细教程 PPT 说起数据挖掘入门到底该先啃什么很多人第一次接触数据挖掘是被 Python 生态带进来的pandas、scikit-learn、matplotlib 一路装下来环境还没配完就先劝退了一半。而这份 WEKA 中文详细教程 PPT 走的是另一条路它把数据挖掘的完整流程——数据准备、预处理、分类、聚类、关联规则、属性选择、可视化——全部塞进一个带图形界面的 Java 工具里打开就能点点完就能看到结果。WEKA 全称怀卡托智能分析环境Waikato Environment for Knowledge Analysis由新西兰怀卡托大学用 Java 开发是开源机器学习与数据挖掘工具里资历最老、教学场景用得最多的一款。这份 PPT 从 WEKA 简介讲到数据集格式再逐项拆解 Explorer 环境八大区域、ARFF 文件结构、四种数据类型适合刚入门数据挖掘、需要一套能跟着点完整个流程的课程资源的人。它不要求你写代码但要求你理解数据长什么样、算法吃什么格式、结果怎么读——这恰恰是很多人跳过、后面又回头补的部分。2. WEKA 的四个环境与 Explorer 八大区域先搞清楚你点的是哪个按钮2.1 四个环境各管什么别一上来就扎进 ExplorerWEKA 启动后会给四个入口Explorer、命令行环境、Knowledge Flow、算法试验环境。很多人第一次打开直接进 Explorer这没错但要知道另外三个是干什么的后面才不会走弯路。Explorer 是交互式主界面所有单步操作——加载数据、选筛选器、跑分类器、看结果——都在这里完成适合边看边调。命令行环境适合把已经调好的流程写成脚本批量跑比如你有一批 ARFF 文件要跑同一个分类器用界面点几十次不如写一行命令。Knowledge Flow 是图形化数据流设计界面把数据源、筛选器、分类器、评估器当成积木块连起来适合把整个挖掘流程固化成一个可复用的图。算法试验环境专门用来做算法对比实验比如同一份数据上跑 J48、RandomForest、SMO自动出对比表。常见做法是先用 Explorer 把流程跑通确认参数和结果符合预期再决定要不要搬到 Knowledge Flow 或命令行。直接上 Knowledge Flow 容易在连线阶段就卡住因为你还不知道每个组件需要什么输入。2.2 Explorer 八大区域逐个拆区域 3 的 Filter 才是预处理主战场Explorer 界面被切成八个区域PPT 里标得很清楚但真正动手时容易只盯着区域 1 的选项卡忽略了区域 3 的筛选器。下面按操作顺序把八个区域串一遍。区域 1 是任务选项卡Preprocess、Classify、Cluster、Associate、Select Attributes、Visualize。切换选项卡等于切换当前任务面板但数据是共享的——你在 Preprocess 里加载的数据切到 Classify 直接就能用。区域 2 是常用按钮Open file、Open URL、Open DB、Generate、Undo、Edit、Save。其中 Undo 很关键区域 5 里删了属性之后靠它找回。区域 3 是 Filter 选择区数据预处理主要在这里完成。点 Choose 选一个筛选器比如weka.filters.unsupervised.attribute.Remove用来删属性weka.filters.unsupervised.attribute.Discretize用来把数值属性离散化。选完筛选器后点 Apply数据才会真正被转换。很多人点了 Choose 以为就生效了结果后面跑分类器还是原始数据这是高频翻车点。区域 4 显示数据集概况关系名、属性数、实例数。加载完数据先看这里确认实例数对不对避免加载了错误文件。区域 5 列出所有属性勾选后点 Remove 可以删除。上方一排按钮是快速勾选工具比如 All、None、Invert。删除后属性变灰但数据还在内存里Undo 可恢复。区域 6 显示选中属性的摘要。数值属性显示最小值、最大值、均值、标准差标称属性显示每个类别的计数。这个区域用来快速判断某个属性有没有异常值、缺失值比例高不高。区域 7 是选中属性的直方图。如果最后一个属性是类标变量直方图会按类别比例分色。上方下拉框可以换分段依据选 No Class 或数值属性会变成黑白直方图。区域 8 是底部状态栏、Log 按钮和 WEKA 鸟。状态栏显示当前操作右击可以看内存信息和强制垃圾回收。WEKA 鸟在动说明正在执行任务不动了就是跑完了。提示区域 3 的 Filter 选完必须点 Apply否则筛选器只是被选中没有作用到数据上。这个坑几乎每个新手都会踩一次。2.3 一个最小可复现流程加载 weather.arff 并跑一次 J48下面用 WEKA 自带的 weather.arff 走一遍完整流程确认环境能正常工作。weather.arff 在 WEKA 安装目录的 data 子目录下。第一步启动 WEKA点 Explorer。第二步点 Open file定位到 data/weather.arff加载后区域 4 应显示 14 个实例、5 个属性。第三步切到 Classify 选项卡点 Choose 选weka.classifiers.trees.J48。第四步Test options 选 Cross-validationFolds 填 10。第五步点 Start右侧 Classifier output 会输出决策树和评估指标。# 如果要用命令行跑同样的流程在 WEKA 安装目录下执行 java -cp weka.jar weka.classifiers.trees.J48 -t data/weather.arff -x 10这段命令的含义-cp weka.jar指定类路径weka.classifiers.trees.J48是分类器全限定名-t指定训练数据-x 10表示 10 折交叉验证。输出里会包含正确分类实例数、Kappa 统计量、混淆矩阵等。如果报错找不到文件检查当前目录是否在 WEKA 安装根目录下或者把data/weather.arff换成绝对路径。跑通这一步说明 WEKA 环境、数据加载、分类器调用、评估输出这条链路是通的。后面换自己的数据、换算法都是在这个骨架上替换。3. ARFF 文件格式拆解关系声明、属性声明与四种数据类型3.1 ARFF 的两段式结构data 之前是头信息之后是数据WEKA 处理的数据集是.arff文件全称 Attribute-Relation File Format本质是一个 ASCII 文本文件用写字板就能打开编辑。文件以%开头的行是注释WEKA 会忽略。去掉注释后整个文件分两段data之前是头信息包括关系声明和属性声明data之后是数据信息每行一个实例字段用逗号分隔。以 weather.arff 为例头信息部分relation weather attribute outlook {sunny, overcast, rainy} attribute temperature real attribute humidity real attribute windy {TRUE, FALSE} attribute play {yes, no}relation weather声明关系名。attribute逐行声明属性名和数据类型。属性声明的顺序决定了数据部分每一列的含义——outlook 是第 0 列temperature 是第 1 列以此类推。最后一个声明的属性被当作 class 属性在分类或回归任务中作为默认目标变量这里就是 play。数据部分data sunny,85,85,FALSE,no sunny,80,90,TRUE,no overcast,83,86,FALSE,yes ...每行 5 个值顺序与属性声明一致。标称属性的值必须出现在声明的类别列表里否则 WEKA 加载时会报错。数值属性直接写数字WEKA 统一按实数处理。3.2 四种数据类型numeric、nominal、string、date 的写法与边界WEKA 支持四种数据类型PPT 里列得很清楚但实际写 ARFF 时容易在 nominal 和 string 之间搞混。numeric 数值型可以是整数或实数WEKA 都当实数看待。写法attribute temperature real也可以用integer或numeric效果一样。注意real、integer、numeric这些关键字区分大小写写Real会报错。nominal 标称型用花括号列出所有可能类别attribute outlook {sunny, overcast, rainy}。数据中该属性的值只能是其中之一。类别名带空格要加引号比如{‘partly cloudy’, rainy}。标称属性在 WEKA 内部会被映射成整数索引但界面上显示原始名称。string 字符串型attribute LCC string可以包含任意文本。string 属性不能直接用于大多数分类器通常需要先用StringToWordVector筛选器转换成数值向量。这是文本挖掘场景的常见前置步骤。date 日期时间型attribute date date [yyyy-MM-dd]方括号里是格式。日期属性在 WEKA 里用得相对少但做时间序列相关任务时会遇到。注意relation、attribute、data这三个标记不区分大小写但数据类型关键字integer、real、numeric、date、string区分大小写。混用大小写是 ARFF 加载失败的常见原因之一。3.3 从 CSV 转 ARFF用 Explorer 另存为别手写手写 ARFF 容易在属性声明顺序、类别列表、数据类型上出错。常见做法是先把数据整理成 CSV用 Explorer 加载后另存为 ARFF。具体步骤Open file 选 CSV 文件WEKA 会弹出一个对话框让你确认属性类型和类别确认后数据加载进区域 4再点 Save 按钮文件类型选 ARFF保存即可。如果 CSV 有表头WEKA 会自动把第一行当属性名。如果某个属性被识别成 numeric 但实际应该是 nominal在加载对话框里点该属性对应的按钮切换类型。保存后的 ARFF 文件里属性声明和数据类型都已经写好数据部分也按格式排列比手写可靠得多。对于批量转换可以用命令行java -cp weka.jar weka.core.converters.CSVLoader data.csv data.arff这条命令把 data.csv 转成 ARFF 并输出到 data.arff。如果 CSV 里某些列应该是标称型但被识别成数值型需要在转换后手动编辑 ARFF 头信息把对应的attribute行改成花括号类别列表。转换前先确认 CSV 没有多余的空行和非法字符否则加载阶段就会报错。4. 数据预处理与筛选器缺失值、离散化、属性删除的实操与避坑4.1 缺失值处理先看区域 6 的 Missing 比例再决定删还是补加载数据后区域 6 会显示选中属性的缺失值数量和比例。如果某个属性缺失比例很高比如超过 50%常见做法是直接删掉这个属性在区域 5 勾选后点 Remove。如果缺失比例不高可以用筛选器填充。WEKA 里处理缺失值的筛选器主要有两个weka.filters.unsupervised.attribute.ReplaceMissingValues把缺失值替换为该属性的均值数值型或众数标称型weka.filters.unsupervised.attribute.Remove配合-V参数可以删除缺失值过多的实例。操作步骤区域 3 点 Choose选 ReplaceMissingValues点 Apply。然后切到 Classify 跑一次对比处理前后的评估指标。如果指标没有明显变化说明缺失值对当前任务影响不大如果指标提升明显说明缺失值处理是必要的。提示ReplaceMissingValues 是无监督筛选器直接对全量数据生效。如果在交叉验证前对整个数据集做替换会引入轻微的数据泄漏。严格做法是在 Cross-validation 的 Filter 选项里配置筛选器让每折内部独立处理。教学场景下直接 Apply 问题不大但做正式实验时要注意这个边界。4.2 离散化数值属性转标称Discretize 的参数怎么设有些算法比如 Apriori 关联规则要求所有属性都是标称型数值属性需要先离散化。WEKA 提供weka.filters.unsupervised.attribute.Discretize把数值属性按等宽或等频分箱。默认参数是等宽分箱-B指定箱数默认 10。比如把 temperature 分成 5 箱java -cp weka.jar weka.filters.unsupervised.attribute.Discretize -B 5 -R 2 data/weather.arff-B 5表示 5 个箱-R 2表示只处理第 2 个属性从 1 开始计数。输出是离散化后的 ARFF。在 Explorer 里操作时选好 Discretize 后点 Apply区域 5 里对应属性的类型会从 numeric 变成 nominal区域 6 的摘要也会从均值标准差变成类别计数。箱数怎么定常见做法是先试 5 到 10 箱看分类器评估指标的变化。箱数太少会丢失信息太多则离散化失去意义。如果数据分布偏斜严重等宽分箱可能把大部分实例塞进一个箱这时改用等频分箱在 Discretize 的选项里把useEqualFrequency设为 True。4.3 属性删除与选择Remove 和 Select Attributes 选项卡的区别区域 5 的 Remove 是手动删属性你根据领域知识或区域 6 的摘要判断哪些属性没用勾选后删掉。这是最直接的方式但主观性强。Select Attributes 选项卡提供自动属性选择用搜索算法加评估器挑出最相关的属性子集。比如选weka.attributeSelection.CfsSubsetEval作为评估器weka.attributeSelection.BestFirst作为搜索方法点 Start 后输出推荐的属性子集。这个子集可以回到 Preprocess 里用 Remove 保留、其余删掉再跑分类器对比。两种方式各有适用场景属性少、领域知识清晰时手动删更快属性多、不确定哪些相关时用自动选择。自动选择的结果依赖评估器和搜索策略不同组合可能给出不同子集建议多试两组对比。4.4 避坑筛选器顺序、Undo 边界与 Apply 遗漏现象点了 Choose 选筛选器跑分类器结果没变化。原因筛选器只是被选中没有点 Apply数据没有被转换。 解决选完筛选器后必须点 Apply区域 4 的实例数或区域 5 的属性类型会发生变化确认变化后再进行下一步。现象删了属性后想恢复点 Undo 没反应。原因Undo 只能撤销最近一次操作如果中间又做了其他操作比如切换选项卡、跑了一次分类Undo 栈可能已经变了。 解决删属性前先确认或者用 Save 保存当前状态删错了重新加载。重要操作前先另存一份 ARFF。现象筛选器叠加后结果不对。原因多个筛选器按选择顺序叠加前一个的输出是后一个的输入。如果顺序反了比如先离散化再替换缺失值可能得到非预期结果。 解决在区域 3 的 Filter 区可以看到已选筛选器列表按逻辑顺序排列。一般先处理缺失值再做离散化最后做属性删除。现象ARFF 文件加载报错提示某行数据格式不对。原因数据部分某行的字段数与属性声明数不一致或者标称属性的值不在声明的类别列表里。 解决用文本编辑器打开 ARFF检查报错行号附近的字段数和值。标称属性的值必须与声明完全一致包括大小写。现象CSV 转 ARFF 后原本是类别的列变成了数值。原因CSV 里该列的值是数字WEKA 自动识别为 numeric。 解决在加载对话框里手动把该属性类型改成 nominal或者在转换后的 ARFF 里手动编辑attribute行加上花括号类别列表。5. 分类、聚类与关联规则三个选项卡的最小实操路径5.1 Classify选分类器、设测试选项、读评估输出Classify 选项卡是使用频率最高的面板。操作路径Choose 选分类器Test options 选评估方式点 Start 看输出。分类器选择上入门常用 J48决策树、NaiveBayes朴素贝叶斯、SMO支持向量机、IBkK 近邻。J48 输出的是决策树可读性好适合教学演示。NaiveBayes 速度快适合高维数据。SMO 在小样本上表现稳定但参数调起来比前两个麻烦。Test options 有四种Use training set、Supplied test set、Cross-validation、Percentage split。教学场景最常用 Cross-validationFolds 默认 10。Percentage split 按比例切分比如 66% 训练、34% 测试。Use training set 用全部数据训练和评估结果偏乐观只适合快速验证流程是否跑通。点 Start 后右侧 Classifier output 输出几块内容运行信息分类器名称、参数、数据集信息、评估指标Correctly Classified Instances、Incorrectly、Kappa statistic、Mean absolute error 等、混淆矩阵、决策树或模型描述。重点看 Correctly Classified Instances 的百分比和 Kappa 统计量。Kappa 考虑了随机一致性的影响比单纯准确率更能反映模型的实际表现。如果结果不理想常见调整方向换分类器、调参数点 Choose 后面的参数框、做属性选择、处理缺失值。每次只改一个变量对比输出变化否则不知道是哪个改动起了作用。5.2 ClusterSimpleKMeans 的簇数与评估指标Cluster 选项卡做聚类常用weka.clusterers.SimpleKMeans。操作路径Choose 选 SimpleKMeans在参数里设 numClusters簇数Cluster mode 选 Use training set点 Start。输出里看几个指标Within cluster sum of squared errors簇内平方和越小越紧凑、各簇的实例数分布、最终簇中心。簇数怎么定常见做法是从 2 开始递增看簇内平方和的下降幅度下降变缓的拐点对应的簇数作为参考。也可以结合领域知识比如你知道数据大概分几类直接设对应的簇数。聚类结果可以可视化在 Cluster 面板下方点 Visualize cluster assignments会弹出散点图不同簇用不同颜色标出。如果簇之间重叠严重说明当前特征下区分度不够需要回到 Preprocess 做属性选择或构造新属性。5.3 AssociateApriori 找关联规则支持度和置信度怎么读Associate 选项卡做关联规则挖掘常用weka.associations.Apriori。注意 Apriori 要求所有属性都是标称型数值属性需要先离散化。操作路径Choose 选 Apriori点参数框设 numRules输出规则数、lowerBoundMinSupport最小支持度、minMetric最小置信度点 Start。输出里每条规则格式是“前提 结论”后面跟支持度和置信度。支持度表示前提和结论同时出现的实例比例置信度表示前提出现时结论也出现的比例。比如规则outlookrainy playno支持度 0.3、置信度 0.8意思是 30% 的实例同时满足这两个条件而在 outlookrainy 的实例中有 80% 的 playno。支持度太低规则可能只是偶然置信度太低规则不可靠。一般先设最小支持度 0.1、最小置信度 0.9看输出规则数量再调整。提示Apriori 在属性多、类别多时运行时间会明显变长。如果数据量大先用 Select Attributes 缩减属性或者提高最小支持度减少候选集。6. 从 Explorer 到 Knowledge Flow把流程固化下来并验证结果Explorer 适合探索但每次都要重新点一遍。Knowledge Flow 把数据源、筛选器、分类器、评估器连成图保存后下次直接加载运行。操作路径启动 WEKA 选 Knowledge Flow从左侧工具栏拖 DataSources 里的 ArffLoader 到画布拖 Filters 里的筛选器、Classifiers 里的分类器、Evaluation 里的评估组件用鼠标从组件右侧的圆点拖到下一个组件左侧的圆点连线。ArffLoader 需要双击配置文件路径分类器需要双击设参数。连好后点启动按钮数据从 ArffLoader 流出经过筛选器、分类器、评估器结果在评估组件的输出里看。Knowledge Flow 的价值在于流程可复用、可分享。把图保存成.kf文件换一份 ARFF 只需改 ArffLoader 的路径其余组件不用动。做算法对比时复制一份图把分类器组件换成另一个跑完对比评估输出。验证结果是否可信我一般会做两件事一是用命令行跑同样的流程对比 Explorer 和命令行的输出是否一致排除界面操作遗漏二是把 Cross-validation 的 Folds 从 10 改成 5 再跑一次看指标波动范围。如果波动很大说明数据量太小或划分敏感需要增加数据或改用多次重复交叉验证。从那以后我每次用 WEKA 跑完一轮实验都会把 ARFF 文件、Knowledge Flow 图、命令行输出一起存档下次复现或对比时直接加载不用凭记忆重新点一遍。希望帮到你。本文还有配套的精品资源点击获取
返回列表