运用谷歌 BigQuery 与 TensorFlow 做公共大数据预测

【新智元导读】谷歌BigQuery的公共大数据集可提供训练数据和测试数据,TensorFlow开源软件库可提供机器学习模型。运用这两大谷歌开放资源,可以建立针对特定商业应用的模型,预测用户需求。

Lak Lakshmanan 是谷歌云服务团队的大数据与机器学习专业服务成员,他在谷歌云平台写了下文,以帮助用户使用谷歌云预测商业需求。

所有商业业务都会设法预测客户需求。如果你开饭馆,你需要预测明天要做多少桌饭、顾客会点哪些菜,这样你才能知道需要购买那些食材、厨房需要多少人手。如果你卖衬衫,你要提前预测,你应该从供货商那里订购每种颜色的衬衫各多少件。通常,企业主会依赖自己的直觉或经验原则来预测客户需求(例如,“蛋奶酥比煎蛋饼卖得多”,或“圣诞节前后要储存更多的红色高翻领套衫”)。

直觉和经验原则的问题是,它们极少能量化。明天顾客会多点多少份蛋奶酥?应该提前多储存多少件红色高翻领套衫?我们能用机器学习来更准确地预测客户需求,而不只是依靠直觉或经验原则吗?如果你拥有足够多的历史业务数据,你就可以。在本文中,我们将告诉你怎么做。

机器学习

第一,什么是机器学习?通常,当你想要电脑为你做什么事的时候,你必须用一套明确的规则为电脑进行编程来实现它。例如,如你想要电脑观看一张生产线上的螺丝的图片并判断这颗螺丝是否有缺陷,你必须为电脑编写一套规则:这颗螺丝是弯曲的吗?螺丝的头部损害了吗?螺丝褪色了吗?等等。

通过机器学习,你可以把问题倒转过来。你不必去制定一系列判断何为坏螺丝的规则;相反,你要向电脑输入大量的数据。或许,你要向电脑展示 5,000 幅好螺丝的图片,再展示 5,000 幅被人类操作员丢弃的坏螺丝的图片。然后,你让电脑计算如何把坏螺丝和好螺丝分辨开来。在这里,电脑便是机器学习中的“机器”,而它会基于数据而“学习”做决策。

预测纽约市的出租车需求

假设你是纽约市一家出租车公司的后勤经理,你需要决定本周四你需要征调多少名司机。你对纽约的出租车状况有所了解。例如,你知道一星期中每一天的出租车需求量都不同(周四的需求量与周一的需求量不同),出租车需求量也取决于当天的天气。这些是我们的预测因素,也就是我们借以做出预测的东西。

我们也需要决定我们想要预测什么。假设,我们将预测这一天全市的出租车搭乘的总数。我们可以假设,我们将从这个总数中占取我们过去通常占取的份额,并为这个份额征调相应数量的司机。换句话说,我们的机器学习问题是这样的:

预测因素与目标

谷歌的 BigQuery 公共数据集既包括纽约的出租车搭乘总数(见表格 nyc-tlc:green),也包括国家海洋和气象局的天气数据(见表格 fh-bigquery:weather_gsod)。因此,我们决定用这些作为我们的输入数据集。出租车搭乘总数只是实际需求量的一个替代值——如果街上没有足够多的出租车,或者出租车聚集地与需求产生地不一致,那么实际需求就可能比实际搭乘总数更多。不过,如果我们假设纽约的出租车市场是有效市场,我们就可以把这个出租车搭乘总数的数据集作为研究的良好出发点。如果你的业务不涉及出租车,或者依赖天气之外的其他因素,那你就需要把你自己的历史数据加载到 BigQuery 中。

你可以在 Google Cloud Datalab 中运行 BigQuery 查询,而查询结果将以一种 Python 可用的形式返回给你。(github上包含完整的 Datalab 手册与详细评注。 )

类似地,你可以运行 BigQuery,按一年中每一天的序号来预测这一天的出租车搭乘总数。

通过合并天气和车次数据库,我们就得到了供机器学习使用的完整数据集:

上面是我们的历史数据,而我们可以用这些历史数据来基于天气预测出租车需求。

基准测试:

当进行机器学习时,最好拥有一个测试基准。这个测试基准可以是一个简单的模型,也可以是你从直觉得来的标准。我们可以在一个测试数据集上运行测试基准模型和机器学习模型,以评估机器学习模型是否比测试基准的表现更好。

为了创造出测试数据集,我们将集齐所有的训练数据,把它按 80:20 分为两部分。我们将在 80% 那部分的数据上训练模型,并用剩下的 20% 的数据测试机器学习模型的水平。

例如,所有天的出租车需求量的平均值就是一个合理的测试基准。如果我们的模型在做预测时可以比这个平均值预测得更好,这说明我们的模型已经相当巧妙。为了衡量一个模型达到了多高的水平,我们将使用均方根误差作为衡量标准。你也可以选择其他与你要解决的业务问题相关的衡量标准。例如,你可以计算,当某一天你征调了过少或过多的司机时带来的收益总损失,并以此作为你的衡量标准。

当我们使用出租车需求量平均值作为基准时,均方根误差为 12,700,而这个数字就是我们希望用机器学习能超越的数字。换句话说,我们希望机器学习模型所产生的均方根误差低于 12,700。

TensorFlow 是一个谷歌在 2015 年开源的软件库。它擅长做的事情之一是运用神经网络、特别是深度学习网络来执行机器学习。你可以在 TensorFlow playground 网站上体验一下神经网络构架是什么样的。

即使下面的代码看起来令人生畏,它里面的大部分东西其实都并不新奇。完整的代码可参见 Datalab notebook;Google CloudMachine Learning 的 Alpha 版则提供了更简单的办法来做这件事。我使用的是具有一个隐藏层的神经网络,而且我们应该限制层数,因为在从短短数百天的数据中我们无法获得数百万计的实例。我用 rectified linear units (ReLU)作为中间节点,并把输出节点设定为 identity 节点(因为,这是一个回归问题,而非分类问题)。

我们保存模型,把它在测试数据集上运行,并验证它能否比基准模型做得更好:

约8,200 的均方根误差,这是比采用历史平均值而得到的 12,700 要好得多的结果。

运行训练好的模型

一旦我们训练好了模型,以后每次采用新的预测因素数据来运行模型就变得很简单了。例如,假设我们拥有未来三天的天气预报数据。我们可以直接把预测因素变量(当天在一周中的位置,最低和最高气温,雨水)传递给神经网络,并预测未来三天的出租车需求量:

看起来,我们应该让我们的一部分出租车司机在周三(day=4)这天休假,而在周四(day =5)这天全力工作。周四的出租车需求通常较少(纽约市的出租车用车高峰在周末),然而机器学习模型告诉我们由于天气原因这周四会有大量的用车需求。

谷歌云平台使得这类需求预测问题变得特别容易解决。谷歌的 Could Datalab 提供了一个互动式 Python 笔记本,它能够与 BigQuery、Panda 和 TensorFlow 很好地整合。谷歌云平台中的公共数据集包括来自美国国家海洋与气象局的天气信息。要想更多地了解谷歌云平台和它的大数据、机器学习能力,你也可以注册谷歌云的培训课程。

来源:cloud.Google.com

原文发布于微信公众号 - 新智元(AI_era)

原文发表时间:2016-06-05

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏智能计算时代

机器学习与文本分析

image.png 原文作者:微软研究院杰出科学家Ashok Chandra博士,项目经理Dhyanesh Narayanan 译者:张鑫 ? 上个世纪七十年代...

4036
来自专栏大数据文摘

分辨真假数据科学家的20个问题及回答

2043
来自专栏AI科技大本营的专栏

移动应用AI化成新战场?详解苹果最新Core ML模型构建基于机器学习的智能应用

Google刚刚息鼓,苹果又燃战火!这一战,来自移动应用的AI化之争。 近日,苹果发布专为移动端优化的Core ML后,移动开发者对此的需求到底有多强烈?去年大...

3637
来自专栏PaddlePaddle

GITCHAT系列2:个性化推荐

大家好,我是来自PaddlePaddle开源社区的李钊(@livc),目前是一名大三学生。我曾经在手机百度实习,参与推荐算法和反作弊的研发工作,目前是IDL的一...

4128
来自专栏机器之心

专栏 | 滴滴KDD2017论文:基于组合优化的出租车分单模型

机器之心专栏 机器之心编辑部 数据挖掘顶会 KDD 2017 已经开幕,国内有众多来自产业界的论文被 KDD 2017 接收。本文是对滴滴 KDD 2017 论...

3758
来自专栏AI科技大本营的专栏

人工智能在医疗领域的实践精选

导读:随着机器学习的不断发展,医疗领域也在发生巨大的变革,下面我们将对人工智能在医疗领域的实践做一个简单的介绍。 “数据挖掘即为深入分析数据直到得出满意结果的过...

2944
来自专栏ATYUN订阅号

强化学习开源项目:自己动手创建虚拟自动驾驶汽车

想象一下,你生活在一个没有交通拥堵,没有交通事故,也无需花费时间开车的世界,那会多美好。

4862
来自专栏新智元

【干货】如何成为深度学习专家的七大步骤

首先为用Buzz做为点击标题的诱饵道歉,但是它确实是起到了一定的作用,并且吸引了大批读者来阅读此文章。 在我们的工作中,经常被问及的问题之一就是“从哪里开始学习...

3708
来自专栏AI研习社

用验证机制加强神经网络的能力:研究者提出机器学习防御措施 | 2分钟读论文

来源 / Two Minute Papers 翻译 / 洪振亚 校对 / 囧囧 整理 / 雷锋字幕组 本期论文 Reluplex: An Efficient S...

3545
来自专栏专知

【前沿】自动从CT医疗影像中生成诊断报告,卡内基梅隆大学CMU邢波教授团队最新基于深度学习的医疗影像研究成果

【导读】CMU邢波(Eric Xing)团队最近在arXiv上发布新论文,采用深度学习方法自动地从CT医疗影像中生成诊断报告,大大提高医生诊疗效率。写作报告对经...

49811

扫码关注云+社区

领取腾讯云代金券