点击蓝字
!
关注我们
对于非技术背景的人来说,机器学习可能会令人生畏。所有机器学习工作似乎都需要对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非常差。这是您介入的地方–继续进行实验并完善最终模型!
尾注
就像这样,您无需进行任何编程就可以创建决策树模型!这对于您掌握机器学习模型的工作将大有帮助。
领取专属 10元无门槛券
私享最新 技术干货