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

华为云_云服务器后台_是什么

小七 141 0

使用Databricks简化apachespark上的机器学习

正如许多数据科学家和工程师所证实的那样,大部分时间不是花在模型本身上,而是花在支持基础设施上。关键问题包括轻松可视化、共享、部署和调度作业的能力。更令人不安的是,数据工程师需要重新实现数据科学家为生产开发的模型。使用数据块,数据科学家和工程师可以简化这些后勤问题,并将更多的时间花在数据问题上。可视化简化对于数据科学家和工程师来说,一个重要的视角是快速可视化数据和生成的模型的能力。例如,使用线性回归时的一个常见问题是确定模型的拟合优度。虽然统计评估(如均方误差)是基础,但查看与回归模型相关的数据散点图的能力同样重要。 训练模特利用一个将人口(x)与中位数房价(y)的标签数据进行比较的数据集,我们可以使用Spark MLlib的随机梯度下降线性回归(LinearRegressionWithSGD)建立线性回归模型。Spark MLlib是apachespark的核心组件,它允许数据科学家和数据工程师快速实验和构建数据模型,并将其投入生产。因为我们正在试验SGD,所以我们需要尝试不同的迭代和学习速率(即alpha或step size)。开始试验这些模型的一个简单方法是用您选择的语言(python、scala、sparksql)创建Databricks笔记本,并通过markdown文本提供上下文信息。下面的屏幕截图是来自一个示例DBC笔记本的两个单元格,其中顶部单元格包含降价注释,而底部单元格包含用于训练两个模型的pyspark代码。图1:Databricks笔记本电脑训练的屏幕截图,两个模型与新元线性回归 评估模型一旦模型经过训练,使用一些附加的pyspark代码,就可以快速计算这两个模型的均方误差:值和预测=解析数据.map(λp:(p.标签,模型.预测(p.特征)MSE=值和预测值(λ(v,p):(v-p)**2).mean()print("均方误差="+str(MSE)) 模型的定义和MSE结果如下表所示。#迭代次数步长MSE公司A型1000.011.25095190484B型15000.10.205298649734虽然统计数据的评估很可能表明模型B具有更好的拟合优度,但是能够直观地检查数据将使这些结果更容易验证。 可视化模型对于Databricks,有许多可视化选项可以用于Databricks笔记本。除了在处理Spark数据帧时自动提供的默认可视化效果外,您还可以使用matplotlib、ggplot和d3.js—所有这些都嵌入在同一个笔记本中。在我们的示例中,我们使用的是ggplot(python代码如下),因此我们不仅可以提供原始数据集的散点图(蓝色),还可以提供两个模型的曲线图,其中模型a为红色,模型B为绿色。p=ggplot(pydf,aes('x','y'))+\几何点(color='blue')+\几何线(pydf,aes('x','y2'),color='red')+\几何线(pydf,aes('x','y3'),color='green')显示(p)在同一个笔记本中嵌入了房价中值ggplot散点图,其中x轴是标准化人口,y轴是标准化住房价格;模型A是红色的,而模型B是绿色的。图2:Databricks笔记本中嵌入的ggplot散点图的屏幕截图如上图所示,与红线(模型a)相比,绿线(模型B)具有更好的拟合优度。虽然评估统计数据指向这个方向,但在同一个笔记本中快速可视化数据和模型的能力允许数据科学家花费更多的时间来理解和优化他们的模型。 简化共享数据科学的另一个重要方面是解决数据问题所需的协作努力。由于许多开发人员、工程师和数据科学家经常在不同的时区、时间表和/或地点工作,因此有一个为协作而设计的环境非常重要。 便携性使用Databricks,您可以更轻松地与团队协作。您可以通过共享Databricks笔记本的URL来共享它,这样任何设备上的任何web浏览器都可以查看您的笔记本。图3:Databricks笔记本电脑视图,在iPhone6上通过matplotlib查看相同的线性回归SGD模型。 非专有虽然这些笔记本针对数据块进行了优化,但您可以将这些笔记本导出到python、scala和SQL文件中,以便在自己的环境中使用它们。这种方法的一个常见用例是,数据科学家和工程师将在数据块中进行协作和实验,然后将其生成的代码应用到其内部环境中。 共享定义作为一名数据科学家或数据工程师,处理许多不同的数据集,跟上模式和位置本身的所有变化可能是一项全职工作。为了帮助控制这一点,Databricks包括集中式表定义。不要搜索包含模式的include文件,而是转到Databricks中的tables选项卡,您可以在一个地方定义所有的表。通过这种方式,当数据工程师更新这些表的架构或源位置时,所有笔记本电脑都可以立即使用这些更改。图4:从一个地方查看表定义(模式和示例数据)。 合作在创建和共享笔记本时,用户可以对代码或图形进行注释,这样他们就可以在不进行任何更改的情况下为笔记本提供输入。这样你就可以锁定笔记本以防止意外更改,同时还能接受反馈。图5:用户在Databricks笔记本上发表评论,以便更方便地进行反馈 简化部署Databricks的一个主要优点是数据科学家开发的模型可以在生产中运行。这是一个巨大的优势,因为它缩短了开发周期,极大地简化了维护。相比之下,今天的数据科学家使用R或Python等单机工具开发模型,然后让数据工程师重新实现该模型以进行生产。 简化基础设施作为一名数据工程师,在生产中部署apachespark有许多步骤和配置。一些例子包括(但不限于):为Spark群集配置高可用性和灾难恢复构建必要的清单来启动和关闭集群配置Spark以利用本地ssd进行快速检索将Spark集群升级或补丁到最新版本的OS或apachespark使用Databricks,Spark集群的管理由专门的Databricks工程师负责,他们得到apachespark开源项目的开发人员和提交者的支持。这些集群配置为实现最佳性能,并平衡围绕资源调度、缓存和垃圾回收的问题。部署后,您可以快速查看可用的群集及其当前状态,包括连接到群集的库和笔记本。有关高可用性、灾难恢复、构建和部署群集的清单、服务管理、配置、修补和升级等问题都是使用您自己(或您公司的)AWS帐户代表您管理的。图6:Databricks集群视图,便于对Databricks基础设施进行管理 简化作业调度传统上,从代码开发过渡到生产是一项复杂的任务。它通常需要独立的人员和过程来构建代码并将其投入生产。但是Databricks有一个强大的作业特性,可以在生产环境中运行应用程序。你可以把你刚创建的笔记本作为一个周期性的作业来运行——每分钟、每小时、每天、每周或每月安排一次。它还具有智能群集分配功能,允许您在现有群集或按需群集上运行笔记本。您还可以接收作业的电子邮件通知以及配置重试和超时。图7:人口与价格多图表笔记本夜间作业视图 同样,您可以上传和执行针对Jobs特性中的任何Spark安装编译的任何Spark JAR。因此,可以立即使用以前的任何工作,而不是重新创建和重建代码库。 试用数据块我们创建了数据库,以便数据科学家和数据工程师更容易集中精力试验和培训他们的模型,根据这些模型快速部署和安排工作,轻松地协作和分享他们的经验,并轻松地共享数据集的模式和定义。让我们管理群集,配置它以获得最佳性能,执行升级和修补程序,并确保高可用性和灾难恢复。使用Spark MLlib进行机器学习,当你把大部分时间都花在机器学习上时,会更加有趣!免费试用Databricks。今天就开始吧