阿里云ACP-数据湖和机器学习
数据湖(Data Lake)
各业务数据形成数据孤岛,需要大量资金维护管理,并且非结构化数据爆发和日益增长的海量数据分析需求,逐渐形成大数据结构,导致数据使用成本越来越高。
数据湖:
- 统一的元数据存储解决数据孤岛问题
- 保存原始数据,而非裁剪过后的数据
数据湖能解决的问题
演化:
湖格式: - ACID事务特性(因为很多时候并发读写的)
- 批流数据处理
- 多种工作负载/分析引擎
- 访问性能优化
- Schema验证与演化(无需重写历史数据)
- Upsert/Delete数据更新能力
- 多版本并存+时间旅行
数据湖构建方案
数据导入-数据存储-数据分析-数据应用
OSS:%99.9999999999(12个9)的持久性
方案一:开源体系云原生数据湖(OSS-HDFS+DLF+EMR)
场景二:实时数据湖方案
场景三:湖仓一体化方案(DLF+EMR+MC+DW)
DLF是桥梁,管理湖仓元数据,Dataworks做任务开发
数据存储层
数据设计持久性:不低于99.9999999999(12个9)
服务可用性(业务连续性):不低于99.995%
OSS存储类型
OSS-HDFS:
JindoFS服务化,下一代云原生数据湖存储产品
(可以在Bucket开通并授权访问OSS-HDFS服务)
(或者在已创建的Bucket开通并授权访问OSS-HDFS服务)
不可逆开通
OSS-HDFS快速入门
数据湖管理
Data Lake Formation数据湖构建
数据湖构建之后
入湖直接在数据源管理中新建数据源
也可以在入湖任务管理中添加多种类型的入湖任务
元数据操作:
数据目录是最上层实体,包含多个数据库。
数据探索
交互式查询服务
10000行+60分钟+600000字符+4G+200CU
主体-资源-访问方式
湖管理:
存储预览、生命周期管理、用量信息
数据湖计算层
EMR开源大数据平台:快速低成本分析和存储PB级别数据
EMR产品架构:
JindoData:
数据湖存储加速套件
比HDFS更高性能,免运维,数据持久性不急于12个9
EMR on ECS可视化、便捷高效的集群管理功能
EMR on ECS有丰富的监控能力
EMR on ACK部署
EMR支持多种场景
数据湖–数据流–多维分析OLAP–数据服务场景
EMR集群规划-节点类型
core不支持弹性伸缩
ECS实例说明
‘选型
元数据存储
集群脚本:
基于EMR+DLF+OSS构建数据湖
-
创建采用DLF为元数据服务的EMR集群
-
DLF统一元数据
-
在DLF中创建元数据库和元数据表
-
通过过DLF入湖功能创建RDS到数据湖的入湖流程
表路径:RDS的库/表
-
通过EMR的Spark引擎查询DLF表
机器学习
数据分析是商业目的,进行收集整理和加工分析数据,提炼有价值信息的过程
大数据分析针对海量的多样化的数据集合
广义数据分析:(狭义数据份分析(对比分析、分组分析、交叉分析、回归分析),数据挖掘(分类模型、回归模型、聚类模型、关联规则))
数据挖掘:从大量的不完全的有噪声的、模糊的、随机的实际应用数据中,通过应用分类、回归、聚类和关联规则等机器学习模型,挖掘潜在价值的过程。
大数据分析分类:
描述型分析:发生了什么,进行统计,数据可视化展示(广泛的精确的实时数据,有效的可视化)
诊断型分析:为什么会发生(能够钻取数据的核心,能够对混乱的信息进行分离)
预测型分析:可能会发生什么,利用算法为用户预测待定的结果(预测特定的结果,自动生成决定)
指令型分析:怎么做(选定最佳的行为和策略,做出决策)
应用场景:商业的数据、制造业的设备数据、媒体的信息数据
分析流程:
- 数据采集与预处理:实时/离线–数据清洗-变换-规约
- 数据存储与管理:数据存储-数仓建模-元数据管理-数据质量控制-数据安全管理
- 数据计算和分析:多维统计分析-分布式实时计算-交互式分析-数据挖掘
- 数据应用:数据报表-可视化-数据服务(比如ChatGPT)-数据分享
常用分析工具:
- Excel:基础
- Python/R:简单编程语言(大量第三方库)
- SPSS:类似excel表格输入管理数据,方便从其他数据读入数据,容易使用,但无法处理海量数据
- Spark: 大数据领域的分布式计算引擎
- 机器学习PAI:阿里云推出的机器学习算法平台,拖拉拽即可,连线方式连接组件。支持多种计算框架
- FineBI/QucikBI:数据可视化,FineBI是国内的,QuickBI是国内平台
机器学习概述
让计算机用已知数据,发现数学模型(y=ax+b),然后使用模型对未知数据进行预测(分类,聚类,回归…)的一门多领域交叉学科。
需要会:编程(比如Python)、线性代数、微积分、概率论、矩阵论、信息论、专业领域基本理念
机器学习分为有监督(分类(离散值)、回归(连续值))和无监督(聚类、关联规则)
分类:
KNN:近朱者赤,近墨者黑算法,要判断一个新数据点是什么类别(或数值),就看它周围最近的 K 个邻居是什么样(特征值在哪些情况下会得出标签),K代表邻居数,最近
代表计算数据点距离(欧式距离、曼哈顿距离、闵可夫斯基距离)
- 分类任务: 找出 K 个最近邻居后,采用 多数投票 原则。即,K 个邻居中哪个类别占多数,新数据点就属于哪个类别。
- 回归任务: 找出 K 个最近邻居后,计算这些邻居目标值的 平均值(或中位数),作为新数据点的预测值。
决策树:有根节点和叶子节点,特征(每一列)就是节点,最终是标签值。
朴素贝叶斯:按照概率分类
SVM支持向量机:数据支撑,找到几个支撑向量
逻辑回归:向量回归之上的segmod函数
回归
聚类
K均值:每次随机在簇里质心,然后所有数据计算到质心的距离最少,直到质心变化的值最小
关联规则
支持度:在所有记录出现的比例
置信度:购买A后再购买B的可能性有多大,置信度大于50%,留下来的二二结合,找到频繁项集(出现>1),平凡二项集、三、四、n项集
机器学习流程
需求分析–数据预处理–特征工程–算法建模–模型评估–模型应用
数据预处理
箱线图:QU-QL,将值从上到下排序,上75%为QU,下25%为QL,如果不在范围内则为异常值
归一化
特征工程
数据和特征决定上限,算法和模型只是逼近这个上限
one-hot读热编码:字符串型转为数值型,最后从一列变成四列,扩大
哑编码:四列变三列,缩小
连续型离散化:分箱操作,原来的数值变成按照区间分割。
特征选择:100列选择几列重要的,包装和过滤在模型里面选那几列
特征降维:PCA(无监督)和LDA(有监督)
特征生成:自动生成列,比如组合别的列
数据划分:分为训练集和测试集
留出法(一刀切(数据不均匀不行))
交叉验证法(数据集分为很多份,每次拿其中一份测试,然后再拿一份其余训练以此类推)
自助法(有放回的抽样进行训练和测试,没有模中的放在测试集)
模型训练
将加工好的数据输入到特定的算法模型,经过调整参数,使得模型性能和效率可以接受
有监督:输出原始数据x和标签y
无监督:只需输出原始数据x
模型评估
TP:真正的正例 (正例)
FP:假的正例 (反例)
FN:false negitive (正例)
TN:真正的反例 (反例)
准确率A:75/100=(TP+TN)/总
精确率P:50/65=TP/(TP+FP)
召回率R:50/60=TP/(TP+FN)
F分数=(2PR)/(P+R) :[0,1]
ROC曲线:
TPR:假阳率 :y坐标
FPR:真阳率:x坐标
回归:连续输出,将预测和真实值做差:MSR、RMSE、MAE(以上越0越好)、R^2(越1越号)
聚类从标签,有标签评估:兰德系数(0-1,越1越好)
无标签:轮廓系数:(-1到1,越1越好,越-1越差)
应用场景
PAI可视化
数据标注、模型构建、模型训练、模型部署、推理优化
智能标注:主动预标注
数据安全:保证标注数据不泄露
智能标注
可视化建模,拖拉拽即可
交互式建模PAR-DSW(ipynb)
机器学习训练平台
在线预测服务
进行部署和预测
流程:
先开通PAI服务之后和普通机器学习一样,最后部署(EAS)
PAI可视化建模开发
Maxcompute存储数据
Dataworks数据预处理
PAI引用Maxcompute数据表作为数据源
PAI designer可视化建模:进行模型训练(数据处理-特征工程-建模-评估,拖拉拽形式和自动调参,无编程玩转AI)
Dataworks进行任务定时调度
任务管理,将designer执行信息记录,进行试验比较
模型管理,统一管理模型,直接对接EAS模型在线服务,将模型部署为在线服务
入门PAI Designer
-
创建AI工作空间
开通-新建AI工作空间(不同的算法需要的资源组不一样) -
新建自定义工作流
进入Designer- 新建自定义工作流-进入工作流
-
数据准备与预处理
拖拽:
准备数据-数据预处理-数据归一化-调试运行工作流
-
数据可视化
查看数据分析结果
使用执行后就能查看
-
算法建模
搜索(建模/评估)算法直接拖拽到数据后面,设置字段
-
评估模型
一键部署,设置名字和启动服务器配置就行
-
模型部署
单击调试按钮后进入调试界面,输入数据出现结果标签
PAI Designer深度学习框架组件
TensorFlow、Caffe、PyTorch、MXNet
PAI Designer:支持AutoML自动调参-找到最佳的参数组合值
Grid search
在可选的范围内拆成几段,在这些段里面随机选取一个值,一共段数^参数值组模型
随机搜索
每个参数在范围内随机选一个值,组成一组参数,共迭代次数个模型
其他调参算法
一个组件最多四个表输入:t1、t2、t3、t4
自定义算法组件-SQL脚本
交互式建模开发
准备数据集-PAI DSW建模开发-(镜像管理-训练任务提交,代码管理(nas/git)-训练任务提交)-模型管理-模型在线服务EAS
PAI DSW深度学习开发
云jupyter,但是有提供深度学习框架
读取Maxcompute数据:使用pyodps,跟pandas一样
读取OSS:import oss2
/import tensorflow
数据可视化
作用
常用图表:
线型图(时间变化,预测)、柱状图(一段时间内的趋势/两类比较)、饼图(成分占比)、散点图(相关性、分布关系趋势)、漏斗图(业务流程)、树图(承接关系)、矩阵树图(关系和占比)、雷达图(特征分析)
指标看板(展示指标)、仪表盘(某个指标情况)、地图(地理信息相关的)、指标趋势(变化趋势)、词云图(关键字权重)、动态条形图(动态展示随时间变化的信息)、排行榜(分布和排名)、桑基图(数据的分流)
可视化设计步骤
可视化原则:
分类-BI报表(FineBI/QuickBI)/可视化大屏(DataV)
Quick BI(报表)
优势:有名、有认可、数据分析全覆盖(数据找人)、移动办公系统(快速分享讨论数据)、适配好、业务人员也能用、接收分析数据量大、低代码+安全嵌入集成
应用场景1:数据自主分析与决策
QucikBI自助取数
应用场景2:报表与自有系统集成
统一系统入口
应用场景3:交易数据权限管控
成功案例:
成功案例2:
QuickBI流程:
-
准备工作:创建账号、开通QuickBI、创建工作空间、准备数据源
-
连接数据源:会上传数据,并配置工作流数据源
-
数据建模:对原始数据进行预处理,划分数据集
根据数据源创建数据表,数值型为度量y,非数值为维度x,可以join操作
-
数据可视化分析(创建可视化报表):对数据可视化处理,获取数据分析结果,创建仪表板–报表,直接拖拉拽
-
发布共享:选择对应算法并进行建模
可以设置数据门户分享