BigML是一家位于美国俄勒冈州科瓦利斯的新兴、有趣且提供机器学习即服务(MLaaS)的公司。
在上一篇文章中,我们评测了 BigML 服务,介绍了其主要功能以及您可以在业务、个人项目或向客户演示时使用该服务的方式。在本教程中,我们将分步指导您使用 BigML 平台开发预测模型,并使用该模型对未用于创建模型的数据进行预测。该模型将是一个决策树。
您可以注册一个免费试用 BigML 账户来跟随学习。将您的账户配置为“开发模式”,这样您就不需要信用点来完成本教程中的任务。
鸢尾花种类分类问题
在本教程中,我们将使用研究广泛的鸢尾花数据集。该数据集包含 150 个实例,描述了鸢尾花的测量值,每个实例都被归类为三种鸢尾花种类之一。属性是数值型的,这个问题是一个多类分类问题。

鸢尾花数据集样本,来自维基百科的截图
您可以在维基百科页面上阅读更多关于此问题的信息,并从UCI 机器学习仓库的鸢尾花页面下载数据。
1. 加载数据并创建数据集
在本节中,您将准备好用于 BigML 的数据源和数据集。
1.1. 创建数据源
首先,我们需要创建一个数据源。这是原始数据,我们可以从中创建数据集或查看原始数据的视图。
- 登录到您的 BigML 账户。
- 点击“仪表板”按钮进入您的 BigML 仪表板。
- 点击“源”选项卡以列出您账户中的所有数据源。
- 点击“链接”按钮以指定一个远程数据文件。
- 输入 UCI 机器学习仓库中鸢尾花数据集的 URL (http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data) 和描述(“鸢尾花数据源”)。
- 点击“创建”按钮以创建新的数据源。
- 点击“鸢尾花数据源”以进行查看。
您会注意到属性数据类型已被正确识别为数值型,并且类别标签是最后一个属性(字段 5)。
1.2. 创建数据集
现在我们有了一个加载了原始数据的数据源,我们可以创建该数据源的数据集视图。然后,我们将创建另外两个数据集:一个名为训练集,用于训练预测模型;另一个名为测试集,用于评估创建的预测模型,并将作为进行预测的基础。
- 在“源”选项卡中点击“鸢尾花数据源”以打开它,如果尚未打开的话。
- 点击云按钮并选择“一键创建数据集”。
- 这将从数据源创建新数据集。这是对数据源的视图,可以进行修改以准备建模。
- 点击或悬停在小 sigma 上以查看给定属性的摘要。
- 点击云按钮并选择“一键训练 | 测试”。
- 点击“数据集”选项卡,查看我们创建的 3 个数据集。
2. 创建和评估模型
在本节中,我们将从准备好的训练数据集创建预测模型,并使用准备好的测试数据集评估该模型。
2.1. 创建预测模型
现在,您将从训练数据集中创建一个预测模型。
- 在“数据集”选项卡中点击“鸢尾花数据源的数据集 | 训练 (80%)”数据集。
- 点击云图标并选择“一键创建模型”。
- 悬停在模型中的不同节点上,以查看数据通过决策树的流程。
- 点击“旭日图”按钮以打开模型的旭日图视图并探索决策树。
- 点击“模型摘要报告”按钮以查看从决策树模型派生的规则的文本描述。
2.2. 评估预测模型
现在,您将使用测试数据集评估您创建的预测模型的预测准确性。
- 在“模型”选项卡中点击鸢尾花模型。
- 点击云按钮并选择“评估”。
- 评估将自动选择您之前创建的测试数据集,该数据集包含原始数据集的 20%,而预测模型尚未见过。
- 点击“评估”按钮来评估模型。
- 模型的准确性以分类准确率、精确率、召回率、F1 分数和 phi 分数进行总结。我们可以看到准确率为 93.33%。
- 点击“混淆矩阵”以查看模型预测的混淆矩阵。
3. 进行预测
现在,您将使用预测模型对模型尚未见过的数据进行预测。
- 在“模型”选项卡中点击鸢尾花模型。
- 点击云按钮并选择“批量预测”。
- 点击“搜索数据集…”下拉菜单并输入“iris”。
- 选择“鸢尾花数据源的数据集 | 测试 20%”数据集。
- 点击“预测”按钮。
- 点击“下载批量预测”文件,以获取测试数据集中每一行的预测结果。
总结
在本教程中,您学习了如何创建数据源、数据集,创建预测模型、对其进行评估,最后使用准备好的预测模型对未见过的数据进行预测。BigML 是一个易于使用的平台,您应该能够轻松完成所有这些操作,仅需 5-10 分钟。
接下来,您可以进行一些扩展此教程的工作:
- 您可以创建具有不同剪枝方法的新决策树,并将其评估与您已经创建的决策树进行比较,看看哪一个更准确。
- 您可以使用决策树的集成模型来解决问题,并通过比较集成模型的评估结果与您已创建决策树的评估结果,看看是否可以提高分类准确率。
- 您可以编写脚本或使用 BigML 命令行工具(称为bigmler)来在新数据可用时进行预测。
- 您可以使用 BigML API 将远程模型的使用集成到网页中,并在新数据可用时自动进行预测。
如果您有关于使用 BigML 的有趣教程的想法,请留下评论。让您的想象力自由驰骋。
太棒了,谢谢。
不客气,Ben。
很棒的教程,谢谢!
我想知道,在你看来,BigML 和 Weka 哪个更好?
提前感谢你的时间和关注!
它们解决的问题不同。Bigml 只有树模型,并且是托管的;Weka 是一个完整的工具集,并且是本地的。