在 Amazon 搭建无代码可视化的数据分析和建模平台

news2024/11/18 21:39:20

现代企业常常会有利用数据分析和机器学习帮助解决业务痛点的需求。如制造业中,利用设备采集上来的数据做预测性维护,质量控制;在零售业中,利用客户端端采集的数据做渠道转化率分析,个性化推荐等。

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点这里让它成为你的技术宝库!

通常业务部门需要提需求给技术团队,技术团队将业务需求转换为技术需求,调动数据工程师,数据科学家,机器学习工程师等,做数据处理、分析以及建模,整个流程较长,需要比较高的跨团队沟通成本,且对企业人才储备技能有要求。 客户业务部门普遍期望降低使用机器学习解决业务问题的门槛和学习成本,使得业务分析人员可以较少借助数据科学家和数据工程师,快速解决特定领域的业务数据洞察。

本文以汽车行业的故障分析为例,演示如何在亚马逊云科技上构建一套无代码数据分析平台,业务人员不需要有编程能力、 SQL 或任何机器学习的先验知识,即可自行根据业务场景和具体需求,自助式的上传导入数据做出分析,从而帮助业务人员以最短的时间,最方便的使用数据。

场景和痛点

车辆的异常故障率通常受多个因素影响,比如生产批次问题,使用年限,经销商维保等。

在过去,质保部门被动的接受零散客户的问题上报和维修请求,当某车型或某批次的问题积攒到一定程度乃至爆发后,才能定位这部分车辆的问题统一进行召回。突然的故障爆发使得相关部门没办法提前预算出维修经费,没法提前准备备件,没法提前做管控措施,也影响车主的体验。

因此,对车辆质保数据做数据分析,对故障发生情况做基于时序的分析或者聚类分析,并根据现有数据对故障趋势进行预测,可以帮助业务部门实现质量预警,质量改善的目标,有助于企业和部门提前做预算,提前采取相应措施降低整体维修费用。

技术目标

基于实销车辆数据,以及车辆维修数据 ( 两个 Schema 如下表所示),基于车型,绘制出可以描述故障发生情况的曲线, 对曲线进行分类,归纳出相似的故障曲线,筛选出异常的故障曲线,以达到对异常故障进行预测,提前预警的目的。

  • 车型故障曲线 :如根据时间、行驶里程数、车龄等维度的车辆故障数增长曲线。 本文以车龄这个维度为示例,其他条件类似,只是聚合条件发生变化。
  • 归纳相似形状,筛选异常故障曲线
  • 根据现有数据预测趋势
Sampling Schema
  1. Repair data

image.png

  1. Sales data

image.png

架构

  • 选择 Glue Databrew 作为主要数据处理的工具。 Amazon Glue Databrew 提供一个可视化的工具,可以帮助数据分析师和数据科学家对数据做数据清洗和转换,从而方便后续将数据应用到分析和机器学习的场景。Glue Databrew 提供多达 250 种预构建转换中的操作,都可通过 UI 自动执行,不需要任何代码。比如,筛选异常数据、将数据转换为标准格式以及纠正无效值等等。
  • 利用 Glue 做数据格式(Schema)的爬取,通过 Athena 作为 connector,最终用 QuickSight 作为 BI 展示工具,做 dashboard 展示
  • 利用 Databrew 处理后的数据作为模型输入,利用 Sagemaker Canvas 生成预测模型。Amazon SageMaker Canvas 通过为业务分析师提供可视化、点击式的界面来扩展对机器学习 (ML) 的访问,利用AutoML 技术,根据您的独特用例自动创建 ML 模型,而无需任何机器学习经验或编写任何代码。 同时SageMaker Canvas 与 Amazon SageMaker Studio 集成,使业务分析师可以更轻松地与数据科学家共享模型和数据集,以便他们验证和进一步优化 ML 模型。

image.png

前提条件

  1. Glue Databrew 在大多数区域已经支持(包括北京和宁夏区),可在控制台切换至目标区域。 SageMaker Canvas 目前在部分区域推出,具体 region 请参考此 FAQ 文档。本文使用 Ohio (us-east-2) 为例。
  2. 将样本数据先存储在目标区域的某个 S3 桶中。如您不了解如何上传,请参考此 S3 文档

方案步骤

1. Glue Databrew 进行数据转换

该章节完成如下功能

  • 无效数据清理
  • 转换车辆维修数据,以适配销售数据
  • 车辆维修数据和销售数据的合并
  • 按照车型和车龄聚合数据
  • 计算故障率

详细步骤

1.打开 Databrew 控制台,点击左侧栏 “数据集 (Datasets)”, 点击 “连接新数据集 (Connect new dataset)” 以创建数据源

2.在为数据集命名 (如 “repair-data”) 并选择 S3 的存储位置,数据格式 csv,采用默认分隔符 “,” ,点击创建数据集。同理,创建命为 sales-data 的数据集,csv 格式,默认分隔符 “,” 创建数据集。

image.png

3.选中刚创建好的数据集 repair-data,选择 “使用此数据集创建项目 (create project with dataset)” , 输入项目名称和配方名称,选择现有的或者新创建一个 IAM Role,需确保此 IAM Role 有权连接到所选的数据。点击 创建项目。 等待 DataBrew 界面的加载。

4.第一步, 无效数据的清理。

(1)选择 CarAgeDay 这一列(代表按天计算的车龄),点击 filter,并选择仅保留大于0的数据(或者根据需求,自定义此值)。如图所属,编辑完 Greater than 0 的条件后,点击 add to recipe,此时会在右侧生成浏览,请点击 APPLY 以生效

image.png

(2)将 mileage 进行 filter,只保留大于0的有效数据。同样点击 add to recipe 然后点击 apply 以生效。

image.png

5.第二步,将车辆维修数据的销售年份和销售季度合并为一个字段适配销售数据:点击右侧 recipe,add step,并选择 merge 操作 (Concatenate Columns),将 RegiDate_Year 和 RegiDate_Quarter 合并, 以 “ Q ” 作为连接符,target column name “year_quarter”

image.png

image.png

6.第三步,合并车辆维修数据和销售数据: 点击 JOIN 操作,选择 sales-data 作为要 join 的数据集,选择 LEFT JOIN, 并将 year_quarter 以及 Sales_Quarter 作为 join key,浏览后点击finish

image.png

image.png

7.第四步,按照车型和车龄聚合数据: 如下图所示,按照 Series_new 和 CarAgeMonth 做聚合 Group by,生成故障数和销售数。

image.png

8.第五步,计算故障率

(1)为了做除法,先将 defect number 改为 INT 数据类型

image.png

image.png

(2)为了计算故障率,我们选择DIVIDE方法,第一列选择 defect_number, 第二列选择 total_sales_number,目标列命名为 defect_rate

image.png

9.第五步,计算故障率:对 defect_rate 做过滤,去除小于0的那些无效值

image.png

10.最终数据和配方如图所示, 基于每种车型做聚合,我们可以追踪出针对不同车龄的故障率。当然您也可以根据需求自行对数据做更多处理和转换。

image.png

11.点击右上方 Create job,以将此配方用于整个数据集。 定义job名称,文件输出地址(S3 location),选择 IAM role (此 Role 需要有 S3 对应位置的读写权限)后,点击最下方 create and run job, 大概会在 2min 完成数据的处理。

image.png

12.当 final 后,可以选择将 recipe publish 以保存配方。此配方在下一次可以直接用于应用于其他样本集。

image.png

2. 利用 QuickSight 进行数据展示

该章节完成如下功能

  • Glue 爬取 Databrew 输出的 Schema,作为数据目录
  • 利用 Athena 作为 Connector,连接至 BI 工具 QuickSight
  • 在 QuickSight 中自定义 Widget 和 Dashboard

详细步骤

1.到 Glue Crawler (爬网程序) 中,点击添加爬网程序 (add crawler ),定义 S3 数据所在位置,也就是刚才 Databrew 的输出位置 。定义完成后,记得点击 run crawler 以启动此运行任务。 当job 完成后,请到左侧 Table (表)这一栏中检查 data schema 。

image.png

image.png

2.因 Athena 使用的是 Glue 的数据目录,因此点击来到 Athena,可以看到刚才我们爬网过的 defect-rate 的 table,本文也用 Glue 也爬过其他的两张原始表,显示如下。

image.png

3.控制台到 QuickSight ,添加数据集 (dataset), 选择 Athena 作为数据源。根据提示,选择目标表,将数据加载到 QuickSight 当中。

image.png

image.png

4.导入成功后,添加 New analysis , 在这里可以利用数据的不同维度,以及不同的图表形式,进行自定义的数据探索和展示。本文以不同车型的 defect rate,销量为例,可以看出,SERIES4 为比较畅销的一款车型,此车故障率较高,且故障率基本高频发生在车龄三年左右的时候,我们可以根据此规律提前做客户关怀和车检。 因此文重点不在于 Quicksight 的使用,因此不再展开,如对 QuickSight 使用不熟悉,可以点击此教程 做参考。

image.png

image.png

12.在将所有的数据都整合完毕后,点击右上方的 share ,可以将此发布为一个 dashboard

3. 利用 Sagemaker Canvas 作为机器学习的工具

该章节完成如下功能

  • 对数据进行额外处理
  • 合并多份数据
  • 利用 Sagemaker Canvas 构建模型
  • 生成预测

详细步骤

1.我们可以利用已有的数据做车辆销售数量预测,维修数预测等。本文以故障率作为 预测的目标为例。首先在 Databrew 将其他多余的 column 取出掉,只保留 series,caragemonth,defect_rate 三个列,目标是根据 series 和 carage,可以推测出不同系列车型的故障率。(也可以在下一步 csv 下载完毕后,手动移除掉这两列)

2.因为 Sagemaker Canvas 目前只支持一个单文件作为模型的 dataset,因此我们首先用 Athena 将多个 Databrew 输出的文件 merge 成单个 csv。 我们打开 Athena 执行 select * 之后像截图右下角所示将结果进行下载,这样我们得到一个单个 csv 文件。

image.png

3.进行必要的列移除(如第一步所述)

4.将数据上传至 Sagemaker Canvas dataset

5.Create model,选中此数据集,选中 target 为 defect_rate。 如希望快速生成模型,选择 quick build 以构建模型(2-15min); 如需要更高的精准度,选择 standard build(2-4小时)。本文选择 quick build。

image.png

6.等待模型生成后,就可以根据 carage 做故障率的预测。可以上传一份 csv 文件,做 batch prediction;也可以输入单个值进行 single prediction。 本文以前者为例,上传希望预测的 series 和 carage(120个月),最终得到结果如下

image.png

8.如果选择的是 Standard build,在模型创建后,SageMaker Canvas 还可以一键将模型共享到 Amazon SageMaker Studio ,使业务分析师可以邀请数据科学家对模型和共享数据集进一步验证和进一步优化 ML 模型,达到生产部署的水平。

image.png

结论

本文提供了一个基于图形化的数据处理和 AutoML 的方案,利用 Glue Databrew 和 Sagemaker Canvas 等服务,构建一个无代码数据分析和机器学习平台,一方面,帮助客户业务分析师降低数据处理和ML 专业知识的学习曲线,降低跨部门沟通成本,保持 AutoML 结果的可解释性,方便与数据科学家在模型和数据集层面共享并持续优化。 另一方面,此平台基于无服务器,无需客户管理服务器,按需付费。

本篇作者

image.png

李天歌 Amazon 解决方案架构师,负责基于 Amazon 的云计算方案架构咨询和设计,擅长开发,serverless 等领域,具有丰富的解决客户实际问题的经验。

image.png

梁睿 梁睿,Amazon 解决方案架构师,主要负责企业级客户的上云工作,服务客户涵盖从汽车,传统生产制造,金融,酒店,航空,旅游等,擅长 DevOps 领域。11年 IT 专业服务经验,历任程序开发,软件架构师、解决方案架构师。

文章来源:https://dev.amazoncloud.cn/column/article/630b3a84269604139cb5e9ea?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=CSDN 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/956111.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

能直接运营的发接任务平台小程序搭建开发演示

有个项目估计做过互联网的小伙伴都听说过——发接任务平台。 基本每年都有发接任务平台关站,但又有新的平台出来,往复循环,无比热闹。这在互联网圈不常见,互联网项目很多都是风头过去了就结束了,但发接任务年年似乎都…

HTML 播放器效果

效果图 实现代码 <!DOCTYPE HTML> <html><head><title>爱看动漫社区 | 首页 </title><link href"css/bootstrap.css" relstylesheet typetext/css /><!-- jQuery --><script src"js/jquery-1.11.0.min.js"…

进程间通信-Binder

Binder Binder框架概述服务端Binder驱动客户端 设计服务端和客户端设计服务端客户端设计 Binder与ServiceServiceAIDL 保证包裹内参数顺序IMusicPlayerServiceProxyStub 系统服务中的Binder对象ServiceManger管理的服务理解Manger功能快捷键合理的创建标题&#xff0c;有助于目…

19 Linux之Python定制篇-apt软件管理和远程登录

19 Linux之Python定制篇-apt软件管理和远程登录 文章目录 19 Linux之Python定制篇-apt软件管理和远程登录19.1 apt软件管理19.1.1 apt介绍19.1.2 更新软件下载地址-阿里源19.1.3 使用apt完成安装和卸载vim 19.2 远程登录Ubuntu 学习视频来自于B站【小白入门 通俗易懂】2021韩顺…

两个pdf文件合并为一个怎么操作?分享pdf合并操作步骤

不管是初入职场的小白&#xff0c;还是久经职场的高手&#xff0c;都必须深入了解pdf&#xff0c;特别是关于pdf的各种操作&#xff0c;如编辑、合并、压缩等操作&#xff0c;其中合并是这么多操作里面必需懂的技能之一&#xff0c;但是很多人还是不知道两个pdf文件合并为一个怎…

基于材料生成算法优化的BP神经网络(预测应用) - 附代码

基于材料生成算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于材料生成算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.材料生成优化BP神经网络2.1 BP神经网络参数设置2.2 材料生成算法应用 4.测试结果&#xff1a;5…

【Tkinter系列09/15】小部件(Scrollbar

22. 小部件Scrollbar 许多小部件&#xff08;如列表框和画布&#xff09;可以 就像将窗口滑动到更大的虚拟区域一样。你 可以将滚动条小部件连接到它们&#xff0c;为用户提供 相对于内容滑动视图的方式。 下面是带有关联条目小部件的屏幕截图 滚动条小部件&#xff1a; 滚动条…

CSS学习笔记03

CSS笔记03 盒子模型 什么是盒子模型 概念&#xff1a; CSS 盒子模型就是在网页设计中经常用到的一种思维模型&#xff0c;是 CSS 布局的基石&#xff0c;主要规定了元素是如何显示的以及元素间的相互关系。定义所有元素都可以有像盒子一样的平面空间和外形。包含内容区、内边…

汉服网上购物商城穿搭交流的微信小程序的设计与实现

社会的发展和科学技术的进步&#xff0c;互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱&#xff0c;也逐渐进入了每个用户的使用。手机具有便利性&#xff0c;速度快&#xff0c;效率高&#xff0c;成本低等优点。 因此&#xff0c;构建符合自己要求的操作系统是非…

Redis项目实战——优惠券秒杀

目录 Redis自增功能解决全局唯一IDRedis实现优惠券秒杀的主要思路实现过程中出现的问题及解决方法超卖问题方案1 悲观锁方案2 乐观锁 一人一单问题分布式锁如何用Redis实现分布式锁&#xff1f; Redis优化秒杀消息队列实现异步秒杀List发布订阅模式Stream Redis自增功能解决全局…

通过RISC-V预认证解决方案应对功能安全挑战

安全之安全(security)博客目录导读 2023 RISC-V中国峰会 安全相关议题汇总 说明&#xff1a;本文参考RISC-V 2023中国峰会如下议题&#xff0c;版权归原作者所有。

Nuxt3_2_SEO and Meta+Transitions

1. SEO and Meta 使用强大的head配置、可组合组件和组件来改善nuxt应用的SEO。 nuxt开箱即用&#xff0c;提供了相同的默认值&#xff0c;如果需要&#xff0c;你可以覆盖这些默认值。 charset: utf-8viewport: widthdevice-width, initial-scale1 可以在nuxt.config.ts中进…

Unity3D 连接 SQLite 作为数据库基础功能【详细图文教程】

一、简单介绍一下SQLite的优势&#xff08;来自ChatGPT&#xff09; 轻量级: SQLite是一个嵌入式数据库引擎&#xff0c;它的库文件非常小巧&#xff0c;没有独立的服务器进程&#xff0c;适用于嵌入到其他应用程序中&#xff0c;对于轻量级的项目或移动应用程序非常适用。零配…

云原生Kubernetes:K8S概述

目录 一、理论 1.云原生 2.K8S 3.k8s集群架构与组件 二、总结 一、理论 1.云原生 &#xff08;1&#xff09;概念 云原生是一种基于容器、微服务和自动化运维的软件开发和部署方法。它可以使应用程序更加高效、可靠和可扩展&#xff0c;适用于各种不同的云平台。 如果…

执行公开网数据采集-技术人员撤退

首先逼逼&#xff0c;此贴仅为秀肌肉&#xff0c;技术人员想学习的话可以绕道了 打开控制台&#xff0c;看cookie&#xff0c;ST&#xff0c;某数 第一个请求412&#xff0c;看VM 然后就是替换js&#xff0c;hook&#xff0c;之类的&#xff0c;扣代码流程&#xff0c;此处省…

C语言:函数原型声明时的参数列表

相关阅读 C语言专栏https://blog.csdn.net/weixin_45791458/category_12423166.html 在C语言中&#xff0c;使用函数前&#xff0c;要么对函数进行了定义&#xff0c;要么对函数原型进行了声明&#xff0c;ANSI C形式的函数原型声明形式如下&#xff1a; void show(char ch, …

nvm use node版本无效问题

没想到使用nvm还折腾一上午&#xff0c;安装nvm 1.1之后&#xff0c;发现 nvm install 16.20.2 nvm use 16.20.2 之后&#xff0c;node -v 根本不生效&#xff0c;找了很久发现少设置了一些变量&#xff0c;可以参考如下前人经验&#xff1a;nvm use 命令失效 - 简书 (jians…

成都优优聚优质美团服务机构!

成都优优聚是一家专业的美团代运营服务机构&#xff0c;其优秀的团队和丰富的经验使其成为了众多商家的首选合作伙伴。下面就让我们一起来了解一下成都优优聚做美团代运营的优势和特点。 首先&#xff0c;成都优优聚拥有一支专业高效的运营团队。团队成员均具备丰富的美团运营经…

2022年03月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;数字变换 给定一个包含 5 个数字&#xff08;0-9&#xff09;的字符串&#xff0c; 例如 “02943”&#xff0c; 请将“12345”变换到它。 你可以采取 3 种操作进行变换 &#xff08;1&#xff09;交换相邻的两个数字 &#xff08;2&#xff09;将一个数字加 …

ssm学生公寓管理系统的设计与实现

ssm学生公寓管理系统的设计与实现106 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归…