深圳热线企业

使用Weka在几分钟内建立决策树

2020-07-28 14:31:29 来源:

对于非技术背景的人来说,机器学习可能会令人生畏。所有机器学习工作似乎都需要对Python(或R)有良好的了解。

那么非程序员如何获得编码经验呢?这不是小菜一碟!

这是个好消息-有很多工具可以让我们无需编写代码即可执行机器学习任务。您可以在漂亮的图形界面中轻松地从头开始构建算法,例如决策树。那不是梦吗?这些工具(例如Weka)可帮助我们主要处理两件事:

快速建立机器学习模型(例如决策树),并了解算法的性能。以后可以对其进行修改和构建

这是向客户/您的领导团队展示您正在使用什么的理想选择

本文将向您展示如何在没有任何编程知识的情况下使用Weka中的决策树解决分类和回归问题!

但是,如果您热衷于编程和机器学习,那么我建议您参加以下精心策划的课程:

数据科学用Python

应用机器学习

目录

机器学习中的分类与回归

了解决策树

在Weka中探索数据集

在Weka中使用决策树进行分类

Weka中的决策树参数

在Weka中可视化决策树

在Weka中使用决策树进行回归

机器学习中的分类与回归

首先让我快速总结一下机器学习中的分类和回归。在深入决策树之前了解这些概念很重要。

一个分类 的问题是关于教你的机器学习模型如何将数据值归类到许多类之一。它通过学习每种类型的班级的特征来做到这一点。例如,为了预测图像是猫还是狗,模型会在训练数据上学习猫和狗的特征。

一个回归 问题是关于教你的机器学习模型如何预测连续量的未来价值。它通过了解过去受不同变量影响的数量模式来做到这一点。例如,试图预测公司未来股价的模型就是一个回归问题。

您可以在我们的DataHack平台上找到大量这两个问题。

现在,让我们学习解决两个问题的算法-决策树!

了解决策树

决策树也称为分类和回归树(CART)。他们通过学习对导致决策的if / else问题层次结构的答案进行工作。这些问题形成了树状结构,因此也就形成了名称。

例如,假设我们要预测一个人是否会点菜。我们可以为此可视化以下决策树:

树中的每个节点代表一个从数据集中存在的要素派生的问题。根据这些问题拆分数据集,直到达到树的最大深度。最后一个节点不问问题,但代表该值属于哪个类。

决策树中的最高节点称为Root节点

最底层的节点称为大号电炉节点

分为子节点的节点称为父节点。子节点称为子节点

如果您想详细了解决策树,建议您阅读以下资源:

决策树入门(免费课程)

基于树的算法:从头开始的完整教程

什么是维卡?为什么要使用Weka进行机器学习?

” Weka是一款免费的开源软件,具有一系列内置的机器学习算法,您可以通过图形用户界面进行访问!“

WEKA代表怀卡托知识分析环境,由新西兰怀卡托大学开发。

Weka具有多种内置功能,可用于实现从线性回归到神经网络的各种机器学习算法。这使您只需单击一下按钮就可以在数据集上部署最复杂的算法!不仅如此,Weka还支持访问一些最常用的Python和R机器学习库算法!

使用Weka,您可以预处理数据,对数据分类,对数据进行聚类甚至可视化数据!您可以对不同格式的数据文件(例如ARFF,CSV,C4.5和JSON)执行此操作。Weka甚至允许您向数据集中添加过滤器,通过该过滤器,您可以对数据进行规范化,标准化,在名义值和数字值之间交换特征,而不能!

我可以继续讲一下Weka的奇迹,但是在本文的范围内,让我们尝试通过创建决策树来实际探索Weka。现在继续从其官方网站下载Weka !

在Weka中探索数据集

我将从UCI机器学习存储库中获取乳腺癌数据集。我建议您在继续之前阅读有关该问题的信息。

让我们首先在Weka中加载数据集。为此,请按照以下步骤操作:

打开Weka GUI

选择“资源管理器”选项。

选择“打开文件”,然后选择您的数据集。

现在,您的Weka窗口应如下所示:

您可以在左侧查看数据集中的所有要素。Weka会自动为您的功能创建绘图,在浏览功能时您会注意到。

如果单击“全部可视化”按钮,甚至可以一起查看所有图。

现在让我们训练我们的分类模型!

在Weka中使用决策树进行分类

在Weka中实施决策树非常简单。只需完成以下步骤:

点击顶部的“分类”标签

点击“选择”按钮

从下拉列表中选择“树”,这将打开所有树算法

最后,选择“ RepTree”决策树

“减少错误修剪树(RepTree)是一种快速的决策树学习器,它使用信息增益作为划分标准来构建决策/回归树,并使用减少错误修剪算法对其进行修剪。”

你可以阅读关于这个错误减少修剪技术的研究论文。

“决策树在所有可用变量上拆分节点,然后选择拆分,从而生成最相似的子节点。”

信息增益用于计算拆分时样品的均质性。

您可以从“开始”按钮上方的下拉菜单中选择目标功能。如果您不这样做,则WEKA会自动选择最后一个功能作为您的目标。

在“百分比分配的”指定用多少你的数据,你要保持训练的分类。其余数据将在测试阶段用于计算模型的准确性。

使用“交叉验证折叠”,您可以从训练数据集中创建多个样本(或折叠)。如果决定创建N个折叠,则该模型将迭代运行N次。每次保留其中一个折叠以进行验证,而其余的N-1个折叠用于训练模型。将所有折叠的结果取平均值,以得出交叉验证的结果。

您使用的交叉验证折叠的数量越多,您的模型就会变得越好。这使得模型可以对随机选择的数据进行训练,从而使其更健壮。

最后,按“开始”按钮使分类器发挥其魔力!

我们的分类器的准确性为92.4%。Weka甚至会为您打印混淆矩阵,从而提供不同的指标。您可以在此处详细研究混淆矩阵和其他指标。

Weka中的决策树参数

决策树有很多参数。我们可以对其进行调整以改善模型的整体性能。在这里,决策树的工作知识才真正发挥关键作用。

您可以通过单击顶部的决策树算法来访问这些参数:

让我们简要讨论一下主要参数:

maxDepth –它确定决策树的最大深度。默认情况下,它是-1,这意味着算法将自动控制深度。但是您可以手动调整此值以获得最佳数据结果

noPruning –修剪意味着自动削减不包含太多信息的叶节点。这使决策树变得简单易懂

numFolds –指定的数据倍数将用于修剪决策树。其余的将用于制定规则

minNum –每个叶的最小实例数。如果未提及,则树将继续分裂,直到所有叶节点都只有一个与之关联的类

您始终可以为这些参数尝试不同的值,以在数据集上获得最佳准确性。

在Weka中可视化您的决策树

Weka甚至允许您轻松可视化基于数据集构建的决策树:

转到“结果列表”部分,然后右键单击您训练有素的算法

选择“可视化树”选项

您的决策树如下所示:

解释这些值可能有点吓人,但是一旦掌握了它,实际上就很容易了。

连接节点的线上的值表示基于父节点要素中的值的分割标准

在叶节点中:

括号前的值表示分类值

第一个括号中的第一个值是该叶子中训练集中的实例总数。第二个值是该叶子中错误分类的实例数

第二个括号中的第一个值是该叶子中修剪集的实例总数。第二个值是该叶子中错误分类的实例数

在Weka中使用决策树进行回归

就像我之前说过的那样,决策树用途广泛,可以用于分类以及回归问题。为此,我将使用Analytics Vidhya的DataHack平台中的“ 预测投票数 ”问题。

在这里,我们需要预测用户在问答平台上提出的问题的评分。

和往常一样,我们将从加载数据文件开始。但是这次,数据还为数据集中的每个用户包含一个“ ID”列。这在预测中将无用。因此,我们将通过选择列名称下方的“删除”选项来删除此列:

我们可以像处理乳腺癌问题那样对数据集进行预测。RepTree将自动检测回归问题:

黑客马拉松中提供的评估指标是RMSE得分。我们可以看到,该模型在没有任何特征工程的情况下,RMSE非常差。这是您介入的地方–继续进行实验并完善最终模型!

尾注

就像这样,您无需进行任何编程就可以创建决策树模型!这对于您掌握机器学习模型的工作将大有帮助。

深圳热线移动端

深圳热线移动端

扫码关注深圳热线,更多内容随你看。

推荐 41445

热门推荐