Week_13 总结
大数据计算引擎 spark
spark 比 hadoop 快
spark 以有向无环图的方式将作业切分为多个阶段,计算过程连续。hadoop 只有 map 和 reduce 两阶段,执行完上一个 mapreduce 后才能执行下一个 mapreduce。
中间计算结果,spark 优先使用内存,而 hadoop 写到磁盘上。
spark 的 rdd 编程模型更简单
spark 的单词计数
spark 单词计数示例
spark 单词计数的执行流程
spark 以 RDD(分布式弹性数据集 Resilient Distributed Datasets)为基础进行运算的。是对数据的进一步抽象。
RDD
一、将数据处理过程分为多个阶段:
hadoop 则只有两个阶段
spark 通过 rdd 的方式,定义为多个阶段,不同阶段的数据集,以 rdd 的方式进行计算转换
二、rdd 的计算函数,有两种
转换(transformation)函数
map,filter,union,reduceByKey,join,groupByKey 等
返回结果是一个 RDD
动作(action)函数
不返回 RDD
三、RDD 物理上的数据分片
(窄依赖,无 shuffle 操作)通过计算后,数据内容改变,但数据还在当前节点上,表示 rdd 进行了转换,没有生成新的 rdd
(宽依赖,有 shuffle 操作)通过计算后,如 reduce 操作,将不同分片 key 进行聚合,产生新的 rdd 分片
spark 作业管理
spark 的调度器遇到有 shuffle 操作时,生成新的计算阶段,遇到 action 动作时生成新的作业。
每个计算阶段包含多个计算任务,每个计算任务对应 RDD 里的一个数据分片,这些计算任务分布到不同节点上完成计算。
spark 执行过程如下图
应用提交 --> 准备执行环境 --> 调度任务执行任务 --> 返回结果
spark 生态体系
底层是 spark,之上有 sparksql 计算,流计算,机器学习,和图计算等,这些构成了 spark 的大数据计算的生态体系。
流处理计算
Storm
Storm(实时计算系统)
低延迟
高性能
分布式
可伸缩
高可用
对应 hadoop 概念
流处理的处理过程(以实时车辆超速监控为例)
分布在不同地点的摄像采集设备,将采集到的信息写入到各节点的日志中
通过 storm 中定义的 spout 监控不同的日志文件,经过 bolt 阈值计算后,得到超速的车辆信息
然后将这些超速的车辆信息,通过 DBwriterBolt 写入数据库
代码示例如图
storm 应用场景
实时日志处理
实时统计
实时风控
实时推荐
storm 配合分布式存储服务一起使用。
个性化搜索实时分析项目中的架构:timeTunnel+HBase+Storm+UPS,用户行为从产生到完成分析秒级延迟
Spark Streaming
spark streaming 是 spark 中用于流式计算的组件。原理是数据以流式传入,spark streaming 将一定时间内的数据组成一批,然后通过 spark 计算引擎,执行批计算
Flink
大数据基准测试
HiBench 由 intel 开源的大数据测试工具,用于验证大数据集群的处理能力
大数据分析与可视化
互联网运营常用指标
新增用户数:日新增,周新增,月新增
用户留存率
活跃用户数
pv:网页访问统计
GMV:营业流水,反映营收能力
转换率
数据可视化图表与数据监控
折线图:通常展示时间维度上数据的变化规律
散点图:展示数据分布规律与趋势
热力图:展示热点区域的分布状态
漏斗图:展示各业务流程转换分布规律
PageRank
网页排名
原理
简述:页面 a 有指向页面 b 的链接,则表示 a 给 b 投票。依据投票数和投票目标的等级决定新的等级,经过多次迭代计算后,投票数趋于稳定,以此来决定排名顺序
公式
分子是当前页面的 pagerank 值,分母是当前页面总的链接数。各页面 pagerank 值除以各页面总链接数之和,等于指向的目标页面的 pagerank 值。
问题
页面中如果只有对自己的出链,会导致该页面 pagerank 不断增大,因此算法需要进行改进
改进
引入概率系数,减弱自链接对 rangpage 的影响,增加其他页面跳转到该页面的概率
分类聚类算法
分类算法
在以知道分类类别的情况,通过判断数据特征,将一组数据分到不同的类别中
KNN
k 近邻算法
样本集合已经分类
待检测数据通过距离计算,得到最近的 k 个样本
判断这 k 个样本中,大部分归属于哪一类,则该数据就属于这一类别
数据距离算法
欧式距离计算
特征值之间的距离长度
余弦相似度
特征值之间的相似性,相关程度。算的是余弦夹角
特征值提取算法
TF-IDF
TF:词频,单词出现在文档中的频率
IDF:逆文档频率,单词在所有文档中的稀缺程度
TF-IDF 特征值
贝叶斯
公式
在事件 A 发生的前提下,事件 B 发生的概率
垃圾邮件识别
针对样本集,进行人工识别垃圾邮件
计算垃圾邮件与非垃圾邮件的概率
计算每个特征值在所有类别中的条件概率
待分类样本进入,提取特征值
将取得的所有特征值,代入贝叶斯公式进行计算,取最大的概率的类别为样本类别
聚类算法
在不知道类别的情况下,将数据分为几类
K-Means
随机从数据集中选取 k 个种子数据,表示要将数据集分为 k 类
计算所有数据到这个 k 个种子数据的距离,离某种子节点最近的距离表明,该数据属于这一类
对分好类的数据,进行计算,获取中心点
重复计算所有数据到相应中心点的距离,直到中心点不在移动。此时每个中心点附近的数据就是一类
推荐引擎算法
基于人口统计的推荐
对喜欢同一件商品的,不同的用户,针对用户的特征,向相同特征的用户推送该商品
基于商品属性的推荐
针对商品类别进行推荐,商品属于某一类,用户在浏览相关商品时,推荐同一类的商品
基于用户的协同过滤推荐
不同用户喜欢商品 A 的同时,也喜欢商品 B。当有用户浏览商品 A 时,认为该用户也属于这一类,于是将 B 也推荐给该用户
基于商品的协同过滤推荐
很多用户喜欢商品 A 的时候,也喜欢商品 B。为浏览商品 A 的用户,推荐商品 B
机器学习与神经网络
机器学习
原理
样本数据 + 学习算法 = 数据模型
预测数据 + 预测系统 + 数据模型 = 预测结果
通过计算,确定样本输入与样本结果之间的映射关系 f(x)。
f(x)中根据输入与输出,确定函数的相关参数
算法
要确定 f(x)的参数空间是否是最合适的,即如何保证参数空间的最优解,需要有相应的机制来评估是否是最优。评估机制在这里定义为损失函数,用来计算模型预测值与真实值的差距。
常用损失函数
0-1 损失函数
平方损失函数
给定一个样本集
每个样本的损失函数求和平均值,称为经验风险
在样本集足够大的情况下,只要判定使经验风险最小的 f(x)函数就是模型的最优解。
由于样本是有限的,模型拟合的过程中会出现过拟合的情况,为了防止这种情况,引入结构风险
结构风险 = 经验风险 + a * 模型复杂度
因此,判断是否是最优解,转换为结构风险的最小值的计算。
绝对损失函数
对数损失函数
数学原理
在给定模型的情况下,寻找结构风险最小的函数表达式,这就是机器学习算法根本
求解极小值就是要解一阶导数为 0 点,因此,每个参数的确定就是计算各参数的一阶导数为零的偏微分方程,进而得到最优函数参数。
感知机示例
确定感知机模型 f(x) = sign(w*x+b)
构建损失函数
使用梯度下降算法迭代计算更新 w 和 b,直到使损失函数降到零为止,取得模型参数
神经网络
以感知机为基础,构建感知机的网络,通过输入样本的特征值,在多层感知机网络中,得到结果
评论