Spark高级数据分析

第一章 大数据分析

1.数据科学面临的挑战

1)数据分析绝大部分工作是数据预处理包括清洗,处理,融合,挖掘以及其他操作,即使模型调优阶段,特征提取和选择上花费的时间比选择和实现算法时间更多

2)迭代与数据科学紧密相关,比如模型优化时采用的随机梯度下降和最大似然估计,构建模型时需要选择正确特征,挑选合适算法,运行显著性测试,找到合适超参数

3)构建完表现卓越的模型不等于大功告成,模型需要定期甚至实时重建

第二章 用ScalaSpark进行数据分析

数据清洗是数据分析的第一步,数据分析工具语言Scala能完成所有事情

数据清洗一般包括身份解析,记录去重,合并-清除,列表清洗,统称为记录关联

 

记录关联问题描述:

需要从一个或者多个源系统的记录中,根据记录的属性判断记录是否是相同实体

由于RDD都是临时存在的,因此如果后面仍然需要用到此RDD,则需要在当前就缓存此RDD,这样再次使用此RDD时可直接从内存中获取,节约计算开销

 

2.1 聚合

mdsRDD[MatchData]

val grouped=mds.groupBy(md=>md.matched)//根据matched来聚合分为true,false两类

grouped.mapValues(x=>x.size) //grouped中每个元素Key=true or falseValues则为多行记录

 

2.2 概要统计

Parsed.map(md=>md.score(0)).filter(!isNaN(_)).stats() //可以获得score(0)列的统计信息包括总数,平均值,stdev,最大值,最小值

 

2.3 直方图

parsed.map(md=>md.matched).countByValue().toSeq.sortBy(_._1)

 

2.4zip

val nas1=Array(1.0,Double.NaN).map(d=>NAStatCounter(d)) //nas1=Array(NAStatCounter(1.0),NAStatCounter(NaN))

val nas2=Array(Double.NaN,2.0).map(d=>NAStatCounter(d)) //同理nas2

val nas3=nas1.zip(nas2)//Array((NAStatCounter(1.0),NAStatCounter(NaN)),(NAStatCounter(NaN),NAStatCounter(2.0)))

nas3.map(case(a,b)=>a.merge(b))//相当于Array((NAStatCounter(1.0).merge(NAStatCounter(NaN)),NAStatCounter(NaN).merge(NAStatCounter(2.0)))

 

第三章 音乐推荐和Audioscrobbler数据集

隐式反馈数据:Audioscrobbler数据集覆盖了大量用户和艺术家,同时包含了更多总体信息,而单条记录信息较少,这类数据称为隐式反馈数据

user_artist_data.txt 用户ID-艺术家ID-播放次数

artist_data.txt 艺术家ID-艺术家名

artist-alias.txt 将拼写错误的艺术家ID或者ID变体对应到该艺术家的规范ID 错误ID-规范ID

 

3.1 交替最小二乘法推荐

根据两个用户播放过许多相同的歌曲来判断他们可能都喜欢某首歌,称为协同过滤

利用user_artist_data.txt可构建一个稀疏矩阵,有m个用户,和n个艺术家,则此稀疏矩阵为m*n(i,j)的值表示第i个用户播放第j个艺术家的作品次数,此稀疏矩阵A=X*YT

 

用户-特征矩阵和特征-艺术家矩阵的乘积结果约等于稠密用户-艺术家相互关系矩阵的完整估计,求解X,Y可采用交替最小二乘法

AiY(YTY)-1=XI(X的每一行可分别计算,因此并行化),目标是最小化|AiY(YTY)-1-XI|,或者最小化两个矩阵的平方误差,实际会借助QR分解

 

ALS算法特征是稀疏的输入数据、可以用简单的线性代数运算求最优解、数据本身可并行化这三点导致大数据计算非常快

 

Spark MllibALS算法要求用户和产品的ID必须为整数型,而且是32位非负整数

 

1)数据清洗,过滤掉不合规范的数据

2)构建训练集和模型

mkString()常用作把集合元素表示成某种形式分隔的字符串

userFraction 用户特征矩阵

productFraction 商品特征矩阵

3)核查推荐结果 

看实际用户点击过得艺术家和推荐的艺术家是否一致

4)评价推荐质量

AUCBinaryClassificationMetrics:随机选择的好推荐高于坏推荐的概率,作为普遍和总和的测量整体模型质量的手段

AUC的输入为检验集CV(每个用户

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值