机器学习即服务之BigML特性介绍和入门教程

【编者按】如我们之前的介绍,随着微软、Google、AWS陆续加入,机器学习即服务(MLaaS)的争夺战已经打响,BigML就是其中的一个竞争者。本文详细介绍了BigML机器学习服务的特性和使用过程,作者认为BigML比AmazonML、AzureML等更接近于SaaS,支持跨云导入数据是它的一个优势。以下为文章内容。

BigML提供一个建立和共享数据集和模型的管理平台

机器学习即服务(MLaaS)已经真实存在于云计算市场,而BigML的使命很简单明了:让机器学习更容易,更美妙,更加易于为所有人理解。

和IaaS和PaaS竞争对手的机器学习服务相比,BigML更接近于软件即服务(SaaS)。我最近使用过AmazonML,AzureML和Google Prediction API,所有这些都是一个庞大的网络服务生态系统的一部分,这个生态包括云存储、CDN、VPC和部署自动化等。

BigML却与平台无关,能够利用现有的云计算解决方案是它的优势。举个例子,它允许来自AWS S3、MS Azure、Google Storage、Google Drive和Dropbox等的数据导入。这个细节现在看起来似乎微不足道,但很有可能在未来改变游戏规则:一旦公共云基础设施成为商品,那么跨供应商的解决方案将是最好的选择。

BigML特性

BigML只专注于机器学习,提供了一套更广泛的功能,这些功能都集成在一个可用的Web UI上。正如你所期望的那样,你可以加载数据集,训练和评估你的模型,并生成新的预测(无论逐一或成批)。

下面是我所知道的BigML所独有的好特性:

  • 有各种各样的方式来加载你的原始数据,包括大多数的云存储系统,公共链接或私有的 CSV/ ARFF文件。
  • 大量免费的数据集和模型可供使用,分类条理清晰,可以公开访问。
  • 聚类算法和可视化:数据分析和可视化工具对于提出高质量的模型是必不可少的。
  • 异常检测:应对异常值比较痛苦,而检测模式异常可以节省你的时间和金钱,甚至先于压缩你的模型。
  • 弹性价格:你可以在订阅计划之间进行选择(最低学生价 $15 /月),账单到期即付,伴随着BigML积分,甚至购买你的私人VPC。

如何导入你的数据

根据你的使用情况,你可能希望从现有的云存储系统中导入数据,提供一个公共网址,或直接上传CSV文件。在开发模式下,你甚至可以动态创建一个内联源。

即使在这一步,BigML也提供了一套很好的功能集:

  • CSV解析配置。
  • 字段类型选择。
  • 字符串区域选择(英语,荷兰语,西班牙语或葡萄牙语)。
  • Ÿ头文件解析( CSV具有或不具有标题行)。
  • 日期—时间域扩张。
  • 文本分析(语言检测,符号化,停用字,词干提取)。

有趣的是,你可以在任何时间更新你的源(Source)配置,无需任何额外的上传。

一旦你的源已准备好和正确解析,你可以用它来生成一个新的数据集。或者,你可以从他们的公开数据集画廊导入准备使用的数据。

数据集完全可重复使用,可扩展及可导出

BigML数据集是很容易重用、编辑、扩展和导出。事实上,你可以很容易地重新命名并添加说明到你的领域中的每一个地方,添加新的成分(通过归一化、离散化、数学运算、遗漏值置换等),以及生成基于采样或自定义过滤器的子集。

此外,甚至在训练你的模型,你是对每个领域进行给定的值分布和统计,而且还是一个很不错的动态散点图工具可视化数据,一段时间两个维度。这里你可能想要探索你的功能空间,寻找模式,导出字符或者只是简单地获得乐趣。

在实际应用中,对于大多数操作数据集是你的起点。假设我们的目标是培训和评估一个分类模型。我们首先需要将我们的数据分割成更小的培训和测试机组:你可以通过培训和测试集拆分操作做到这一点。当然,你可以自由选择如何分配你的记录:80/20是默认的拆分逻辑。这个过程实际上将创建两个新的独立的数据集,只要你想,你便可以分析和操作它们。

一旦拆分完成后,你要选择新的训练集和启动配置模式操作。

BigML决策树

机器学习模型可能是任何东西,它能够分析你的原始数据(最终标记),并能以某种方式学会如何应对新的和未知的数据。

决策树可能是你可以建立的模型最直观的类型。它们易于可视化和理解,也更容易储存,因为它们可以几乎直接转换成程序代码。即使你不是一个程序员,你可以把它作为双则判决的一个嵌套结构。

这正是每一个BigML模型所表现出来的。当你训练模型——从训练数据集开始——你被要求选择你的目标领域(即你的目标列)。为了减少数据过度拟合的效果和模型的大小,你通常需要某种形式的统计修剪,尽管你可以可以决定禁用它。

或者视情况,你可以配置更多的选项。

  • 缺少拆分:在选择拆分(默认禁用)时是否包括缺失值。
  • 节点阈值:节点的最大数(默认值为 512)。
  • 重量:你可以选择重量记录字段指定一个权重,或者对你的类分配相对权重,。
  • 采样和订购:你可以选择自定义子样本和混编的逻辑。

训练结束时,你将能够可视化你的模型,并获得翔实的报告,以更好地了解你的哪些领域更相关(见上图)。此外,模型的预测图形表示为一颗真实的树(在左侧下面)或者作为旭日(在右侧下面)。

在这一点上,你已经可以开始产生新的预测,但当然,我们首先要评估我们的模型的准确性。

多分类器融合可以提高你的预测准确度

多分类器融合,涉及多个可供选择的模式,这将提供更好的预测性能,是一种能提高你的单模型系统的精度的有据可查的方式。每个模型可以使用数据的子集进行训练,或专注于特定的级层,以便他们能产生更好的预测协作。

在BigML你可以很容易地用配置集合数据集的操作来培养决策森林:你仅仅需要了解多少模型须接受培训。

这种做法极大地纠正过度拟合训练数据的决策树的习惯——并因此提高了整体的精度。就我而言,我设法使用10种模型的多分类器来提高3%的准确性,如果你能承受额外的时间,这可能是有意义的。

我还生成了100个模型的集合,但是,即使它增加了额外的1%的精确度,无论是在成本和速度方面,这显然还不是一个好的选择。

如何评估你的结果

能够快速评估你的模型以及对照多种评估是机器学习作为服务产品的关键功能,我个人认为BigML已经做了很多工作。

特别地,你想针对你的数据集的一小部分来测试你的模型。我们以前创建的一个20%测试集,我用它来生成我的两个模型和集合的评估。你可以开始对模型进行评估操作,或者对你的数据集进行模型评估操作。需要不多的配置,除非你有特殊的取样或订货需求。

每一个评估是一个对象本身,将会被列在名单的评估清单。当然,基于你的模型类型(回归或分类),你将被示以各种度量。如果你的模型是一个分类器,你将被示以混淆矩阵,包括像准确度,精密度,召回,F值和Phi统计分类。

如果你的混沌矩阵太大了以至于不能再网页上呈现(假设你和我一样可能有6类),你可以下载Excel格式。这将类似于下图,其中顶部的图例为你显示每一个单元格表示什么,相对于主对角线的第一个元素(你可以在主对角线做相同的每个单元)。

但我的多分类器融合如何呢?它可以有更好的表现吗?

显然,它还有更好的应用。它使得总精度提升了2.82%,而且有些类更是高达5.34%。你可以与比较评估操作比较两个评估,呈现的是有着单一评估的相同的统计,以及对每个指标的相对比例相同的统计数据。

我的模型单独情况下是非常有效的,我可能不会选择支付多分类器融合的额外费用——包括在价格和速度两方面——尽管在许多情况下,过度拟合会消除掉你的预测能力,但是多分类器融合可以大幅度地提高你的准确度。

产生新的API绑定和BigMLer的预测

我要说的是BigML既方便用户也方便开发人员。他们花时间来编写大量的API客户端,甚至是一个称为BigMLer命令行工具。

当然,你可以通过API完成上面提到的每一个操作,但我相信,离线阶段可以更好地处理一个清晰和可靠的UI,特别是在模型和数据集定义中。

我选择了Python进行绑定,并编写了一个简单的脚本来生成新的预测。

就实现性能而言,它只需要1.5到2秒调用至我的模型,直到我启用了本地存储选项:这将在本地存储所有的模型参数,避免阻塞API调用每一个未来的预测。本地缓存活跃起来之后,我的脚本执行时间下降到150毫秒。我的10种模型集合第一次大约花20秒钟来加载,然而每一次调用最多只用1秒:实际上它比一个单一的模型要慢10倍——虽然有10种预测被执行——但我认为1%的额外预测信任是值得的。也请记住,我的模型对超过560的输入功能和6个可能的输出类都有作用,所以我确信,平均模型的运行速度比我的模型要快很多!

或者,你可以通过点击下载可执行的模型来转变你的模型,转换成十五种不同语言/格式的程序代码。我使用Python版本做了一个尝试,它真的只需要几毫秒到就可以在本地执行:这可能一个很好的解决方案,假使你不希望安装新的库(例如,我能想到的嵌入式设备或网络隔离的客户)。

我当然满意这种服务——作为一个开发者——我非常感谢这么多的编程语言和平台的支持与努力,使每个人的工作变得简单。


【预告】 首届中国人工智能大会(CCAI 2015)将于7月26-27日在北京友谊宾馆召开。机器学习与模式识别、大数据的机遇与挑战、人工智能与认知科学、智能机器人四个主题专家云集。人工智能产品库将同步上线,预约咨询:QQ:1192936057。欢迎关注。

大会官网链接:http://ccai2015.csdn.net

原文发布于微信公众号 - 人工智能头条(AI_Thinker)

原文发表时间:2015-06-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人人都是极客

第二课:开发机器学习app前的准备工作

框架的选择 如上一节课所说,随着机器学习的发展,目前已经出现很多不错的学习框架,这里我们做个对比: TensorFlow:深度学习最流行的库之一,它不仅便携、高...

31810
来自专栏机器之心

教程 | 使用Gym和CNN构建多智能体自动驾驶马里奥赛车

5316
来自专栏快乐八哥

数据可视化-EChart2.0使用总结2

接上一篇博客,这篇博客主要讨论EChart里面的散点图、气泡图和雷达图。 4.散点图-Scatter Chart 适合场景:三维数据集,但是只有两个维度需要比较...

2446
来自专栏机器学习算法与Python学习

干货 | 数据挖掘知识点整理

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 1. 数据、信息和知识是广义数据表...

3347
来自专栏破晓之歌

推荐算法理论与实践(差代码) 原

之前的方法是基于用户已经看过一些电影,买过一些商品并且进行了评分,因此具备该用户信息,以便推荐

1613
来自专栏机器之心

深度 | 基于TensorFlow打造强化学习API:TensorForce是怎样炼成的?

选自reinforce.io 机器之心编译 作者:Michael Schaarschmidt、Alexander Kuhnle、Kai Fricke 参与:Pa...

5899
来自专栏新智元

【李飞飞团队最新研究】神经任务编程NTP,具有强大泛化能力的机器人学习框架

【新智元导读】斯坦福大学计算机视觉实验室李飞飞团队的最新研究提出一个新的机器人学习框架:神经任务编程(NTP),在机械臂的物品堆叠、分拣和桌面清理三类任务中,证...

3878
来自专栏量子位

AMD深度学习库MIOpen更新,支持CNN加速

吴唯 编译自 GitHub 量子位 出品 | 公众号 QbitAI 农企的深度学习加速库MIOpen 1.0更新了,它现在已经能支持对CNN的加速。 ROCm全...

36912
来自专栏机器人网

[学习}28 款 GitHub 最流行的开源机器学习项目

现在机器学习逐渐成为行业热门,经过二十几年的发展,机器学习目前也有了十分广泛的应用,如:数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊...

4118
来自专栏机器之心

资源 | 从Brain.js到Mind,一文收录11个移动端Javascript机器学习库

选自blog.bitsrc.io 作者:Jonathan Saring 机器之心编译 参与:程耀彤、黄小天 本文作者在构建 Bit 的过程中探索和尝试了把 Ja...

3676

扫码关注云+社区

领取腾讯云代金券