Machine Learning Mastery Weka 教程(三)

原文:Machine Learning Mastery

协议:CC BY-NC-SA 4.0

Weka 中用于练习的标准机器学习数据集

原文:https://machinelearningmastery.com/standard-machine-learning-datasets-used-practice-weka/

最后更新于 2020 年 12 月 10 日

在开始机器学习和学习一个新工具时,拥有小的、理解良好的数据集是一个好主意。

Weka 机器学习工作台在已安装的目录中提供了一个小数据集的目录。

在这篇文章中,你将发现一些与 Weka 一起分发的小的、被很好理解的数据集,它们的细节以及在哪里可以了解到更多关于它们的信息。

我们将关注少数不同类型的数据集。看完这篇文章你会知道:

  • 样本数据集位于何处,或者如果需要,可以从何处重新下载。
  • 您可以使用特定的标准数据集来探索分类和回归预测模型的不同方面。
  • 哪里可以获得更多关于特定数据集和最新结果的信息。

用我的新书用 Weka 启动你的项目,包括的分步教程和清晰的截图所有示例。

我们开始吧。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

标准机器学习数据集用于实践 Weka
照片由马文·福希拍摄,保留部分权利。

标准 Weka 数据集

开源 Weka 机器学习工作台的安装包括一个充满标准机器学习问题的 data/ 目录。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 安装目录

当您开始学习机器学习或学习如何开始使用 Weka 平台时,这非常有用。它为常见的分类和回归问题提供了标准的机器学习数据集,例如,下面是该目录的快照:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 安装目录中提供的数据集

所有数据集都是 Weka 本地 ARFF 文件格式,可以直接加载到 Weka,这意味着您可以立即开始开发实践模型。

有一些特殊的 Weka 发行版可能不包括数据/目录。如果您选择安装其中一个发行版,您可以下载。对 Weka 进行 zip 分发,解压后将数据/ 目录复制到某个你可以从 Weka 轻松访问的地方。

data/ 目录中有很多数据集可以使用,在接下来的部分中,我将指出一些您可以关注的练习和研究预测建模问题的数据集。

二元类别数据集

二进制分类是指待预测的输出变量标称由两类组成。

这可能是研究得最透彻的一类预测建模问题,也是最好的一类问题。

数据/ 目录中有三个标准的二进制分类问题可以重点关注:

  1. 皮马印第安人糖尿病发作 : ( diabetes.arff )每个实例代表一名患者的医疗细节,任务是预测该患者是否会在未来五年内出现糖尿病发作。有 8 个数值输入变量,它们都有不同的标度。你可以了解更多这个数据集最高结果在 77%准确率的数量级
  2. 乳腺癌 : ( 乳腺癌. arff )每个实例代表患者的医疗细节及其肿瘤组织样本,任务是预测患者是否患有乳腺癌。有 9 个输入变量,它们都是标称值。您可以在 UCI 机器学习资源库中了解更多数据集。最高结果在 75%准确度的数量级
  3. 电离层 ( 电离层. arff )每个实例都描述了来自大气的雷达回波的属性,任务是预测电离层中是否存在结构。有 34 个数值输入变量,通常具有相同的规模。您可以在 UCI 机器学习资源库上了解更多关于该数据集的信息。最高结果在 98%准确率的数量级

多类类别数据集

有许多分类类型问题,其中输出变量有两个以上的类。这些被称为多类分类问题。

当你对二进制分类有了一些信心后,这是一个很好的问题类型。

数据/ 目录中,你可以关注的三个标准多类分类问题是:

  1. 鸢尾花分类 : ( iris.arff )每个实例描述了鸢尾花的测量,任务是预测观察属于哪 3 种鸢尾花。有 4 个数值输入变量,单位相同,尺度一般相同。您可以在 UCI 机器学习资源库中了解更多数据集。最高的结果大约是 96%的准确率。
  2. 大型大豆数据库 : ( 黄豆. arff )每个实例描述了一种大豆作物的特性,任务是预测该作物遭受 19 种疾病中的哪一种。有 35 个标称输入变量。您可以在 UCI 机器学习资源库上了解更多关于该数据集的信息。
  3. 玻璃鉴定 : ( glass.arff )每个实例描述了玻璃样品的化学成分,任务是从 7 个类别之一预测该类别的类型或用途。有 10 个数字属性描述了玻璃的化学性质和折射率。您可以在 UCI 机器学习资源库上了解更多关于该数据集的信息。

回归数据集

回归问题是那些你必须预测一个真正有价值的输出的问题。

数据/ 目录中回归问题的选择较少。回归是一类重要的预测建模问题。因此,我建议下载从 UCI 机器学习资源库收集的回归问题的免费附加包。

它可从 Weka 网页上的数据集页面获得,是列表中的第一个,名为:

  • 包含 37 个回归问题的 jar 文件,从各种来源获得(数据集-numeric.jar )

它是一个. jar 文件,是一种压缩的 Java 档案。你应该可以用大多数现代的解压程序来解压。

如果您安装了 Java(很可能使用 Weka),您也可以解压缩。在下载 jar 的目录中,使用以下命令在命令行上手动创建 jar 文件:

jar -xvf datasets-numeric.jar

解压缩文件将创建一个名为数值的新目录,其中包含 37 个 ARFF 本地 Weka 格式的回归数据集。

数值/ 目录中您可以关注的三个回归数据集是:

  1. 龙利经济数据集 : ( 龙利. arff )每个实例描述了一个国家在给定年份的总经济属性,任务是将就业人数预测为整数。有 6 个不同比例的数字输入变量。
  2. 波士顿房价数据集 : ( housing.arff )每个实例描述了波士顿郊区的房产,任务是以千美元为单位预测房价。有 13 个不同尺度的数值输入变量描述郊区的特性。您可以在 UCI 机器学习资源库上了解更多关于该数据集的信息。
  3. 哺乳动物中的睡眠数据集 : ( sleep.arff )每个实例描述了不同哺乳动物的属性,任务是预测它们平均需要的总睡眠小时数。有 7 个不同尺度和度量的数字输入变量。

摘要

在这篇文章中,您发现了与 Weka 机器学习平台一起分发的标准机器学习数据集。

具体来说,您了解到:

  • 你可以在实践中使用的三个流行的二分类问题:糖尿病、乳腺癌和电离层。
  • 三个流行的多类分类问题,你可以用来练习:鸢尾,大豆和玻璃。
  • 三个流行的回归问题,你可以用来练习:龙利,住房和睡眠。

你对 Weka 中的标准机器学习数据集或这篇文章有什么问题吗?在评论中提问,我会尽力回答。

Weka 中解决机器学习问题的模板

原文:https://machinelearningmastery.com/template-for-working-through-machine-learning-problems-in-weka/

最后更新于 2019 年 8 月 22 日

当你在 Weka 开始时,你可能会感到不知所措。

有如此多的数据集、如此多的过滤器和如此多的算法可供选择。

选择太多了。你可以做的事情太多了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

太多选择
图片由埃米利奥拉布拉多提供,保留部分权利。

结构化流程是关键。

我已经谈到了过程和需要像抽查算法这样的任务来克服压倒性的优势,并开始学习关于你的问题的有用的东西。在这篇文章中,我想给你一个这个过程的简化版本,你可以用来练习应用机器学习。

用我的新书用 Weka 启动你的项目,包括的分步教程和清晰的截图所有示例。

问题解决模板

这个模板是一个简化的过程,它专注于学习问题,一个好的解决方案,并且非常快地完成。

它被组织成应用机器学习的六个步骤。通过使用Weka 探索者Weka 实验者图形用户界面,每一步都被分解成特定的问题供您回答。

该流程的六个步骤及其目标如下:

  1. 问题定义
  2. 数据分析
  3. 数据准备
  4. 评估计法
  5. 改善结果
  6. 呈现结果

在接下来的部分中,我将总结流程中每一步的关键问题和答案。您可能希望打印出这些问题或将其复制到文档中,以创建自己的模板文档。

1.问题定义

问题定义的目的是理解并清楚地描述正在解决的问题。

问题描述

  1. 这个问题的非正式描述是什么?
  2. 问题的正式描述是什么?
  3. 你对这个问题有什么假设?

提供的数据

  1. 对选择数据施加了哪些限制?
  2. 在提供的数据集中定义每个属性。

2.数据分析

数据分析的目的是了解可用于开发模型的信息。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

显示类别值的属性直方图

  1. 属性是什么数据类型?
  2. 是否有丢失或损坏的值?
  3. 回顾属性的分布,你注意到了什么?
  4. 回顾类值的分布,你注意到了什么?
  5. 查看直方图中带有类值的属性分布,您会注意到什么?
  6. 回顾属性的成对散点图,你会注意到什么?

3.数据准备

数据准备的目的是发现和公开数据集中的结构。

  1. 规范化数据集
  2. 标准化数据集
  3. 将数据集平方
  4. 离散化属性(如果是整数)
  5. 移除和/或替换缺失的值(如果存在)
  6. 创建数据集的转换,以测试问题定义中提出的假设

4.评估计法

评估计法的目的是开发测试工具和基线准确率,并以此为基础进行改进。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在 Weka 实验器中分析结果时的算法排名

  1. 探索不同的分类算法
  2. 设计并运行抽查实验
  3. 回顾并解释算法排名
  4. 检查并解释算法的准确性
  5. 根据需要重复该过程

5.改善结果

改进结果的目的是利用结果来开发更精确的模型。

算法调整

  1. 探索不同的算法配置
  2. 设计并运行算法调优实验
  3. 回顾并解释算法排名
  4. 检查并解释算法的准确性
  5. 根据需要重复该过程

集成方法

  1. 探索不同的集成方法
  2. 设计并运行算法集成实验
  3. 回顾和解读集成排名
  4. 回顾和解释集合的准确性
  5. 根据需要重复该过程
  6. 你能用其他元算法来改善结果吗,比如阈值?
  7. 你能通过使用与表现良好的算法在同一家族中的其他算法来提高结果吗?

6.呈现结果

呈现结果的目的是描述问题和解决方案,以便第三方能够理解。

完成以下部分,总结问题和解决方案。

  1. 有什么问题?
  2. 解决方案是什么?
  3. 有什么发现?
  4. 有哪些限制?
  5. 结论是什么?

如何使用

在 Weka 安装的“目录中有许多有趣的数据集。 UCI 机器学习资源库 上也有很多数据集可以下载使用。

*选择一个问题,并使用此模板解决它。你会惊讶于你学到了多少,像这样的结构化过程能帮助你保持专注。

摘要

在这篇文章中,你了解了一个用于应用机器学习过程的结构化模板。该模板可以打印出来,并逐步用于解决 Weka 机器学习工作台中的一个问题。

随着问题的展开,回答模板每一步中的具体问题将快速建立对问题和您的解决方案的更深入理解。这是无价的,就像实验室里的科学家笔记本。*

Weka 机器学习工作台之旅

原文:https://machinelearningmastery.com/tour-weka-machine-learning-workbench/

最后更新于 2019 年 8 月 22 日

Weka 是一个易用且功能强大的机器学习平台。

它提供了大量的机器学习算法、特征选择方法和数据准备过滤器。

在这篇文章中,您将发现 Weka 机器学习工作台,并参观您可以在机器学习项目中使用的关键界面。

看完这篇文章,你会知道:

  • Weka 机器学习工作台支持的接口。
  • 初学者推荐的解决问题的接口,以及不推荐的接口。
  • 如何至少在 Weka 中点击你需要的每个按键界面并生成一个结果。

用我的新书用 Weka 启动你的项目,包括的分步教程和清晰的截图所有示例。

我们开始吧。

Weka 图形用户界面选择器

进入 Weka 界面的入口是 Weka 图形用户界面选择器。

这是一个界面,让你选择和启动一个特定的 Weka 环境。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 图形用户界面选择器截图

除了提供对核心 Weka 工具的访问之外,菜单中还提供了许多其他实用程序和工具。

“工具”菜单中有两个重要的实用程序需要注意:

1.包管理器,让你浏览和安装第三方插件到 Weka,如新算法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 包管理器截图

2.ARFF 查看器允许您加载和转换数据集,并以 ARFF 格式保存它们。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka ARFF 浏览器截图

Weka 探险家

Weka Explorer 旨在研究您的机器学习数据集。

当您考虑不同的数据转换和建模算法时,这很有用,您可以稍后通过受控实验进行研究。它非常适合获取想法和播放假设场景。

界面分为 6 个选项卡,每个选项卡都有特定的功能:

预处理选项卡用于加载数据集,并应用过滤器将数据转换成一种形式,以便更好地向建模过程揭示问题的结构。还提供了一些关于加载数据的汇总统计信息。

在您的 Weka 安装的数据/ 目录中加载一个标准数据集,特别是数据/乳腺癌. arff 。这是一个二分类问题,我们将在这次旅行中使用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 浏览器预处理选项卡截图

分类选项卡用于训练和评估不同机器学习算法在分类或回归问题上的表现。算法被分成组,结果被保存在结果列表中,并在主分类器输出中总结。

单击“开始”按钮,在数据集上运行 ZeroR 分类器并总结结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 浏览器分类标签截图

“聚类”选项卡用于训练和评估不同无监督聚类算法在未标记数据集上的表现。像“分类”选项卡一样,算法被分成组,结果保存在结果列表中,并在主集群器输出中汇总。

单击“开始”按钮,在数据集上运行 EM 聚类算法并总结结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 浏览器集群选项卡截图

“关联”选项卡用于自动查找数据集中的关联。这些技术通常用于市场篮子分析类型的数据挖掘问题,并且需要所有属性都是分类的数据。

单击“开始”按钮,在数据集上运行 Apriori 关联算法并总结结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 资源管理器关联选项卡的屏幕截图

“选择属性”选项卡用于对加载的数据集执行特征选择,并识别最有可能与开发预测模型相关的特征。

点击“开始”按钮运行cfssusheval算法,在数据集上进行最佳第一搜索并总结结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 浏览器选择属性选项卡截图

可视化选项卡用于查看加载数据集中每个属性相对于其他属性的成对散点图矩阵。了解属性的形状和关系有助于数据过滤、转换和建模,这很有用。

增加点的大小和抖动,点击“更新”按钮,设置加载数据集分类属性的改进图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 资源管理器可视化选项卡

Weka 实验环境

Weka 实验环境用于设计受控实验,运行它们,然后分析收集的结果。

这是使用 Weka Explorer 后的下一步,您可以加载数据集的一个或多个视图和一套算法,并设计一个实验来找到表现最佳的组合。

界面分为 3 个选项卡。

设置选项卡用于设计实验。这包括写入结果的文件、如何评估计法的测试设置、要建模的数据集以及建模它们的算法。实验的细节可以保存下来供以后使用和修改。

  • 单击“新建”按钮创建新实验。
  • 单击数据集窗格中的“添加新…”按钮,选择数据/糖尿病. arff 数据集。
  • 单击“算法”窗格中的“添加新…”按钮,然后单击“确定”添加 ZeroR 算法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 实验环境设置选项卡截图

运行选项卡用于运行您设计的实验。实验可以开始和停止。没什么大不了的。

点击“开始”按钮运行您设计的小实验。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 实验环境运行选项卡截图

“分析”选项卡用于分析从实验中收集的结果。结果可以从文件、数据库或刚刚在工具中完成的实验中加载。从给定的实验中收集了许多表现度量,可以使用统计显著性等工具在算法之间进行比较。

  • 单击“源”窗格中的“实验”按钮,加载刚刚运行的实验的结果。
  • 点击“执行测试”按钮,总结实验中单个算法的分类准确率结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 实验环境分析选项卡截图

Weka 知识流环境

Weka KnowledgeFlow 环境是一个图形化的工作流工具,用于设计从数据源到结果摘要等的机器学习管道。设计完成后,可以在工具中执行和评估管道。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 知识流环境截图

知识流环境是一个强大的工具,我不建议初学者在掌握使用 Weka 探索者和 Weka 实验环境之后使用。

保留工作台

Weka 工作台是一个将所有图形用户界面组合成单一界面的环境。

如果您发现自己在两个或多个不同的界面之间跳跃很多,例如在资源管理器和实验环境之间跳跃,这将非常有用。如果你在探索者中尝试了很多假设,并迅速将你学到的知识投入到受控实验中,这种情况就会发生。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 工作台截图

微卡简易 CLI

Weka 可以从简单的命令行界面使用。

这非常强大,因为您可以编写 shell 脚本,从带有参数的命令行调用中使用完整的 API,允许您在没有图形用户界面的情况下构建模型、运行实验和进行预测。

SimpleCLI 提供了一个环境,您可以在其中快速轻松地实验 Weka 命令行界面命令。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 简单命令行界面截图

像 Weka KnowledgeFlow 环境一样,这是一个强大的工具,我不建议初学者在掌握使用 Weka Explorer 和 Weka 实验环境之前使用它。

微卡 Java API

Weka 也可以从 Java API 中使用。

这是针对 Java 程序员的,当您想要将学习或预测结合到自己的应用程序中时,这可能会很有用。

这是一个高级功能,我不建议初学者在掌握使用 Weka Explorer 和 Weka 实验环境之前使用。

摘要

在这篇文章中,你发现了 Weka 机器学习工作台。您浏览了一些关键界面,可以使用这些界面来探索和开发针对您自己的问题的预测性机器学习模型。

具体来说,您了解到:

  • 用于数据准备、特征选择和评估计法的 Weka 浏览器。
  • 设计、运行和分析受控实验结果的 Weka 实验环境。
  • 用于图形化设计和执行机器学习管道的 Weka 知识流环境。
  • Weka 工作台将所有 Weka 工具整合到一个方便的界面中。
  • Weka 简单命令行界面,用于从命令行使用 Weka 应用编程接口。
  • Weka Java API,可用于将学习和预测结合到您自己的应用程序中。

你对 Weka 机器学习工作台或这篇文章有什么问题吗?在下面的评论中提出你的问题,我会尽力回答。

如何在 Weka 中转换你的机器学习数据

原文:https://machinelearningmastery.com/transform-machine-learning-data-weka/

最后更新于 2019 年 12 月 13 日

通常,机器学习的原始数据并不是建模的理想形式。

你需要准备或重塑它,以满足不同机器学习算法的期望。

在这篇文章中,你将发现两种技术,你可以用来转换你的机器学习数据,为建模做准备。

看完这篇文章你会知道:

  • 如何将实值属性转换成离散分布称为离散化?
  • 如何将一个离散属性转换成多个实值,称为虚拟变量。
  • 何时根据数据离散化或创建虚拟变量。

用我的新书用 Weka 启动你的项目,包括的分步教程和清晰的截图所有示例。

我们开始吧。

  • 2018 年 3 月更新:增加了下载数据集的替代链接,因为原件似乎已经被取下来。

离散化数值属性

一些机器学习算法更喜欢或发现处理离散属性更容易。

例如,决策树算法可以选择实值属性中的分割点,但是当分割点在实值属性中的面元或预定义组之间选择时,它会更加清晰。

离散属性是描述一个类别的属性,称为名义属性。那些描述一个类别的属性被称为序数属性,在这个类别的顺序中有一个意义。将实值属性转换为序数属性或箱的过程称为离散化。

您可以使用离散化过滤器在 Weka 中离散化您的实值属性。

下面的教程演示了如何使用离散化过滤器。皮马印第安人糖尿病发病数据集用于演示该过滤器,因为输入值是实值的,将它们分组到箱中可能有意义。

您可以在此了解有关数据集的更多信息:

您也可以通过加载文件 diabetes.arff ,在 data/ 目录下访问您的 Weka 安装中的数据集目录。

1.打开 Weka 浏览器。

2.加载皮马印第安人糖尿病发病数据集。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 浏览器加载的糖尿病数据集

3.单击过滤器的“选择”按钮,并选择“离散化”,它位于“无监督.属性.离散化”下

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 选择离散化数据过滤器

4.单击过滤器进行配置。您可以选择要离散化的属性的索引,默认情况下是离散化所有属性,这就是我们在这种情况下要做的。点击“确定”按钮。

5.单击“应用”按钮应用过滤器。

您可以单击每个属性并查看“选定属性”窗口中的详细信息,以确认过滤器已成功应用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 离散化属性

离散化当使用决策树类型算法时,您的实值属性最有用。当你相信在给定的属性值中有自然的分组时,这可能更有用。

将名义属性转换为虚拟变量

一些机器学习算法更喜欢使用实值输入,不支持名义或序数属性。

名义属性可以转换为真实值。这是通过为每个类别创建一个新的二进制属性来实现的。对于具有该值类别的给定实例,二进制属性设置为 1,其他类别的二进制属性设置为 0。这个过程叫做创建虚拟变量。

您可以使用 NominalToBinary 过滤器从 Weka 中的名义属性创建虚拟二进制变量。

下面的配方演示了如何使用 NominalToBinary 过滤器。隐形眼镜数据集被用来演示这个过滤器,因为属性都是名义上的,并为创建虚拟变量提供了大量的机会。

您可以从 UCI 机器学习资源库下载隐形眼镜数据集。您也可以通过加载文件隐形眼镜,在数据/* 目录下访问您的 Weka 安装中的数据集目录。*

1.打开 Weka 浏览器。

2.加载隐形眼镜数据集。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 浏览器加载的隐形眼镜数据集

3.单击过滤器的“选择”按钮,并选择“无监督”

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 选择通用数据过滤器

4.单击过滤器进行配置。您可以选择要转换为二进制值的属性的索引,默认情况下是转换所有属性。将其更改为仅第一个属性。点击“确定”按钮。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 通用数据过滤器配置

5.单击“应用”按钮应用过滤器。

查看属性列表将显示年龄属性已被移除,并被三个新的二进制属性替换:年龄=年轻、年龄=老视前和年龄=老视。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

weka 名义属性转换为汇总变量

创建虚拟变量对于不支持名义输入变量的技术很有用,如线性回归和逻辑回归。它在 k 近邻和人工神经网络等技术中也被证明是有用的。

摘要

在这篇文章中,您发现了如何转换您的机器学习数据,以满足不同机器学习算法的期望。

具体来说,您了解到:

  • 如何将实值输入属性转换为名义属性称为离散化。
  • 如何将一个分类输入变量转换成多个称为虚拟变量的二进制输入属性。
  • 建模数据时何时使用离散化和虚拟变量。

你对数据转换或这篇文章有什么问题吗?在评论中提出你的问题,我会尽力回答。

如何在 Weka 中调整机器学习算法

原文:https://machinelearningmastery.com/tune-machine-learning-algorithms-weka/

最后更新于 2019 年 12 月 11 日

您可以通过调整机器学习算法的参数(称为超参数)来获得最大收益。

在这篇文章中,你将发现如何在 Weka 中通过受控实验来调整机器学习算法。

看完这篇文章你会知道:

  • 通过算法调整提高机器学习模型表现的重要性。
  • 如何设计受控实验来调整机器学习算法的超参数?
  • 如何用统计显著性来解释调整实验的结果?

用我的新书用 Weka 启动你的项目,包括的分步教程和清晰的截图所有示例。

我们开始吧。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如何在 Weka
中调整机器学习算法图片由Andrei niemimki提供,保留部分权利。

通过调整提高表现

机器学习算法可以被配置成引出不同的行为。

这很有用,因为它允许他们的行为适应你的机器学习问题的细节。

这也是一个困难,因为您必须选择如何配置算法,而不知道哪种配置最适合您的问题。

因此,您必须根据您的问题调整每个机器学习算法的配置参数。这通常被称为算法调整或算法超参数优化。

这是一个反复试验的经验过程。

您可以修改算法,以便发现能为您的问题带来最佳表现的参数组合,但这可能很困难,因为您必须记录所有结果并手动进行比较。

一种更稳健的方法是设计一个受控实验来评估一些预定义的算法配置,并提供工具来审查和比较结果。

Weka 实验环境提供了一个界面,允许您设计、执行和分析这些类型实验的结果。

算法调优实验概述

在本教程中,我们将定义一个实验来研究 k 近邻(kNN)机器学习算法的参数。

我们将研究 kNN 算法的两个参数:

  1. k 的值,它是为了进行预测而要查询的邻居的数量。
  2. 距离度量,这是在查询中确定邻居以进行预测的方式。

我们将使用皮马印第安人糖尿病发病数据集。每个实例代表一名患者的医疗细节,任务是预测该患者是否会在未来五年内出现糖尿病。有 8 个数值输入变量都有不同的尺度。

最高的结果大约是 77%的准确率。

本教程分为 3 个部分:

  1. 设计实验
  2. 运行实验
  3. 查看实验结果

您可以使用这个实验设计作为基础,在自己的数据集上调整不同机器学习算法的参数。

1.设计实验

在这一节中,我们将定义实验。

我们将选择用于评估不同算法配置的数据集。我们还将添加 kNN 算法的多个实例(在 Weka 中称为 IBk),每个实例都有不同的算法配置。

1.打开 Weka 图形用户界面选择器

2.点击“实验者”按钮,打开 Weka 实验者界面。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 实验环境

3.在“设置”选项卡上,单击“新建”按钮开始新的实验。

4.在“数据集”面板中,点击“添加新……”按钮,选择数据/糖尿病。

5.在“算法”窗格中,单击“添加新…”按钮,单击“选择”按钮并选择“惰性”组下的“IBk”算法。点击“确定”按钮添加。

这增加了 k=1 和距离=欧几里德的 kNN。

使用下面列出的配置参数配置重复此过程和 IBk。k 参数可以在算法配置的“KNN”参数中指定。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

WEKA k-最近邻算法配置

可以通过单击“近邻搜索算法”参数的技术名称来更改距离度量,以打开搜索方法的配置属性,然后单击“距离函数”参数的“选择”按钮。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

为 k 近邻算法选择距离函数

请注意,您可以通过单击“算法”窗格中的“编辑选定的…”按钮来编辑添加到实验中的算法的配置。

  • IBk,k=3,距离函数=欧几里德
  • IBk,k=7,距离函数=欧几里德
  • IBk,k=1,distanceFunction =曼哈顿
  • IBk,k=3,distanceFunction=Manhattan
  • IBk,k=7,distanceFunction =曼哈顿

欧几里德距离是一种距离度量,当数据集中的所有输入属性具有相同的比例时,使用这种距离度量最为合适。曼哈顿距离是当输入属性具有不同的标度时最好使用的度量,例如在皮马印第安人糖尿病发作数据集的情况下。

我们预计,具有曼哈顿距离度量的 kNN 将从该实验中获得更好的总体分数。

实验使用 10 倍交叉验证(默认)。每个配置将在数据集上用不同的随机数种子评估 10 次(10 次交叉验证的 10 次运行)。对于每个评估的算法配置,这将导致 10 个略有不同的结果,这是一个小群体,我们可以稍后使用统计方法来解释。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 配置算法调优实验

2.运行实验

现在是进行实验的时候了。

1.单击“运行”选项卡。

这里几乎没有选择。你所能做的就是开始一个实验或者停止一个正在运行的实验。

2.点击“开始”按钮并运行实验。它应该在几秒钟内完成。这是因为数据集很小。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 运行算法调优实验

3.查看实验结果

通过单击“源”窗格中的“实验”按钮,加载我们刚刚执行的实验的结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 加载算法调优实验结果

您将看到加载了 600 个结果。这是因为我们有 6 个算法配置,每个被评估 100 次,或者 10 倍交叉验证乘以 10 次重复。

我们将使用成对统计显著性测试,基于正确百分比来比较每种算法配置。所有默认配置。

比较的基础是列表中的第一个算法,即 k=1 且 distanceMeasure=Euclidean 的 IBK 算法,这是添加到实验中的第一个算法,也是默认选择。

单击“操作”窗格中的“执行测试”按钮。

您将看到如下所示的结果表:

Tester:     weka.experiment.PairedCorrectedTTester -G 4,5,6 -D 1 -R 2 -S 0.05 -result-matrix "weka.experiment.ResultMatrixPlainText -mean-prec 2 -stddev-prec 2 -col-name-width 0 -row-name-width 25 -mean-width 0 -stddev-width 0 -sig-width 0 -count-width 5 -print-col-names -print-row-names -enum-col-names"
Analysing:  Percent_correct
Datasets:   1
Resultsets: 6
Confidence: 0.05 (two tailed)
Sorted by:  -
Date:       8/06/16 9:55 AM

Dataset                   (1) lazy.IBk | (2) lazy. (3) lazy. (4) lazy. (5) lazy. (6) lazy.
------------------------------------------------------------------------------------------
pima_diabetes            (100)   70.62 |   73.86 v   74.45 v   69.68     71.90     73.25
------------------------------------------------------------------------------------------
                               (v/ /*) |   (1/0/0)   (1/0/0)   (0/1/0)   (0/1/0)   (0/1/0)

Key:
(1) lazy.IBk '-K 1 -W 0 -A \"weka.core.neighboursearch.LinearNNSearch -A \\\"weka.core.EuclideanDistance -R first-last\\\"\"' -3080186098777067172
(2) lazy.IBk '-K 3 -W 0 -A \"weka.core.neighboursearch.LinearNNSearch -A \\\"weka.core.EuclideanDistance -R first-last\\\"\"' -3080186098777067172
(3) lazy.IBk '-K 7 -W 0 -A \"weka.core.neighboursearch.LinearNNSearch -A \\\"weka.core.EuclideanDistance -R first-last\\\"\"' -3080186098777067172
(4) lazy.IBk '-K 1 -W 0 -A \"weka.core.neighboursearch.LinearNNSearch -A \\\"weka.core.ManhattanDistance -R first-last\\\"\"' -3080186098777067172
(5) lazy.IBk '-K 3 -W 0 -A \"weka.core.neighboursearch.LinearNNSearch -A \\\"weka.core.ManhattanDistance -R first-last\\\"\"' -3080186098777067172
(6) lazy.IBk '-K 7 -W 0 -A \"weka.core.neighboursearch.LinearNNSearch -A \\\"weka.core.ManhattanDistance -R first-last\\\"\"' -3080186098777067172

结果令人着迷。

我们可以看到,总的来说,欧几里德距离度量获得了比曼哈顿更好的结果,但是基本算法(k=1,欧几里德)和所有三种曼哈顿距离配置之间的差异并不显著(结果值旁边没有“*”。

我们还可以看到,使用 k=3 或 k=7 的欧几里德距离确实会产生比基本算法更好的准确率,并且这种差异在统计上是显著的(结果旁边有一点“v”)。

k=7 且 distanceMeasure =欧氏的算法(3)是否明显优于其他结果?

通过选择此算法作为比较基础,我们可以轻松地执行此比较:

  1. 单击“测试基地”旁边的“选择”按钮。
  2. 单击第三个算法,k=7,距离度量=欧几里德。
  3. 单击“选择”按钮将其作为基础。
  4. 单击“执行测试”按钮创建结果报告。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 选择新的测试基地进行结果分析

您将看到如下所示的结果表。

Tester:     weka.experiment.PairedCorrectedTTester -G 4,5,6 -D 1 -R 2 -S 0.05 -result-matrix "weka.experiment.ResultMatrixPlainText -mean-prec 2 -stddev-prec 2 -col-name-width 0 -row-name-width 25 -mean-width 2 -stddev-width 2 -sig-width 1 -count-width 5 -print-col-names -print-row-names -enum-col-names"
Analysing:  Percent_correct
Datasets:   1
Resultsets: 6
Confidence: 0.05 (two tailed)
Sorted by:  -
Date:       8/06/16 10:00 AM

Dataset                   (3) lazy.IBk | (1) lazy. (2) lazy. (4) lazy. (5) lazy. (6) lazy.
------------------------------------------------------------------------------------------
pima_diabetes            (100)   74.45 |   70.62 *   73.86     69.68 *   71.90     73.25
------------------------------------------------------------------------------------------
                               (v/ /*) |   (0/0/1)   (0/1/0)   (0/0/1)   (0/1/0)   (0/1/0)

Key:
(1) lazy.IBk '-K 1 -W 0 -A \"weka.core.neighboursearch.LinearNNSearch -A \\\"weka.core.EuclideanDistance -R first-last\\\"\"' -3080186098777067172
(2) lazy.IBk '-K 3 -W 0 -A \"weka.core.neighboursearch.LinearNNSearch -A \\\"weka.core.EuclideanDistance -R first-last\\\"\"' -3080186098777067172
(3) lazy.IBk '-K 7 -W 0 -A \"weka.core.neighboursearch.LinearNNSearch -A \\\"weka.core.EuclideanDistance -R first-last\\\"\"' -3080186098777067172
(4) lazy.IBk '-K 1 -W 0 -A \"weka.core.neighboursearch.LinearNNSearch -A \\\"weka.core.ManhattanDistance -R first-last\\\"\"' -3080186098777067172
(5) lazy.IBk '-K 3 -W 0 -A \"weka.core.neighboursearch.LinearNNSearch -A \\\"weka.core.ManhattanDistance -R first-last\\\"\"' -3080186098777067172
(6) lazy.IBk '-K 7 -W 0 -A \"weka.core.neighboursearch.LinearNNSearch -A \\\"weka.core.ManhattanDistance -R first-last\\\"\"' -3080186098777067172

我们可以看到,当与具有欧几里德或曼哈顿距离的 k=1 相比时,k=7 和欧几里德距离的差异在统计上是显著的,但是无论距离度量如何,k=3 或 7 都不是显著的。

这很有帮助。它向我们表明,我们可能同样容易地使用 k=7 或 k=3 的曼哈顿或欧几里德距离,并获得类似的结果。

选择的基本算法确实具有最高的准确性,为 74.45%。这种差异可能在较低的显著性水平上具有统计学显著性,例如 20%(通过将“显著性”设置为 0.20),但是方差会很高(5 个随机实例中有 4 个更好),结果可能不够可靠。

这些结果在另一方面是有用的,而不是寻找“最好的”。我们也许可以看到随着 k 值的增加,准确率增加的趋势。我们可以设计一个后续实验,其中距离测量值用欧几里得距离固定,并考虑更大的 k 值。

摘要

在这篇文章中,你发现了如何设计受控实验来调整机器学习算法超参数。

具体来说,您了解到:

  • 关于算法参数的需求和根据你的问题根据经验调整它们的重要性。
  • 如何在 Weka 中设计和执行一个受控实验来调整机器学习算法的参数。
  • 如何用统计学显著性解释对照实验的结果。

你对算法调优或这篇文章有什么问题吗?在评论中提出你的问题,我会尽力回答。

如何在 Weka 中使用分类机器学习算法

原文:https://machinelearningmastery.com/use-classification-machine-learning-algorithms-weka/

最后更新于 2019 年 8 月 22 日

Weka 提供了大量的分类算法。

大量可用的机器学习算法是使用 Weka 平台解决机器学习问题的好处之一。

在这篇文章中,你将发现如何在 Weka 中使用 5 种顶级机器学习算法。

看完这篇文章你会知道:

  • 大约 5 个顶级机器学习算法,你可以用在你的分类问题上。
  • 如何在 Weka 中使用 5 种顶级分类算法?
  • 5 种顶级分类算法的关键配置参数。

用我的新书用 Weka 启动你的项目,包括的分步教程和清晰的截图所有示例。

我们开始吧。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如何在 Weka 中使用分类机器学习算法唐·格雷厄姆摄,版权所有。

分类算法之旅概述

我们将带您参观 Weka 的 5 种顶级分类算法。

我们介绍的每种算法都将根据其工作原理进行简要描述,关键算法参数将突出显示,算法将在 Weka Explorer 界面中演示。

我们将回顾的 5 种算法是:

  1. 逻辑回归
  2. 朴素贝叶斯
  3. 决策图表
  4. k-最近邻
  5. 支持向量机

这 5 个算法可以作为你分类问题的起点。

一个标准的机器学习分类问题将被用来演示每个算法。具体来说,电离层二分类问题。这是一个很好的数据集来演示分类算法,因为输入变量是数字,并且都有相同的规模,问题只有两个类别可以区分。

每个例子都描述了来自大气层的雷达回波的特性,任务是预测电离层中是否有结构。有 34 个数值输入变量,通常具有相同的规模。您可以在 UCI 机器学习资源库上了解更多关于该数据集的信息。最高的结果大约是 98%的准确率。

启动 Weka 浏览器:

  1. 打开 Weka 图形用户界面选择器。
  2. 单击“浏览器”按钮打开 Weka 浏览器。
  3. 数据/电离层. arff 文件加载电离层数据集。
  4. 单击“分类”打开“分类”选项卡。

逻辑回归

逻辑回归是一种二分类算法。

它假设输入变量是数字,并且具有高斯(钟形曲线)分布。这最后一点不一定是真的,因为如果你的数据不是高斯的,逻辑回归仍然可以获得好的结果。在电离层数据集的情况下,一些输入属性具有类似高斯的分布,但许多属性没有。

该算法学习每个输入值的系数,该系数被线性组合成回归函数,并使用逻辑斯蒂(s 形)函数进行变换。逻辑回归是一种快速简单的技术,但在某些问题上非常有效。

逻辑回归只支持二进制分类问题,尽管 Weka 实现已经被修改以支持多类分类问题。

选择逻辑回归算法:

  1. 点击“选择”按钮,选择“功能”组下的“物流”。
  2. 单击算法名称查看算法配置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

逻辑回归算法的 Weka 配置

该算法可以运行固定的迭代次数(maxIts),但默认情况下将一直运行,直到估计算法已经收敛。

该实现使用了一种正则化类型的岭估计器。该方法试图在训练期间通过最小化模型所学习的系数来简化模型。岭参数定义了对算法施加多大的压力来减小系数的大小。将此设置为 0 将关闭此正则化。

  1. 单击“确定”关闭算法配置。
  2. 单击“开始”按钮,在电离层数据集上运行算法。

可以看到,在默认配置下,逻辑回归达到了 88%的准确率。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

逻辑回归算法的 Weka 分类结果

朴素贝叶斯

朴素贝叶斯是一种分类算法。传统上,它假设输入值是标称的,尽管它通过假设分布来支持数值输入。

朴素贝叶斯使用贝叶斯定理的简单实现(因此是朴素的),其中每个类的先验概率是根据训练数据计算的,并且被假设为彼此独立(技术上称为条件独立)。

这是一个不切实际的假设,因为我们期望变量相互作用并相互依赖,尽管这一假设使概率快速且易于计算。即使在这种不切实际的假设下,朴素贝叶斯也被证明是一种非常有效的分类算法。

朴素贝叶斯计算每个类的后验概率,并对概率最高的类进行预测。因此,它支持二分类和多类分类问题。

选择朴素贝叶斯算法:

  1. 单击“选择”按钮,在“贝叶斯”组下选择“天真贝叶斯”。
  2. 单击算法名称查看算法配置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

朴素贝叶斯算法的 Weka 配置

默认情况下,假设每个数字属性都是高斯分布。

您可以将算法更改为使用带有 useKernelEstimator 参数的核估计器,这可能会更好地匹配数据集中属性的实际分布。或者,您可以使用 useSupervisedDiscretization 参数自动将数字属性转换为名义属性。

  1. 单击“确定”关闭算法配置。
  2. 单击“开始”按钮,在电离层数据集上运行算法。

可以看到,在默认配置下,朴素贝叶斯达到了 82%的准确率。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

朴素贝叶斯算法的 Weka 分类结果

你可以使用许多其他风格的朴素贝叶斯算法。

决策图表

决策树可以支持分类和回归问题。

决策树最近被称为分类和回归树。他们通过创建一棵树来评估一个数据实例,从树的根开始,将城镇移动到叶子(根),直到可以进行预测。创建决策树的过程是贪婪地选择最佳分割点以进行预测,并重复该过程,直到树达到固定深度。

在构建树之后,对其进行修剪,以提高模型推广到新数据的能力。

选择决策树算法:

  1. 单击“选择”按钮,选择“树”组下的“重新生成树”。
  2. 单击算法名称查看算法配置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

决策树算法的 Weka 配置

树的深度是自动定义的,但是深度可以在 maxDepth 属性中指定。

您也可以通过将“不运行”参数设置为“真”来选择关闭修剪,尽管这可能会导致更差的表现。

minNum 参数定义了从训练数据构建树时,树在叶节点中支持的最小实例数。

  1. 单击“确定”关闭算法配置。
  2. 单击“开始”按钮,在电离层数据集上运行算法。

可以看到,在默认配置下,决策树算法达到了 89%的准确率。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

决策树算法的 Weka 分类结果

你可以使用的另一个更高级的决策树算法是 C4.5 算法,在 Weka 中称为 J48。

您可以通过右键单击“结果列表”并单击“可视化树”来查看在整个训练数据集上准备的决策树可视化。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

决策树的 Weka 可视化

k-最近邻

k 近邻算法支持分类和回归。也简称 kNN。

它的工作原理是存储整个训练数据集,并在进行预测时查询它来定位 k 个最相似的训练模式。因此,除了原始训练数据集之外,没有其他模型,并且执行的唯一计算是在请求预测时查询训练数据集。

这是一个简单的算法,但是除了假设数据实例之间的距离在进行预测时有意义之外,它并没有对问题做出太多假设。因此,它通常会获得非常好的表现。

在对分类问题进行预测时,KNN 将采用训练数据集中 k 个最相似实例的模式(最常见的类别)。

选择 k 近邻算法:

  1. 点击“选择”按钮,选择“懒惰”组下的“IBk”。
  2. 单击算法名称查看算法配置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

k 近邻算法的 Weka 配置

邻域的大小由 k 参数控制。

例如,如果 k 设置为 1,则使用与请求预测的给定新模式最相似的单一训练实例进行预测。k 的常用值是 3、7、11 和 21,对于较大的数据集,k 值较大。Weka 可以通过将 crossValidate 参数设置为 True,在算法内部使用交叉验证来自动发现 k 的一个好值。

另一个重要参数是使用的距离度量。这是在控制训练数据存储和搜索方式的近邻搜索算法中配置的。

默认为线性搜索。单击此搜索算法的名称将提供另一个配置窗口,您可以在其中选择距离函数参数。默认情况下,欧氏距离用于计算实例之间的距离,这对于相同比例的数值数据很有好处。如果你的属性在度量或类型上不同,曼哈顿距离是很好的选择。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

k 近邻算法中搜索算法的 Weka 配置

在你的问题上尝试一套不同的 k 值和距离度量是一个好主意,看看什么效果最好。

  1. 单击“确定”关闭算法配置。
  2. 单击“开始”按钮,在电离层数据集上运行算法。

可以看到,在默认配置下,kNN 算法的准确率达到了 86%。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

k 近邻的 Weka 分类结果

支持向量机

支持向量机是为二进制分类问题开发的,尽管该技术已经扩展到支持多类分类和回归问题。该算法通常简称为 SVM。

SVM 是为数字输入变量开发的,虽然会自动将标称值转换为数值。输入数据在使用前也要标准化。

SVM 的工作是找到一条线,最好地将数据分成两组。这是使用一个优化过程来完成的,该过程只考虑训练数据集中最接近类的最佳分隔线的那些数据实例。这些实例被称为支持向量,因此得名。

在几乎所有感兴趣的问题中,不能画一条线来整齐地划分类别,因此在这条线周围添加了一个边距来放松约束,允许一些实例被错误分类,但总体上允许更好的结果。

最后,很少有数据集可以用一条直线分开。有时需要标出一条有曲线甚至多边形区域的线。这是通过 SVM 将数据投影到更高维度的空间来绘制线条和进行预测来实现的。不同的内核可以用来控制投影和分离类的灵活性。

选择 SVM 算法:

  1. 点击“选择”按钮,在“功能”组下选择“SMO”。
  2. 单击算法名称查看算法配置。

SMO 指的是 SVM 实现中使用的特定高效优化算法,它代表顺序最小优化。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

支持向量机算法的 Weka 配置

在 Weka 中被称为复杂性参数的 C 参数控制着画线来分隔类的过程的灵活性。值 0 不允许超出边距,而默认值为 1。

SVM 的一个关键参数是要使用的内核类型。最简单的核是线性核,它用直线或超平面分隔数据。Weka 中的缺省值是一个多项式内核,它将使用一条曲线或摆动线来分隔类,多项式越高,摆动越多(指数值)。

一个流行和强大的内核是径向基核或径向基函数核,它能够学习封闭的多边形和复杂的形状来划分类别。

在您的问题上尝试一套不同的内核和 C(复杂性)值是一个好主意,看看什么最有效。

  1. 单击“确定”关闭算法配置。
  2. 单击“开始”按钮,在电离层数据集上运行算法。

可以看到,在默认配置下,SVM 算法的准确率达到了 88%。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

支持向量机算法的 Weka 分类结果

摘要

在这篇文章中,你发现了如何在 Weka 中使用顶级分类机器学习算法。

具体来说,您了解到:

  • 5 个顶级分类算法,你可以自己试一试。
  • 每个算法要调整的关键配置参数。
  • 如何在 Weka 中使用每个算法?

你对 Weka 里的分类算法或者这个帖子有什么疑问吗?在评论中提问,我会尽力回答。

如何在 Weka 中使用集成机器学习算法

原文:https://machinelearningmastery.com/use-ensemble-machine-learning-algorithms-weka/

最后更新于 2019 年 8 月 22 日

集成算法是一类强大的机器学习算法,它结合了来自多个模型的预测。

使用 Weka 进行应用机器学习的一个好处是,可以使用这么多不同的集成机器学习算法。

在这篇文章中,你将发现如何在 Weka 中使用集成机器学习算法。

看完这篇文章你会知道:

  • 大约 5 种顶级集成机器学习算法。
  • 如何在 Weka 中使用顶级集成算法?
  • 关于 Weka 中集成算法的关键配置参数。

用我的新书用 Weka 启动你的项目,包括的分步教程和清晰的截图所有示例。

我们开始吧。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如何在 Weka
中使用集成机器学习算法。

集成算法综述

我们将带您参观 Weka 的 5 种顶级集成机器学习算法。

我们介绍的每种算法都将根据其工作原理进行简要描述,关键算法参数将突出显示,算法将在 Weka Explorer 界面中演示。

我们将回顾的 5 种算法是:

  1. 制袋材料
  2. 随机森林
  3. adaboost 算法
  4. 投票
  5. 堆垛

这是 5 个算法,你可以在你的问题上尝试,以提高表现。

一个标准的机器学习分类问题将被用来演示每个算法。

具体来说,电离层二分类问题。这是一个很好的数据集来演示分类算法,因为输入变量是数字,并且都有相同的规模,问题只有两个类别可以区分。

每个例子都描述了来自大气层的雷达回波的特性,任务是预测电离层中是否有结构。有 34 个数值输入变量,通常具有相同的规模。您可以在 UCI 机器学习资源库上了解更多关于该数据集的信息。最高的结果大约是 98%的准确率。

启动 Weka 浏览器:

  1. 打开 Weka 图形用户界面选择器。
  2. 单击“浏览器”按钮打开 Weka 浏览器。
  3. 数据/电离层. arff 文件加载电离层数据集
  4. 单击“分类”打开“分类”选项卡。

引导聚合(装袋)

Bootstrap Aggregation(简称 Bagging)是一种集成算法,可用于分类或回归。

Bootstrap 是一种统计估计技术,其中像均值这样的统计量是从数据的多个随机样本中估计出来的(带有替换)。当您拥有有限的数据量,并且对统计量的更可靠估计感兴趣时,这是一种有用的技术。

这个样本原理可以用于机器学习模型。您的训练数据的多个随机样本被替换绘制,并用于训练多个不同的机器学习模型。然后使用每个模型进行预测,并对结果进行平均以给出更稳健的预测。

这种技术最适合用于低偏差和高方差的模型,这意味着它们所做的预测高度依赖于训练它们的特定数据。最常用的符合高方差要求的装袋算法是决策树。

选择装袋算法:

  1. 点击“选择”按钮,选择“元”组下的“装袋”。
  2. 单击算法名称查看算法配置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

装袋算法的 Weka 配置

装袋中的一个关键配置参数是被装袋的模型类型。默认值是 REPTree,它是标准决策树的 Weka 实现,也称为分类和回归树或简称 CART。这是在分类器参数中指定的。

每个随机样本的大小在 bagSizePercent 中指定,bagSizePercent 是原始训练数据集的百分比大小。默认值为 100%,这将创建一个与训练数据集大小相同的新随机样本,但组成不同。

这是因为随机样本是用替换绘制的,这意味着每次从训练数据集中随机绘制一个实例并添加到样本中时,它也会被添加回训练数据集中(替换),这意味着它可以被再次选择并添加两次或更多次到样本中。

最后,袋子的数量(和分类器的数量)可以在 numIterations 参数中指定。默认值为 10,尽管通常使用数百或数千的值。继续增加数字操作的价值,直到您不再看到模型的改进,或者内存耗尽。

  1. 单击“确定”关闭算法配置。
  2. 单击“开始”按钮,在电离层数据集上运行算法。

可以看到,在默认配置下,装袋的准确率达到了 91%。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Bagging 算法的 Weka 分类结果

随机森林

随机森林是决策树装袋的扩展,可用于分类或回归。

袋装决策树的缺点是,决策树是使用贪婪算法构建的,该算法在树构建过程的每一步选择最佳分割点。因此,最终得到的树看起来非常相似,这减少了来自所有包的预测的方差,这反过来又损害了所做预测的稳健性。

随机森林是对袋装决策树的改进,它在树创建期间中断了贪婪分割算法,因此分割点只能从输入属性的随机子集中选择。这种简单的改变会大大降低袋装树之间的相似性,进而降低预测结果。

选择随机森林算法:

  1. 单击“选择”按钮,选择“树”组下的“随机森林”。
  2. 单击算法名称查看算法配置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

随机森林算法的 Weka 配置

除了上面列出的装袋参数之外,随机森林的一个关键参数是每个分割点中要考虑的属性数量。在 Weka 中,这可以由 numFeatures 属性控制,该属性默认设置为 0,根据经验规则自动选择值。

  1. 单击“确定”关闭算法配置。
  2. 单击“开始”按钮,在电离层数据集上运行算法。

可以看到,在默认配置下,随机森林的准确率达到 92%。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

随机森林算法的 Weka 分类结果

adaboost 算法

AdaBoost 是一种用于分类问题的集成机器学习算法。

它是一组称为 boosting 的集成方法的一部分,该方法在一系列模型中添加新的机器学习模型,后续模型试图修复先前模型产生的预测误差。AdaBoost 是这类模型的第一个成功实现。

Adaboost 被设计成使用短决策树模型,每个模型有一个决策点。这种矮树通常被称为决策树桩。

第一个模型是按常规构造的。对训练数据集中的每个实例进行加权,并根据模型的整体准确率以及实例分类是否正确来更新权重。随后的模型被训练和添加,直到达到最低准确率或不可能进一步改进。每个模型都根据其技能进行加权,这些权重在结合所有模型对新数据的预测时使用。

选择 AdaBoost 算法:

  1. 点击“选择”按钮,选择“元”组下的“AdaBoostM1”。
  2. 单击算法名称查看算法配置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

AdaBoost 算法的 Weka 配置

AdaBoost 模型中的弱学习器可以由分类器参数指定。

默认值是决策树桩算法,但也可以使用其他算法。除了弱学习器之外,一个关键参数是要创建和添加的系列模型的数量。这可以在 numIterations 参数中指定,默认值为 10。

  1. 单击“确定”关闭算法配置。
  2. 单击“开始”按钮,在电离层数据集上运行算法。

您可以看到,在默认配置下,AdaBoost 实现了 90%的准确率。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

AdaBoost 算法的 Weka 分类结果

投票

投票可能是最简单的集成算法,并且通常非常有效。它可以用于分类或回归问题。

投票通过创建两个或多个子模型来工作。每个子模型进行预测,这些预测以某种方式组合在一起,例如采用预测的平均值或模式,允许每个子模型对结果进行投票。

选择投票算法:

  1. 点击“选择”按钮,选择“元”组下的“投票”。
  2. 单击算法名称查看算法配置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

投票集成算法的 Weka 配置

投票集成的关键参数是子模型的选择。

模型可以在分类器参数的 Weka 中指定。单击此参数可以添加多个分类器。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

投票集成算法的 Weka 算法选择

选择分类器后,单击“编辑”按钮,即可配置该分类器的详细信息。选择子模型的目的是选择做出完全不同预测(不相关预测)的模型。因此,选择非常不同的模型类型是一个很好的经验法则,比如树、基于实例的方法、函数等等。

为投票配置的另一个关键参数是如何组合子模型的预测。这由 combinationRule 参数控制,默认情况下,该参数设置为取概率的平均值。

  1. 单击“确定”关闭算法配置。
  2. 单击“开始”按钮,在电离层数据集上运行算法。

您可以看到,在默认配置下,投票的准确率为 64%。

显然,这种技术效果不佳,因为只选择了 ZeroR 子模型。尝试选择 5 到 10 个不同的子模型。

堆叠概括(堆叠)

堆叠泛化或堆叠简称是投票集成的简单扩展,可用于分类和回归问题。

除了选择多个子模型之外,堆叠还允许您指定另一个模型,以了解如何最好地组合子模型中的预测。因为元模型用于最好地组合子模型的预测,所以这种技术有时被称为混合,就像将预测混合在一起一样。

选择堆叠算法:

  1. 单击“选择”按钮,选择“元”组下的“堆叠”。
  2. 单击算法名称查看算法配置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

堆叠集成算法的 Weka 配置

与投票分类器一样,您可以在分类器参数中指定子模型。

将被训练来学习如何最好地组合来自子模型的预测的模型可以在元分类器参数中指定,默认情况下,该参数被设置为零(多数票或平均值)。对于回归和分类类型问题,通常分别使用线性算法,如线性回归或逻辑回归。这是为了获得子模型预测的简单线性组合的输出。

  1. 单击“确定”关闭算法配置。
  2. 单击“开始”按钮,在电离层数据集上运行算法。

您可以看到,在默认配置下,堆叠的准确率为 64%。

同样,与投票相同,Stacking 取得的结果很差,因为只选择了 ZeroR 子模型。尝试选择 5 到 10 个不同的子模型和一个好的模型来组合预测。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

叠加集成算法的 Weka 分类结果

摘要

在这篇文章中,你发现了如何在 Weka 中使用集成机器学习算法。

具体来说,您了解到:

  • 大约 5 个集成机器学习算法,你可以用在你的问题上。
  • 如何在 Weka 中使用集成机器学习算法?
  • 关于 Weka 中集成机器学习算法的关键配置参数。

你对 Weka 中的集成机器学习算法或者这个帖子有什么疑问吗?在评论中提问,我会尽力回答。

如何在 Weka 中使用机器学习算法

原文:https://machinelearningmastery.com/use-machine-learning-algorithms-weka/

最后更新于 2019 年 8 月 22 日

使用 Weka 平台的一大好处是支持大量的机器学习算法。

你能在你的问题上尝试的算法越多,你对你的问题的了解就越多,你就越有可能发现一个或几个表现最好的算法。

在这篇文章中,你将发现 Weka 支持的机器学习算法。

看完这篇文章你会知道:

  • Weka 支持的不同类型的机器学习算法和要尝试的关键算法。
  • 如何在 Weka 中配置算法,如何保存和加载好的算法配置。
  • 如何了解更多 Weka 支持的机器学习算法?

用我的新书用 Weka 启动你的项目,包括的分步教程和清晰的截图所有示例。

我们开始吧。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如何在 Weka
中使用机器学习算法欧也妮·戈洛夫科摄,版权所有。

Weka 机器学习算法

Weka 有很多机器学习算法。这很棒,这是使用 Weka 作为机器学习平台的一大好处。

不利的一面是,知道使用哪些算法以及何时使用可能会有点让人不知所措。此外,这些算法的名字可能你不熟悉,即使你在其他环境中知道它们。

在这一节中,我们将从 Weka 支持的一些众所周知的算法开始。我们将在这篇文章中学习的内容适用于整个 Weka 平台上使用的机器学习算法,但是探索者是了解更多算法的最佳场所,因为它们都可以在一个简单的地方获得。

  1. 打开 Weka 图形用户界面选择器。
  2. 点击“浏览器”按钮打开 Weka 浏览器。
  3. 在您的 Weka 安装中打开一个数据集,例如来自 data/diabetes.arff 文件的 Pima Indians 数据集。
  4. 单击“分类”打开“分类”选项卡。

浏览器的分类选项卡是您可以了解各种不同算法和探索预测建模的地方。

您可以通过单击“选择”按钮来选择机器学习算法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 选择机器学习算法

点击“选择”按钮,您会看到一个可供选择的机器学习算法列表。他们分为几大类:

  • 贝叶斯:以某种核心方式使用贝叶斯定理的算法,比如朴素贝叶斯。
  • 函数:估计函数的算法,如线性回归。
  • 懒惰:使用懒惰学习的算法,比如 k 近邻。
  • meta :使用或组合多种算法的算法,如 Ensembles。
  • 杂项:不完全适合其他组的实现,比如运行一个保存的模型。
  • 规则:使用规则的算法,比如 One Rule。
  • :使用决策树的算法,比如随机森林。

该选项卡称为“分类”,算法列在名为“分类器”的总体组下。然而,Weka 支持分类(预测一个类别)和回归(预测一个数值)预测建模问题。

您正在处理的问题类型由您希望预测的变量定义。在“分类”选项卡上,这是在测试选项下面选择的。默认情况下,Weka 选择数据集中的最后一个属性。如果属性是名义上的,那么 Weka 假设你正在处理一个分类问题。如果属性是数字,Weka 假设您正在处理一个回归问题。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 选择一个输出属性进行预测

这很重要,因为您正在处理的问题的类型决定了您可以使用什么算法。例如,如果您正在处理一个分类问题,则不能使用像线性回归这样的回归算法。另一方面,如果你正在处理一个回归问题,你不能使用像逻辑回归这样的分类算法。

注意如果你被“回归”这个词搞糊涂了,那是可以的。令人困惑。回归是统计学中的一个历史词汇。它过去意味着为数字输出制作模型(回归)。它现在意味着一些算法的名字和预测一个数值。

Weka 将灰显您选择的问题不支持的算法。许多机器学习算法可以用于分类和回归。因此,无论您选择什么问题,您都可以使用一大套算法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

某些问题类型无法使用 Weka 算法

使用哪种算法

通常,在处理机器学习问题时,你无法事先知道哪种算法最适合你的问题。

如果你有足够的信息知道哪种算法能达到最好的表现,你可能就不会做应用机器学习了。你会做一些其他的事情,比如统计。

因此,解决办法是针对你的问题尝试一套算法,看看什么最有效。尝试一些强大的算法,然后加倍使用表现最好的 1-3 算法。他们会让你了解一般类型的算法表现良好,或学习策略,可能比平均水平更好地挑选出你的数据中的隐藏结构。

Weka 中的一些机器学习算法有非标准名称。你可能已经知道一些机器学习算法的名字,但是被 Weka 中的算法名字搞糊涂了。

下面是你应该考虑尝试的 10 个顶级机器学习算法的列表,包括它们的标准名称和 Weka 中使用的名称。

线性机器学习算法

线性算法假设预测属性是输入属性的线性组合。

  • 线性回归:函数。线性回归
  • 逻辑回归:函数。物流的

非线性机器学习算法

非线性算法不会对预测的输入属性和输出属性之间的关系做出强有力的假设。

  • 朴素贝叶斯:贝叶斯。天真的贝叶斯
  • 决策树(特别是 C4.5 变种):树。J48
  • k-最近的邻居(也叫 KNN:懒。牛传染性角膜结膜炎
  • 支持向量机(也叫 SVM):函数。高年资军医(senior medical officer)
  • 神经网络:功能。多层感知器

集成机器学习算法

集成方法结合了来自多个模型的预测,以便做出更稳健的预测。

  • 随机森林:树木。随机森林
  • 引导聚合(也称为装袋):元。制袋材料
  • 堆叠概括(也称为堆叠或混合):元。堆垛

Weka 有大量的集成方法,可能是所有流行的机器学习框架中最大的一种。

如果你正在寻找一个专门使用 Weka 的领域,Weka 是平台除了易用性之外的真正力量来源,我会指出对集成技术的支持。

机器学习算法配置

一旦选择了机器学习算法,就可以对其进行配置。

配置是可选的,但强烈推荐。Weka 巧妙地为每个机器学习算法选择了合理的默认值,这意味着您可以选择一个算法,并在不太了解它的情况下立即开始使用它。

为了从算法中获得最佳结果,您应该将其配置为对您的问题表现理想。

如何为您的问题配置算法?

同样,这是另一个悬而未决的问题,事先不可知。给定的算法确实有启发法可以指导你,但它们不是万灵药。真正的答案是针对你的问题系统地测试一套给定算法的标准配置。

您可以在 Weka 中配置一个机器学习算法,方法是在选择它后单击它的名称。这将启动一个窗口,显示算法的所有配置详细信息。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 配置机器学习算法

您可以通过将鼠标悬停在每个选项上来了解每个配置选项的含义,该选项将显示描述配置选项的工具提示。

有些选项给你一组有限的值供你选择,其他的选择整数或实数。尝试实验和研究,以便提出 3 到 5 个标准的算法配置来解决你的问题。

您可以使用的专业技巧是将标准算法配置保存到文件中。单击算法配置底部的“保存”按钮。输入一个文件名,明确标注算法名称和要保存的配置类型。您可以稍后在 Weka 浏览器、实验者和 Weka 的其他地方加载算法配置。当您确定了一套标准算法配置,并希望在一个又一个问题上重用时,这是最有价值的。

您可以通过单击算法配置窗口上的“确定”按钮来采用和使用算法配置。

获取更多关于算法的信息

Weka 提供了每个支持机器学习算法的更多信息。

在算法配置窗口中,您会注意到两个按钮来了解更多关于算法的信息。

更多信息

单击“更多”按钮将显示一个窗口,总结算法的实现和所有算法配置属性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

关于算法的更多信息

这有助于更全面地了解算法如何工作以及如何进行配置。它还经常包括对作为算法实现基础的书籍或论文的引用。为了更好地了解如何从给定算法中获得最大收益,这些都是可以追踪和回顾的好资源。

作为一个初学者,阅读如何更好地配置算法并不是一件容易的事情,因为它可能会让你感到有些不知所措,但它是一个专业的技巧,当你对应用机器学习有更多的经验时,它将帮助你以后学习得更多更快。

算法能力

单击“功能”按钮将为您提供算法功能的快照。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

算法的 Weka 能力

最重要的是,这有助于了解算法如何处理丢失的数据以及它对您的问题的任何其他重要期望。

查看这些信息可以让您了解如何在数据上创建新的不同视图,以提高一个或多个算法的表现。

摘要

在这篇文章中,你在 Weka 机器学习工作台中发现了对机器学习算法的支持。

具体来说,您了解到:

  • Weka 有大量的机器学习算法可供选择,用于分类和回归问题。
  • 您可以轻松配置每个机器学习算法,并保存和加载一组标准配置。
  • 您可以更深入地了解给定算法的细节,甚至发现它的来源,以便了解如何获得最佳表现。

你对 Weka 里的机器学习算法或者这个帖子有什么疑问吗?在评论中提问,我会尽力回答。

如何在 Weka 中使用回归机器学习算法

原文:https://machinelearningmastery.com/use-regression-machine-learning-algorithms-weka/

最后更新于 2019 年 8 月 22 日

Weka 平台上有大量可用的回归算法。

Weka 支持的大量机器学习算法是使用该平台的最大好处之一。

在这篇文章中,你将发现如何在 Weka 中使用顶级回归机器学习算法。

看完这篇文章你会知道:

  • Weka 支持的 5 个顶级回归算法左右。
  • 如何在 Weka 中使用回归机器学习算法进行预测建模。
  • 关于 Weka 中回归算法的关键配置选项。

用我的新书用 Weka 启动你的项目,包括的分步教程和清晰的截图所有示例。

我们开始吧。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如何在 Weka
中使用回归机器学习算法。

回归算法综述

我们将带您参观 Weka 的 5 个顶级回归算法。

我们介绍的每种算法都将根据其工作原理进行简要描述,关键算法参数将突出显示,算法将在 Weka Explorer 界面中演示。

我们将回顾的 5 种算法是:

  1. 线性回归
  2. k-最近邻
  3. 决策图表
  4. 支持向量机
  5. 多层感知器

这 5 个算法可以作为你回归问题的起点。

一个标准的机器学习回归问题将被用来演示每个算法。

具体来说,波士顿房价数据集。每个实例都描述了波士顿郊区的房产,任务是以千美元为单位预测房价。有 13 个不同尺度的数值输入变量描述郊区的特性。您可以在 UCI 机器学习资源库上了解更多关于该数据集的信息。

启动 Weka 浏览器:

  1. 打开 Weka 图形用户界面选择器。
  2. 单击“浏览器”按钮打开 Weka 浏览器。
  3. housing.arff 文件加载波士顿房价数据集。
  4. 单击“分类”打开“分类”选项卡。

让我们从线性回归算法开始。

线性回归

线性回归只支持回归类型的问题。

它通过估计最适合训练数据的直线或超平面的系数来工作。这是一个非常简单的回归算法,训练速度很快,并且如果数据的输出变量是输入的线性组合,它可以有很好的表现。

最好先对您的问题进行线性回归评估,然后再使用更复杂的算法,以防它表现良好。

选择线性回归算法:

  1. 单击“选择”按钮,选择“函数”组下的“线性回归”。
  2. 单击算法名称查看算法配置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

线性回归的 Weka 构型

如果训练数据具有高度相关的输入属性,线性回归的表现可能会降低。Weka 可以通过将 eliminateColinearAttributes 设置为 True(默认值)来自动检测和移除高度相关的输入属性。

此外,与输出变量无关的属性也会对表现产生负面影响。Weka 可以通过设置 attributeSelectionMethod 自动执行特征选择,只选择那些相关的属性。这是默认启用的,可以禁用。

最后,Weka 实现使用脊正则化技术来降低学习模型的复杂性。它通过最小化学习系数的绝对和的平方来做到这一点,这将防止任何特定的系数变得太大(回归模型中复杂性的标志)。

  1. 单击“确定”关闭算法配置。
  2. 单击“开始”按钮,在波士顿房价数据集中运行该算法。

您可以看到,在默认配置下,线性回归的 RMSE 值为 4.9。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

线性回归的 Weka 结果

k-最近邻

k 近邻算法支持分类和回归。也简称 kNN。它的工作原理是存储整个训练数据集,并在进行预测时查询它来定位 k 个最相似的训练模式。

因此,除了原始训练数据集之外,没有其他模型,并且执行的唯一计算是在请求预测时查询训练数据集。

这是一个简单的算法,但是除了假设数据实例之间的距离在进行预测时有意义之外,它并没有对问题做出太多假设。因此,它通常会获得非常好的表现。

当对回归问题进行预测时,KNN 将取训练数据集中 k 个最相似实例的平均值。选择 KNN 算法:

  1. 点击“选择”按钮,选择“懒惰”组下的“IBk”。
  2. 单击算法名称查看算法配置。

在 Weka,KNN 被称为 IBk,代表基于实例的 k。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

WEKA k-最近邻居配置

邻域的大小由 k 参数控制。例如,如果设置为 1,则使用与请求预测的给定新模式最相似的单一训练实例进行预测。k 的常用值是 3、7、11 和 21,对于较大的数据集,k 值较大。Weka 可以通过将 crossValidate 参数设置为 True,在算法内部使用交叉验证来自动发现 k 的一个好值。

另一个重要参数是使用的距离度量。这是在控制训练数据存储和搜索方式的近邻搜索算法中配置的。默认为线性搜索。单击此搜索算法的名称将提供另一个配置窗口,您可以在其中选择距离函数参数。默认情况下,欧氏距离用于计算实例之间的距离,这对于相同比例的数值数据很有好处。如果你的属性在度量或类型上不同,曼哈顿距离是很好的选择。

在你的问题上尝试一套不同的 k 值和距离度量是一个好主意,看看什么效果最好。

  1. 单击“确定”关闭算法配置。
  2. 单击“开始”按钮,在波士顿房价数据集中运行该算法。

您可以看到,在默认配置下,KNN 算法实现了 4.6 的 RMSE。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

k 近邻算法的 Weka 回归结果

决策图表

决策树可以支持分类和回归问题。

决策树最近被称为分类和回归树或 CART。他们通过创建一棵树来评估一个数据实例,从树的根开始,将城镇移动到叶子(因为树是用反向透视绘制的,所以是根),直到可以进行预测。创建决策树的过程是贪婪地选择最佳分割点以进行预测,并重复该过程,直到树达到固定深度。

在构建树之后,对其进行修剪,以提高模型概括新数据的能力。

选择决策树算法:

  1. 单击“选择”按钮,选择“树”组下的“重新生成树”。
  2. 单击算法名称查看算法配置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

决策树算法的 Weka 配置

树的深度是自动定义的,但是可以在 maxDepth 属性中指定深度。

您也可以通过将“不运行”参数设置为“真”来选择关闭修剪,尽管这可能会导致更差的表现。

minNum 参数定义了从训练数据构建树时,树在叶节点中支持的最小实例数。

  1. 单击“确定”关闭算法配置。
  2. 单击“开始”按钮,在波士顿房价数据集中运行该算法。

您可以看到,在默认配置下,决策树算法的 RMSE 值为 4.8。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

决策树算法的 Weka 回归结果

支持向量回归

支持向量机是为二进制分类问题开发的,尽管该技术已经扩展到支持多类分类和回归问题。SVM 对回归的适应简称为支持向量回归或支持向量回归。

SVM 是为数字输入变量开发的,虽然会自动将标称值转换为数值。输入数据在使用前也要标准化。

不像 SVM 那样找到一条线来最好地将训练数据分成类,支持向量回归机的工作原理是找到一条最适合的线来最小化成本函数的误差。这是使用优化过程来完成的,该过程只考虑训练数据集中最接近具有最小成本的线的那些数据实例。这些实例被称为支持向量,因此得名。

在几乎所有感兴趣的问题中,都不能画出一条最适合数据的线,因此在这条线周围增加了一个余量来放松约束,允许一些不好的预测被容忍,但允许总体上有更好的结果。

最后,很少有数据集可以用一条直线拟合。有时需要标出一条有曲线甚至多边形区域的线。这是通过将数据投影到更高维度的空间来绘制线条和进行预测来实现的。不同的内核可以用来控制投影和灵活性。

选择支持向量回归算法:

  1. 单击“选择”按钮,并在“功能”组下选择“SMOreg”。
  2. 单击算法名称查看算法配置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

支持向量回归算法的 Weka 配置

在 Weka 中称为复杂性参数的 C 参数控制绘制线条以适合数据的过程的灵活性。值 0 不允许超出边距,而默认值为 1。

SVM 的一个关键参数是要使用的内核类型。最简单的核是线性核,它用直线或超平面分隔数据。Weka 中的缺省值是多项式核,它将使用曲线或摆动线来拟合数据,多项式越高,摆动越多(指数值)。

多项式核的默认指数为 1,这使得它相当于一个线性核。一种流行且强大的核是径向基核或径向基函数核,其能够学习封闭多边形和复杂形状来拟合训练数据。

在您的问题上尝试一套不同的内核和 C(复杂性)值是一个好主意,看看什么最有效。

  1. 单击“确定”关闭算法配置。
  2. 单击“开始”按钮,在波士顿房价数据集中运行该算法。

您可以看到,在默认配置下,支持向量回归算法实现了 5.1 的 RMSE。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

支持向量回归算法的 Weka 回归结果

多层感知器

多层感知器算法支持回归和分类问题。

它也被称为人工神经网络或简称神经网络。

神经网络是一种用于预测建模的复杂算法,因为有太多配置参数只能通过直觉和大量试错来有效调整。

这是一种算法,灵感来自大脑中的生物神经网络模型,其中被称为神经元的小处理单元被组织成层,如果配置良好,这些层能够逼近任何功能。在分类中,我们感兴趣的是近似基础函数,以便最好地区分类别。在回归问题中,我们感兴趣的是逼近一个最适合真实值输出的函数。

选择多层感知器算法:

  1. 单击“选择”按钮,并在“功能”组下选择“多层感知器”。
  2. 单击算法名称查看算法配置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

多层感知器算法的 Weka 配置

您可以手动指定模型使用的神经网络的结构,但不建议初学者这样做。

默认值将自动设计网络,并在您的数据集上进行训练。默认情况下,将创建单个隐藏层网络。您可以在“隐藏层”参数中指定隐藏层的数量,默认设置为自动“a”。

您也可以使用图形用户界面来设计网络结构。这可能很有趣,但建议您使用简单训练的图形用户界面并测试训练数据的分割,否则您将被要求为交叉验证的 10 个折叠中的每一个设计一个网络。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

多层感知器算法的 Weka 图形用户界面设计

您可以通过设置学习率来指定每个时期更新模型的量来配置学习过程。常用值很小,例如介于 0.3(默认值)和 0.1 之间的值。

学习过程可以进一步调整动量(默认设置为 0.2)以继续更新权重,即使不需要进行任何更改,以及衰减(设置衰减为真),这将随着时间的推移降低学习率,以便在训练开始时执行更多的学习,而在结束时执行更少的学习。

  1. 单击“确定”关闭算法配置。
  2. 单击“开始”按钮,在波士顿房价数据集中运行该算法。

您可以看到,在默认配置下,多层感知器算法实现了 4.7 的 RMSE。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 回归结果多层感知器算法

摘要

在这篇文章中,你发现了 Weka 中的回归算法。

具体来说,您了解到:

  • 大约 5 种最常用的回归算法可以用于预测建模。
  • 如何在 Weka 中运行回归算法?
  • 关于 Weka 中回归算法的关键配置选项。

你对 Weka 里的回归算法或者这个帖子有什么疑问吗?在评论中提问,我会尽力回答。

什么是 Weka 机器学习工作台

原文:https://machinelearningmastery.com/what-is-the-weka-machine-learning-workbench/

最后更新于 2020 年 12 月 10 日

机器学习是一个迭代的过程,而不是一个线性的过程,随着对所研究问题的了解越来越多,需要重新审视每一步。这个迭代过程可能需要为每个过程使用许多不同的工具、程序和脚本。

机器学习工作台是一个平台或环境,支持和促进一系列机器学习活动,减少或消除对多种工具的需求。

像 R 这样的一些统计和机器学习工作台提供了非常先进的工具,但是需要大量的脚本和编程形式的手动配置。这些工具也可能是脆弱的,由学者编写或为学者编写,而不是编写为健壮的并在生产环境中使用。

用我的新书用 Weka 启动你的项目,包括的分步教程和清晰的截图所有示例。

什么是 Weka

Weka 机器学习工作台是一个现代化的应用机器学习平台。Weka 是一个缩写,代表怀卡托知识分析环境。这也是一种新西兰鸟“T2”的名字。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我喜欢宣传的 Weka 的五个特点是:

  • 开源:在 GNU GPL 下作为开源软件发布。它是双重许可的,Pentaho 公司拥有在自己的产品中使用商业智能平台的独家许可。
  • 图形界面:有图形用户界面(GUI)。这让你不用编程就能完成你的机器学习项目。
  • 命令行界面:软件的所有功能都可以从命令行使用。这对于编写大型作业的脚本非常有用。
  • Java API :它是用 Java 编写的,提供了一个有很好文档记录的 API,可以促进集成到您自己的应用程序中。请注意,GNU GPL 意味着反过来你的软件也必须作为 GPL 发布。
  • 文档:有书籍、手册、wikis、MOOC 课程可以训练你如何有效使用平台。

我推广 Weka 的主要原因是因为初学者可以使用图形界面完成应用机器学习的过程,而无需进行任何编程。这是一件大事,因为掌握流程、处理数据和实验算法是初学者应该学习的,而不是学习另一种脚本语言。

Weka 图形用户界面简介

现在我想展示一下图形用户界面,并鼓励您下载并与 Weka 一起玩。工作台提供了三种解决问题的主要方法:探索者用于玩游戏和尝试,而实验者用于受控实验,而知识流用于为你的问题图形化地设计一个管道。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 加载器接口

Weka 探险家

探索者是你处理你的数据,思考什么样的转换应用到你的数据,什么样的算法你想在实验中运行的地方。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 浏览器界面

浏览器界面分为 5 个不同的选项卡:

  • 预处理:加载一个数据集,将数据操作成你想要使用的表单。
  • 分类:选择并运行分类和回归算法,对你的数据进行运算。
  • 聚类:在数据集上选择并运行聚类算法。
  • 关联:运行关联算法,从数据中提取洞察。
  • 选择属性:对你的数据运行属性选择算法,选择那些与你想要预测的特征相关的属性。
  • 可视化:可视化属性之间的关系。

Weka 实验者

这个界面用于设计你选择的算法和数据集的实验,运行实验和分析结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 实验者界面

用于分析结果的工具非常强大,允许您考虑和比较在多次运行中具有统计意义的结果。

知识流动

应用机器学习是一个过程,知识流界面允许您以图形方式设计该过程,并运行您创建的设计。这包括输入数据的加载和转换、算法的运行和结果的呈现。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Weka 知识流界面

这是用图形解决复杂问题的强大界面和隐喻。

入门技巧

以下是一些快速起床和跑步的建议:

立即下载 Weka

它支持三个主要平台:视窗、OS X 和 Linux。找到适合您平台的发行版,下载、安装并启动它。您可能必须首先安装 Java。该安装包括许多标准实验数据集(在数据目录中),您可以加载和练习。

阅读 Weka 文档

下载包括一个 PDF 手册(WekaManual.pdf),可以让你很快跟上速度。它非常详细和全面的截图。网上有大量的补充文档,请查看:

别忘了书。如果你进入了 Weka,那么买本书。它提供了对应用机器学习的介绍以及对 Weka 平台本身的介绍。强烈推荐。

Weka 的扩展和插件

有很多插件算法、扩展甚至平台都建立在 Weka 之上:

Weka 在线课程

有两门在线课程用 Weka 教授数据挖掘:

  • 用 Weka 进行数据挖掘。你可以在 YouTube 上免费观看本课程的所有视频。
  • 使用 Weka 进行更多数据挖掘。

Rushdi Shams 有一个令人惊叹的 YouTube 视频通道,向您展示如何在 Weka 中完成许多特定任务。点击这里查看他的 Weka YouTube 通道。

你用过 Weka 吗?留下评论,分享你的经历。

机器学习是一种人工智能领域的研究,通过让计算机从数据中模式中学习和改进,可以让计算机具备从经验中学习的能力。R是一种流行的编程语言,被广泛用于数据分析和统计学习。在R中,可以使用不同的机器学习算法来处理和分析数据。 "Machine Learning Mastery with R" 是一本书籍或教程,旨在帮助读者掌握使用R进行机器学习的技能。该书可能包含以下内容: 1. R的基础知识:介绍R编程语言的基本语法和数据结构,帮助读者理解如何在R环境中进行数据处理和分析。 2. 机器学习算法:介绍常见的机器学习算法,如线性回归、逻辑回归、决策树、随机森林等,并提供使用R实现这些算法的示例。 3. 特征工程:介绍如何选择和处理数据的特征,以提高机器学习算法的性能。这可能包括特征选择、特征缩放和特征转换等技术。 4. 模型评估和调优:介绍如何评估和优化机器学习模型的性能。这可能包括交叉验证、网格搜索和模型选择等技术。 5. 实际案例:提供一些真实世界的案例研究,展示如何应用机器学习和R来解决实际问题。 通过学习"Machine Learning Mastery with R",读者可以了解机器学习的基本概念和技术,并掌握使用R语言进行机器学习的实践技能。这将使他们能够在实际项目中应用机器学习算法,从而更好地理解和分析数据,并做出准确的预测和决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值