云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

美国服务器_数据库编程入门_代金券

小七 141 0

构建步行交通洞察数据集

我应该在哪里建我的下一家咖啡店?企业既要了解周围的物质世界,也要了解人们如何与物质世界互动。我应该在哪里建我的下一家咖啡店?离我最近的三个咖啡竞争对手有多远?人们要走多远才能到我的商店?人们在参观我的品牌之前和之后还会参观哪些品牌?这些问题对城市规划者、广告商、对冲基金和实体企业来说无疑是有趣的。但它们也暗示了一个有趣的技术问题:大规模的机器学习。建立一个数据集来全面回答这些问题是一个非常困难的计算问题,因为它需要大量的机器学习。在这篇文章中,我们会告诉你我们是如何解决这个问题的。我需要什么数据?首先,一些关于SafeGraph的上下文。我们的目标是成为一站式商店,为任何人寻求了解他们周围的物理场所-餐厅,机场,学院,沙龙…名单继续。为了完成这项任务,我们创建了代表我们周围世界的数据集。一个这样的数据集是我们的核心场所产品,它是一个在全国各地超过5百万的企业的清单,包括丰富的信息,如类别和营业时间。这个数据集由几何学补充,这是一个补充数据集,它将每个地方与地理围栏相关联,以指示建筑的物理占地面积。下面是SafeGraph的3个主要数据集,每个数据集都讲述了周围物理环境的不同故事。这篇文章是关于我们如何构建模式的,一个关于我们周围的物理环境以及人类如何与之交互的数据集。Safegraph数据集模式-人类如何与自然环境互动?最终,我们希望模式由safegraph_place_id键控,这是我们数据集中每个位置的规范标识符。每一行都是一个独特的物理位置,我们计划为每个位置计算一组列,这些列集中描述了人们如何与之交互。我们计算的一些列的例子包括游客数量、一天中最受欢迎的地方的小时数,以及人们在参观该地方之前或之后访问过的其他品牌的列表。 我们的模式数据集的一些列,来自shop.safegraph.com商店. 使用优惠券代码data4databricksers获得100美元的免费兴趣点、建筑占地面积和脚流量洞察数据。为了在地点和访问统计数据之间建立这种映射,我们首先需要构建一个内部数据集,该数据集使用我们的地理围栏数据集将我们的匿名内部GPS馈送与地点的物理位置关联起来。我们只需访问一个关键点,我们就可以建立一个关键点的关联。在许多方面,核心技术挑战归结为建立访问数据集。我们从三个核心要素开始:(1)地点,一个围绕美国的兴趣点的数据集,(2)几何学,这些地方的实际建筑足迹,以及(3)来自应用程序的GPS数据的每日匿名馈送。 由于GPS数据本身具有很大的噪声,并且通常只能精确到100米左右,因此我们需要一个机器学习模型来解释噪声中的信号并为预测服务。除此之外,我们还需要数据管道来接收GPS提要,对其进行聚类,并根据集群和位置数据集构建特性。下面,我们将讲述(有点痛苦)我们是如何做到的(如果您对我们开发模型本身很好奇,请随时查看我们的访问归属白皮书)。 构建模式体系结构我们首先决定用小数据工具(即在Jupyter笔记本电脑上本地开发的scikit学习模型)来处理这个大数据项目,因为这些都是我们所熟悉的。Databricks所起的唯一作用是当我们使用它从S3中读入训练数据并将其采样到百分之零点一的时候。然后我们将数据合并成一个CSV并下载到Macbook上。而且,在大多数情况下,我们确实可以得到一个合理的模型并运行,但是它只能在25MB的数据上进行训练,当我们把这个数据加倍的时候,计算机就冻僵了。只有在我们开发了最初的模型之后,我们才清楚地看到,这种架构不会带我们走多远。重要的一课?如果你的MacBookPro是你的数据管道的一部分,你已经走得太远了。这很少是生产准备就绪的最佳方法。 架构(Architecture)#1:通常只做小数据建模的人的第一次合理尝试。我们想说的是,我们很快转向了使开发真正可扩展解决方案变得微不足道的技术,但这还没有实现。接下来,我们提供了一个公认的昂贵的EC2设备,根据1%的培训数据重新培训了一个模型,并通过该设备运行了一天的生产准备投入。而且这个模型似乎像预期的那样在预测!但这里的"成功"不仅仅是预测的准确性,它也是预测的时间。我们的设置花了12个小时来处理一天的输入数据。以这种速度,模型无法及时计算到客户手中。架构2:就像架构1一样,只是用EC2实例取代我的MacBookPro。很近,但不够快。在两次失败的尝试之后,现在是时候全力以赴,用我们不熟悉但我们有信心能完成任务的生产就绪技术来咬紧牙关。我们从取消单线程模型开始,在Databricks笔记本中训练一个完全分布式的SparkML森林。用户界面反映了我们在Jupyter中看到的,我们在学习SparkML的来龙去脉中损失的时间在减少的培训时间中得到了弥补。用我们1%的训练数据训练一个玩具模型之前花了45分钟,但是有了Spark on Databricks,我们能够(字面上)调整数百个模型,然后找到一个比我们在EC2盒子上取得的成绩好得多(更不用说速度了)。一旦我们的脚湿了,建立模型前和模型后的数据管道就不再那么可怕了。我们直接在Databricks笔记本中编写数据管道,一旦我们确认了它们是正确的,我们就将它们迁移到jars并上传到S3。我们还将Spark模型保存到一个二进制文件中,并上传到S3,同时在模型上添加了一个简单的Python包装器来实际服务于预测。我们只是想办法让它可靠地运行。幸运的是,SafeGraph已经启动了一个flow实例,所以我们需要做的就是创建一个新的DAG并将jars和Python egg链接在一起。我们把它配置成每天早上都运行,就像那样,我们有一个经过战斗测试、生产就绪的机器学习管道。架构3:最后,一个非常健壮的模型管道。我们的培训环境位于Databricks Python笔记本电脑中,并利用PySpark,我们的数据管道由一系列Spark作业组成,所有作业都由气流管理,并通过S3连接在一起。一旦我们设置了管道,生成模式就变得简单了。这个管道每天早上在我们醒来之前执行,它将输出写到S3中的一个目录中。在每个月底,我们运行一个简单的Databricks作业来读取前30天生成的每个路径,并对模式执行"上卷"。汇总完成后,将在上发布数据shop.safegraph.com商店,客户可以按位置、类别或品牌下载切片。 大数据问题不能在笔记本电脑上解决如果说在这条管道中挣扎让我们学到了什么的话,那就是我们应该使用大数据技术——而不是像2017年Space Gray Macbook Pro那样的小数据技术——来解决大数据问题。切换到数据块,利用Spark-ML,以及用气流管理我们的管道,从12个小时的运行时间缩短到了不到一个小时——这不仅大大节省了时间,而且还为我们节省了惊人的成本。我们开始这个项目是因为我们的任务是建立一个数据集,让人们了解人们如何与我们周围的物理世界互动。模式数据集可以帮助人们回答有关社会的崇高问题,而且,事后看来,构建它需要同样崇高的方法也就不足为奇了。哦,如果你有兴趣查看这些数据(或者你只是不想让我们的辛苦工作白白浪费),那就去吧shop.safegraph.com商店并使用优惠券代码data4databricksers获得100美元的免费兴趣点、建筑占地面积和脚流量洞察数据。 免费试用Databricks。今天就开始吧