机器学习已商品化为一种服务。
这是一个新兴趋势,有望像商品化的存储和虚拟化一样发展成为主流。这是自然的下一步。
在本评测中,您将了解 BigML,它为业务分析师和应用程序集成提供商品化的即用型机器学习服务。
关于 BigML
BigML 于 2011 年由五人共同创立。Francisco Martin 似乎活跃于社区,发表评论并发布内容。在撰写本文时,这是一家私营公司,并于 2013 年年中获得了一轮 130 万美元的融资。我还看到一项归功于该公司的专利,题为“可视化和交互式决策树的方法和设备”,这表明他们正在突破这项技术的极限。
自推出以来,我已多次审视该服务,每次都注意到界面和服务的变化。它处于积极的开发中,并响应用户的反馈。
该服务专注于决策树,这是一个明智的举措。它们是一种有效的机器学习方法,其决策可以被领域专家透明地理解。
该服务的标语包括诸如“高度可扩展的云端机器学习服务”之类的内容,重点关注企业及其对大数据和云计算需求的胃口,以及“预测性分析变得简单、美观且易于理解”,侧重于终端用户分析师制作报告和理解业务流程。
关于服务
该服务可以用于生产模式或开发模式。开发模式是免费的,但功能受到任务规模的限制。生产模式是付费模式,可以按块或按订阅购买积分。这是其他云服务(如存储或计算服务器)的熟悉模式。
BigML 提供三种主要的使用模式
- Web 界面:一个时尚的 Web 用户界面,快速响应。Web 界面引导分析师完成上传数据、构建描述性或预测性模型、评估模型或按需进行预测的过程。它很简洁,一旦您接受了管道方法,就会非常有意义。
- 命令行界面:一个名为 bigmler 的命令行工具,基于成熟的 Python API 构建,比 Web 界面提供了更大的灵活性,例如可以选择在本地或远程对已构建的模型进行预测,以及执行交叉验证等任务以估算模型准确性。请查看 完整的 bigmler 文档。
- API:提供了一个 RESTful API,可以通过 curl 命令或通过您喜欢的编程语言的包装器直接使用。在撰写本文时,Python API 是最成熟的,但还提供了 Ruby、PHP、Java、C#、NodeJS、Clojure、Bash(curl 调用)和 Objective C 的包装器。
管道流程
Web 界面被呈现为一个步骤管道。您可以根据您的需求选择在管道中的哪个位置进入和退出。
- 数据源:这是研究问题的原始数据。它可以是您上传的原始 CSV 文件、您通过 URL 指定的远程数据文件,或者是在 Amazon S3 中指向的数据存储。您可以描述属性,为其命名,并通常管理数据源的解析和呈现方式。
- 数据集:这些是对数据源的视图,可用于构建模型。数据集指定目标属性(分类中的类或回归中的输出)。数据以条形图和五数概括进行汇总。您还可以将数据集拆分为训练集和测试集,以便稍后对模型的性能进行受控评估。
- 模型:这些是由数据集创建的决策树。决策树模型是交互式的。您可以看到训练数据在模型中每个节点处的置信度和支持度。您可以遍历树,查看规则的前提条件如何建立,这是模型的一种巧妙而简洁的展示方式。模型可以以您喜欢的语言下载,可以审查其规则,并提供替代可视化,如日出图视图。
- 集成模型:这些是由子模型组成的模型。集成模型对于描述性模型作用较小,而对于预测性模型更有用,理想情况下可以从问题域的多种视角预测的组合中提高准确性。
- 预测:模型可用于生成预测。这可以通过构建的决策树模型的各个分支(类似决策支持时间)逐个问题地进行,通过滑块指定一个实例,一次一个,或者通过批量预测,其结果可以下载到文件中。
- 评估:评估根据数据集呈现模型的性能估算。如果将数据集拆分为训练集和测试集,则可以使用分类准确率、精确率、召回率等度量标准来估算模型在未见过的数据上的能力。性能也以图表形式汇总。模型(集成模型或其他)的性能也可以并排进行比较。
- 任务:这是使用该服务执行的任务日志,仅从服务审计的角度来看很有趣。它可能应该在用户界面中获得如此重要的位置。
该流程似乎在易用性和可配置性之间走了一条看不见的界限。存在一些我无法想象分析师或初学者会想触动的配置选项(例如剪枝方法)。
此外,预测和评估之间的区别对于初学者来说也可能令人困惑。我可以想象一个更简单的界面:数据、模型预测,然后云端的机器人负责弄清楚模型的稳健性并将结果报告给我(对所有可以调整的内容进行 n 折交叉验证,以及自动模型选择)。
Web 界面中的 5 个巧妙功能
Web 界面响应迅速,显然采用了现代界面设计技术。在使用 Web 界面的过程中,我注意到了 5 个您应该了解的巧妙功能。
- 一键式:您可以一键完成有用的任务,就像宏一样。这让我想起了亚马逊的一键式购买,巧妙的营销。例如,从选定的数据集中,您可以单击一下即可创建模型、集成模型或将数据集拆分为训练集和测试集。这种命名约定充满了易用性。
- 交互式树:决策树是长期以来的最爱,因为您可以打印出来,并且领域专家很容易理解它们。您可以清晰地看到决策是如何在领域背景下做出的(与不透明的神经网络和 SVM 不同)。使树交互是自然的下一步。您可以整天玩可视化,进行“如果”分析,并将其与领域联系起来。
- 可下载树:您可以以您选择的编程语言下载模型的规则或树本身。非常巧妙。您可以在 BigML 中创建一个描述性或预测性模型,下载代码并将其用于您的应用程序,例如网站或决策支持工具。这很有用,我喜欢它。
- 日出图视图:模型的日出图视图提供了一种创新的(至少对我来说)思考和探索决策树中开发的规则的方式。
- 画廊:任何模型(也许是任何对象)都可以公开提供在画廊中。您可以探索和使用其他人开发的模型以及开放数据。模型可以被评论,您画廊中对象的访问权限也可以出售,这是一个迷人的想法。这真的很巧妙,而且超前于时代,我喜欢它,但我担心它会像IBM 的 many eyes 一样被低估。如果它在组织内部是私有的和经过策划的,可能会更有价值。
用例
这是一项服务,面向中等技术水平的业务分析师和软件开发人员。该服务的重点是易用性(快速构建模型)和模型透明度(使领域专家能够理解模型)。
以下是我认为 BigML 可能最有用的用例。
- 描述性模型:业务分析师(或某个黑客)拥有复杂的数据,他们希望对其进行描述。可以构建一个描述性模型来解释属性与预测属性之间的关系,并进行“如果”场景分析。这可以使用网站完成。
- 预测模型:业务分析师(或某个黑客)有一个复杂的问题,他们希望根据过去的示例进行预测。可以在网站上构建一个预测模型,并以批量方式进行预测,然后下载为 CSV 文件进行分析和应用。
- 定期预测:与上一种情况类似,但需要定期持续进行预测。模型可以在 BigML 平台上维护(需要时更新),并通过 Bigmler 命令行界面远程调用以按需进行预测。
- 集成:该服务可以集成到脚本、内部网站或桌面应用程序中以提供决策支持。这需要使用 API,并且最好在平台上维护模型。
机器学习从业者
机器学习从业者可能会觉得有所欠缺。没有侧重于模型选择或性能估算。您在 Web 界面中找不到设计复杂的、多运行实验和使用交叉验证估算分类准确率的功能。
在创建模型时可以进行一些配置,例如,树剪枝方法可以在“智能剪枝”、“统计剪枝”和“无统计剪枝”之间进行变化。我只能想象智能剪枝会尝试多种方法并选择最佳的树。集成模型仅限于装袋,我认为在进一步抽象这一点、进行提升和堆叠、阈值化和其他方法方面存在巨大机会,并提供一个机器人选择的最佳“集成方法”供使用。
我可以想象,如果我是一个硬核决策树专家,我会对缺乏控制或对所做的选择缺乏洞察力感到沮丧。
托管解决方案的好处是消除技术细节,让大型计算机计算所需模型的变体并为您选择最佳模型。目前还不清楚 BigML 幕后有多少这样的工作,但这可能有很大机会进一步隐藏不再需要的配置细节——让云端的机器人处理模型调优和选择。
这些是故意的设计选择,而且有道理。该服务负责为问题提供“足够好”的模型,并允许您按需下载或查询该模型的托管版本。
快速模型
这里为机器学习从业者提供了一个机会,那就是可以非常快速地完成工作,例如
- 演示:从客户数据创建模型,并在视频或演示中向他们展示决策树的工作原理以及它们如何处理他们的数据,让他们能够根据自己的领域经验获得对模型的洞察。这比使用 R 或 scikit-learn 生成的静态树更容易借助 BigML 的交互式决策树来完成。
- 快速模型:您需要一个模型,而且是真正非常非常快速的。BigML 将创建一个树或集成模型,您可以用来生成预测。这是一个快速且通用的过程,可以通过 Python API 或命令行界面的脚本版本来启动。比 R、Weka 或 scikit-learn 更快?也许吧,如果它是一个托管在 S3 上的大型数据集(更大的数据甚至大数据)。
- 内联模型:如果您正在使用 Java、Python 或 Ruby 编写一些 DSL 或原型应用程序,并且需要一个仅用于演示目的的临时或概念验证模型,则可以创建 BigML 模型并以原生代码下载。这确实是一个非常方便的功能。
- 临时集成:与上述情况类似,但您可能正在处理流数据,其中模型需要定期更新,您可以与 BigML API 集成并在您的原型应用程序中进行预测,直到您找到自己的解决方案。
毫无疑问,BigML 依靠其解决方案足够好,您无需更换它,而且对于大多数通用问题来说,它可能确实如此。
结论
BigML 非常酷,界面时尚,而且有许多巧妙的想法,如画廊和一键式一切。下次做小型或业余项目时,值得一试,只是为了看看它的工作方式——它更侧重于建模前和建模后的阶段,而不是建模阶段本身。
不过,该服务可能存在一些不足之处。我无法确切地说是什么。它可能只需要稍微调整一下,要么决定它是为初学者设计的,并提供更多的云端处理能力,要么决定它是为决策树爱好者设计的,并提供一个包含大量旋钮和开关的驾驶舱。
即用型机器学习是未来:拥有一个托管的黑盒,它处理您应用程序复杂的数据驱动核心。对于许多内部业务应用程序甚至探索性项目来说,这都是有意义的。也许这些项目不够独立。您在 odesk 或 elance 上看不到要求为某个数据集提供描述性或预测性模型的工作。这可能是因为数据是保密的,但也可能是因为问题无法与所需的系统、人员和可视化效果分离开来。
无论是什么原因,这些平台目前尚未成为主流,我希望这些公司能坚持到那时。
资源
在本节中,我想为您提供一些了解 BigML 的途径。
BigML 文档
BigML 在其博客上提供了出色的文档和示例,请查看
- BigML 功能,了解 BigML 功能的概述,重点是 Web 界面
- BigML API 文档,称为 BigML.io
- BigML 开发者 FAQ,包含有关服务和机器学习的一般问题和答案
BigML 视频
BigML 有一个内容丰富的 YouTube 频道,包括营销视频和有用的教程视频。下面是一个使用 BigML 为 Kaggle 上的StumbleUpon Evergreen 分类挑战建模和进行预测的绝佳示例。
更多关于决策树
如果您有兴趣深入了解决策树,以下是一些您可能喜欢的经典著作
暂无评论。