写点什么

[架构师训练营第 1 期] 第 13 周学习总结

发布于: 2020 年 12 月 19 日

本周主要介绍了大数据相关的流式计算框架、基准测试工具、各种应用场景等。

大数据流处理计算



批处理与流处理:

  • 批处理输入数据量较大,计算时间较长(分钟、小时以上)

  • 流处理输入数据量较小,计算时间较短(分钟、秒、毫秒以下)



流处理大数据计算也叫实时大数据计算,有如下几种技术方案:

  • Storm

  • Spark Streaming

  • Flink



以 Storm 为例,Storm 可以认为是实时的 Hadoop,它的特点是:

  • 低延迟、高性能、高可用

  • 分布式、可伸缩



Storm 基本概念:(与 Hadoop 对比)

+------------+-------------+----------------+
| | Storm | Hadoop |
+------------+-------------+----------------+
| | Nimbus | JobTracker |
| 系统角色 | Supervisor | TaskTracker |
| | Worker | Child |
+------------+-------------+----------------+
| 应用名称 | Topology | job |
+------------+-------------+----------------+
| 组件接口 | Spout/Bolt | Mapper/Reducer |
+------------+-------------+----------------+

其中:

  • Nimbus:负责资源分配和任务调度

  • Supervisor:负责接收 Nimbus 分配的任务,启动和停止属于自己管理的 Worker 进程

  • Worker:运行具体处理组件逻辑地进程

  • Task:Worker 中每个 Spout/Bolt 的线程称为一个 Task



大数据计算的核心问题是任务调度和资源分配,大数据计算框架之间的不同在于解决这个问题的方法。

大数据基准测试工具



自己构建大数据的基准测试较为困难,需要考虑:

  • 数据的生成

  • 测试的内容

  • 结果的分析



推荐使用流行的大数据基准测试工具,如 HiBench 等。

其中 HiBench 预置了各种常用的测试集,简单配置即可使用。

大数据应用:数据分析



大数据分析与可视化相关应用或场景有数据大屏应用、运营状况分析等。



分析指标可以是:

  • 新增用户数:

  • 用户留存率:留存用户数 / 当期新增用户数

  • 用户流失率:1 - 用户留存率

  • 活跃用户数:

  • 页面浏览数:

  • 成交总金额:

  • 转化率:有购买行为的用户数 / 总访问的用户数



可视化图表可以是:

  • 折线图

  • 散点图

  • 热力图

  • 漏斗图

大数据应用:机器学习

网页排名



主要使用 PageRank 算法,其基本原理是基于其它页面对某个页面的引用来为该页面进行评分,评分越高则排名越靠前。



比如,有 A、B、C、D 四个页面,那么 A 的评分(PR 值)就等于:

PR(B) PR(C) PR(D)
PR(A) = ————— + ————— + —————
L(B) L(C) L(D)

其中,L(X) 等于 X 页面引用的页面数(允许自己引用自己)。



但是,因为允许页面自己引用自己,所以当页面只引用自己时,这个页面就只可能被其它页面引用而不可能引用其它页面,从而导致这个页面的分数只进不出,影响评分的准确性。



因此,为了解决上述这个问题,算法设定了一个固有概率(α)作为一个页面通过输入地址跳转到其它页面的可能性,从而破除页面评分只进不出的局面,也就是说,就算一个页面只引用了自身,也会因为这个固有频率被算法认为是有一定的概率会跳转到其它页面。



所以,各页面评分公式修正为:

PR(B) PR(C) PR(D) 1 - α
PR(A) = α*(————— + ————— + —————) + —————
L(B) L(C) L(D) N

其中,N 等于 A 、B、C、D 的总页面数,在这里就等于 4。



所以,可以得到一个通用的 PageRank 评分公式:

PR(pj) 1 - α
PR(pi) = α*Σ————— + —————
L(pj) N

其中:

  • PR(X) = X 页面的 PageRank 评分

  • i = 1, 2, 3 ,..., N

  • pi = 第 i 个页面

  • pj = 第 j 个引用 pi 页面的页面

  • α = 上述固有概率

  • L(X) = X 页面引用的页面总数

  • N = 所有页面的数量



实际大数据计算时,使用的是矩阵的形式进行计算,各个页面的 PR 值初始为 1,进行迭代计算,直到页面的 PR 值稳定为止所得到的的 PR 值即为该页面的评分。

分类聚类



  • KNN 分类



对于一个需要分类的数据,将其与一组已经分类标注并提取特征的样本集合进行比较,得到距离最近的 K 个样本,其中最多个样本所属的类别,被视为是这个需要分类的数据的类别。

其中:待分类样本与已分类样本之间的距离被定义为它们特征空间向量的欧氏距离或余弦相似度,其中样本的特征可通过 TF-IDF 算法提取(即通过统计词频和逆文档频率的方式提取)。



[图]



  • 贝叶斯分类



对于一个需要分类的数据,提取其特征并在已经分类标注并训练好(即已经对每个特征完成贝叶斯概率计算)的样本中找到其属于各分类的概率,其中概率最大的类别被视为是这个需要分类的数据的类别。



其中,训练时用到的贝叶斯公式如下:

P(A|B) * P(B)
P(B|A) = —————————————
P(A)
=
P(特征|分类) * P(分类)
P(分类|特征) = ————————————————————
P(特征)
=

P(从某一特征看,待分类数据属于某一个分类的概率)
P(该特征在某一分类样本数据中出现的概率) * P(该分类在所有样本数据中出现的概率)
= ———————————————————————————————————————————————————————————————————————
P(该特征在所有样本数据中出现的概率)



[图]

K-means 聚类算法



[图]

推荐引擎



  • 基于人口统计的推荐



  • 基于商品属性的推荐



  • 基于用户的协同过滤推荐



  • 基于商品的协同过滤推荐



  • 其他机器学习模型的推荐



发布于: 2020 年 12 月 19 日阅读数: 23
用户头像

还未添加个人签名 2018.03.26 加入

还未添加个人简介

评论

发布
暂无评论
[架构师训练营第 1 期] 第 13 周学习总结