数据中心/用户分析/可视化 | 青训营笔记

264 阅读5分钟

这是我参与「第四届青训营」笔记创作活动的第18天

0 引言

本文是青训营最后三节课(第18/19/20次课程)的笔记,记录一下个人比较关注的地方。 数据中心_用户分析_可视化.png

1 实时数据中心建设思路与企业实践

数据中心思维导图.png 企业数据架构:
企业数据架构.png 数据集成(业务数据集成CDC/Log、存储系统间数据传输):

数据流向:业务数据库(client/server log)->数据系统

数据生产-离线实时:

数据流向:原始数据->数据处理pipeline

数据服务:

数据流向:数据系统->业务系统

计算架构:开发效率(Lambda架构->全量计算:一套开发任务)
数据源获取:全量能力-Hybrid Source(逻辑全量表,hive+kafka,成熟存储方案)
计算:正确、效率,核心是算子选择+优化
正确:处理更新/重复:rownumber+retract机制、乱序:join reorder
效率:时效性换效率-Minibatch (聚合、join)
质量:稳定性监控、数据监控

数据服务框架: 数据服务框架.png

2 用户行为数据分析理论与最佳实践

用户分析思维导图.png

数据分析全景图:
数据分析全景图.png

埋点简介
埋点(数据)是指:上报的记录着触发原因和状态信息的日志数据。按照上报方来看,可以划分为“服务端埋点”和“客户端埋点”按照上报形式,可以划分为“代码埋点”、“可视化全埋点”。

埋点包含要素:who when where how what how much。“张三”于“北京时间2022年1月2号12点整”在“游戏商城"用“xx支付”的形式“充值”了“500元”钻石。

埋点地点:在要做数据分析的环节来埋点。

常见分析工具:Excel、SQL、编程、可视化查询、人群圈选、行为分析、波动归因分析、BI定制报表

指标是数据的量化统计(样本),维度是数据分组的方式(特征)。

分析流程
分析流程.png

分析思路
分析思路.png

数据分析常见的问题

  • 上游数据质量不高
  • 不验证就全量上线
  • 优化策略短期有利而长期有损
  • 过分挖掘用户信息,不注重用户隐私保护

人工智能:个性化推荐、机器翻译、人脸识别...
大数据:数据多、产生快、形式杂、组织乱...
解决实际的业务决策问题:数据价值

机器学习标准流程:
原始数据 -> 数据探测 -> 特征工程 -> 构建数据集 -> 建模调参 -> 模型评估

机器学习算法分类:

  • 监督/非监督学习:取决于训练是否需要人类的监督
  • 批量/在线学习:取决于系统是否能持续地从数据流中学习并更新
  • 基于实例模型学习:取决于系统是直接把新数据与旧数据比较,还是通过建模来预测

机器学习面临的挑战(糟糕的算法和数据):
算法的问题主要有:过拟合(Overfitting)、欠拟合(Underfitting)
数据的问题表现:训练数据太少、训练数据不具备代表性、数据本身质量很差、选取的特征没有相关性
在大数据场景下,对资源的要求非常高,比如存储和算力

特征工程
定义:特征工程是将原始数据转化成更好的表达问题本质的特征的过程
意义:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已

特征工程流程:
数据理解 -> 数据预处理 -> 特征构造 -> 特征选择

Embedding
Embedding简介:即嵌入,起先源自于NLP领域,称为「词嵌入(word embedding)」,主要是利用背景信息构建词汇的分布式表示,最终可以得到一种词的向量化表达,即用一个抽象的稠密向量来表征一个词。

直观上看embedding相当于是对oneHot做了平滑,而oneHot相当于是对embedding做了maxpooling。

Embedding意义作用:

  • 解决维度灾难,降低复杂度
  • 解决稀疏容易造成的梯度消失的问题
  • 增加语义信息,能够很好地挖掘嵌入实体间的内部关联

Embedding应用场景:

  • 在深度学习网络中作为Embedding层
  • 作为预训练的Embedding 特征向量
  • Embedding可以直接作为推荐系统或计算广告系统的召回层或者召回方法之一

聚类算法
聚类算法是一种无监督的机器学习算法。在给定的数据集中,我们可以通过聚类算法将具有相似特征的数据分成一组,不相似特征的数据分成不同组。(K-means、DBSCAN、层次聚类)

聚类算法比较.png

应用场景:指标波动场景、精细化运营、PMF (Product-Market Fit)

K-means讲解

训练样本x1,...,xm,随机选取k个聚类质心点(ckustercentroids):训练样本{x^{1},...,x^{m}},随机选取k个聚类质心点(ckuster centroids)为:
μ1,μ2...μk,重复下面的两个公式直到收敛。\mu_1,\mu_2...\mu_k,重复下面的两个公式直到收敛。
对每个样例i,计算属于的类c(i):=arg minjx(i)μj2对每个样例i,计算属于的类c^{(i)}:=\underset{j}{\operatorname{arg\,min}}{||x^{(i)}-\mu_j||}^2
对于每一个类j,重新计算该类的质心:μj:=i=1m1{c(i)=j}x(i)i=1m1{c(i)=j}对于每一个类j,重新计算该类的质心:\mu_j:=\frac{\sum_{i=1}^{m}1\{c^{(i)}=j\}x^{(i)}} {\sum_{i=1}^{m}1\{c^{(i)}=j\}}

  1. 首先,我们确定要聚类的数量,并随机初始化它们各自的中心点;
  2. 通过计算当前点与每个簇中心之间的距离,将每个数据点归到与之距离最近的中心的簇中;
  3. 基于迭代后的结果,计算每一簇内,所有点的平均值,作为新簇中心;
  4. 迭代重复这些步骤,或者直到簇中心在迭代之间变化不大。

聚类用户画像分析
聚类用户流程.png

3 大数据可视化理论与案例分析

可视化思维导图.png

可视化流程
Abstract Data -> Visualization Design -> Rendering and Display -> Interactivity 数据可视化流程.png

编码有效性
邻近原则(proximity)
相似原则(similarity)
连通性原则(Element Connectedness)
连续性原则(Good continuation)
封闭的原则(closure)
共同命运原则(common fate)

案例
过多的分类会使得饼图的视觉效果趋于混乱,如果使用柱形图来显示,分类之间的对比就会明显很多。
非0基线造成的数据扭曲。
使用累积数据而不是年份数据,造成数据逐年攀升的假象。

引用参考

【大数据专场 学习资料七】第四届字节跳动青训营