跳转到主要内容
公司博客上

建筑定居见解数据集

2019年8月25日, 客户

分享这篇文章

我要建立我的下一个咖啡店在哪里?

企业想了解周围的物质世界和人们如何交互与物理世界。我要建立我的下一个咖啡店在哪里?多远是我最近3咖啡的竞争对手?人们去旅行我的商店有多远?其他品牌人们访问之前和之后他们访问我吗?

这些问题是领导人有趣的城市规划者,广告商,对冲基金,和实体企业。但他们也暗示一个有趣的技术问题:大规模机器学习。建立一个综合数据集来回答这些问题是一个大规模计算困难的问题,因为它需要大量机器学习在很大规模。在这篇文章中,我们将确切地告诉你如何解决它。

我需要什么数据?

首先,一些背景SafeGraph。我们的目标是成为一站式对于任何试图了解他们周围的物理场所,餐厅、机场、学校,沙龙……的例子不胜枚举。

为这个任务,我们创建数据集,代表我们周围的世界。这样的一个数据集是我们的核心的地方清单5毫米+产品,这是一个全国企业完整的丰富信息类别和开放时间。这个数据集是补充几何补充数据集,将每一个地方,geofence来表示建筑物的物理足迹。下面是SafeGraph 3主要数据集,每个告诉周围的物理一个不同的故事。这篇文章是关于我们如何建造模式我们周围,一个数据集的物理场所以及人类与它们进行交互。

Safegraph数据集
Safegraph数据集

模式——人类与物理交互的地方怎么样?

最后,我们想要的模式safegraph_place_id,这是我们规范标识符为每个数据集。每一行是一个独特的物理位置,和我们计划为每个地方计算的一组列共同描述人们如何相互作用。一些列计算的例子包括游客的数量,时间在一天中是最受欢迎的地方,和一个其他品牌列表,人们参观访问之前或之后发生的问题。

几列数据集的模式,shop.safegraph.com。使用优惠券代码data4databricksers100美元的免费的兴趣点,建筑足迹,和定居的见解数据。

建造这个地方和访问统计数据之间的映射,我们首先需要建立一个内部数据集相关我们的匿名,内部GPS饲料的物理位置的地方geofences使用我们的数据集。一旦我们有一个数据集相关的集群的GPS点的safegraph_place_id键(我们称之为每个协会访问),我们可以简单地“集会”的数据构建模式的关键。在许多方面,核心技术挑战下来构建这个数据集的访问。

我们从三个核心成分:(1)的地方的数据集的兴趣点在美国,(2)几何,物理建筑足迹的地方,和(3)每天,匿名饲料的GPS数据来自应用程序。

因为GPS数据本质上是很嘈杂的,常常只精确到100米,我们需要一个机器学习模型来阐明信号从噪声和预测服务。最重要的是,我们需要数据管道摄取GPS饲料,集群,并构建出集群和特性的地方数据集。下面,我们告诉的(有些痛苦的)故事我们就是这么做的,如果你好奇我们开发了模型本身,随时查看我们的访问归因白皮书在这里)。

构建模式架构

我们首先决定解决这个大数据项目与较小的数据工具——即scikit-learn Jupyter笔记本上本地开发的模型,因为这些都是我们所熟悉。唯一的角色砖是当我们用它来从S3和读取在训练数据样本百分之一的一小部分。然后我们将数据合并到一个CSV和它下载到电脑上。

确实,在大多数情况下,我们可以得到一个合理的模型建立和运行,但只能火车25 MB的数据,当我们增加了一倍,那一刻,电脑冻结。显然只有在我们开发的初始模型,这种架构不会带我们很远。大的教训吗?如果你的Macbook Pro是一个数据管道的一部分,你走得太远。很少的最佳方法是建立生产就绪的东西。

建筑# 1:合理的首次尝试从人通常只是小的数据建模。

我们想说我们快速旋转技术,开发一个真正的可伸缩的解决方案简单,但这并没有发生。我们未来提供一个无可否认的昂贵的EC2框,重新训练模型在1%的训练数据,并运行一天的生产就绪的输入框。似乎和模型预测像预期的那样!

但“成功”不仅仅是预测精度——它也预测时间。我们设置了12个小时,通过一天的输入数据。按照这个速度,模型不会计算时间进入客户的手中。

建筑# 2:就像建筑# 1,但更换我的Macbook Pro和一个EC2实例。接近,但不完全不够快。

两个失败的尝试之后,是时候扣下来,咬的子弹与生产就绪的技术,我们不熟悉,但我们有信心完成工作。

我们开始通过取消单线程模型和训练一个完全分布式SparkML砖笔记本的森林。UI Jupyter反映我们见过,和我们失去的时间学习SparkML超过弥补的来龙去脉在减少训练时间。1%的训练数据训练一个玩具模型之前45分钟,但在砖与火花,我们能够通过(字面意思)数以百计的模型优化之前找到一个更好的(更不用说,更快)比我们所取得的EC2上的盒子。

一旦我们有我们的脚湿,构建pre-model和post模型数据管道变得不那么令人生畏。我们写的数据管道直接砖笔记本,,一旦我们已经确认他们是正确的,我们他们迁移到罐子和上传到S3。我们还救了我们的火花模型转换为一个二进制和上传到S3,以及一个简单的Python包装器的模型来预测服务。

我们必须找出如何得到这个东西可靠地运行。幸运的是,SafeGraph已经旋转了一个气流实例,所有我们需要做的是创建一个新的DAG和链接jar和Python蛋在一起。我们每天早上它运行配置,就像这样,我们有一个测试,生产使用的机器学习管道。

建筑# 3:最后,管道严重健壮的模型。我们的培训环境住在砖Python笔记本和利用PySpark,和我们的数据管道由一系列的火花工作,都是由气流通过S3,联系在一起。

一旦我们有了管道集,生成模式变得简单。这个管道执行每天早上醒来之前,它将输出写入目录在S3中。在每月月底,我们运行一个简单的砖工作阅读每条路径的生成在前30天,执行“集会”模式。一旦完成了上卷,数据发布shop.safegraph.com,客户可以下载片位置、类别,或品牌。

大数据问题不解决笔记本电脑

如果挣扎通过这个管道告诉我们什么,那就是我们应该使用大数据技术,而不是小的数据技术,像2017空间灰色Macbook Pro -解决大数据问题。切换到砖,利用火花毫升和管理我们的管道气流带我们从12小时的运行时不到一小时——这不仅是一个巨大的节省时间的节约成本,但也让我们瞠目结舌。

我们开始这个项目,因为我们肩负着建立一个数据集来让人们了解群体与我们周围的现实世界。模式数据集可以帮助人们回答的关于社会的问题,事后来看,这并不奇怪,建筑需要崇高的一种方法。

哦,如果你有兴趣查看这些数据(或者如果你不想我们的努力白白浪费),到shop.safegraph.com并使用优惠券代码data4databricksers100美元的免费的兴趣点,建筑足迹,和定居的见解数据。

免费试着砖
看到所有客户的帖子