Spark机器学习

第二章 数据驱动的机器学习系统的组成

1.    机器学习系统组成:

数据收集->数据清洗与转换->模型训练->模型测试->模型部署与整合->模型监控与反馈(同时监控模型的准确度相关指标以及业务指标,模型反馈是指通过用户的行为来对模型的预测进行反馈)

2.    数据预处理

数据过滤(只需要部分原始数据或者满足条件的事件数据)

处理数据丢失、不完整或者有缺陷(填充缺陷数据或者过滤)

处理可能引发异常或者错误的数据(过滤)

合并多个数据源(时间数据与内部数据或者外部数据合并)

数据汇总

3.    数据转换

1)        类别数据编码为数值表示(比如男女,编码成0,1)

2)        文本数据提取有用信息

3)        处理图像或者音频数据

4)        数值数据->类别数据,以减少某个变量可能值数目

5)        对数值特征进行转换

6)        对特征进行正则化、标准化,以保证同一个模型下的不同输入变量的值域相同

7)        特征工程是对现有变量进行组合或者转换生成新特征的过程

 

4.    交叉验证法

为特定任务选择最优建模方法活着对特定模型最佳参数选择

训练集建立模型,测试集评估模型,即为交叉验证法

 

5.    批处理或者实时方案选择

在线学习:对新到达的数据立即更新模型,典型的是梯度下降法,可以考虑SparkStreaming

另一种策略是在周期性批处理中进行重新计算,若有新的数据到来则只对更复杂的模型进行近似更新

 

6.    完整的机器学习流程

1)        收集用户、用户行为与电影标题相关的数据

2)        将这些数据转为特征

3)        模型训练,包括训练-测试与模型选择环节

4)        将已训练的模型部署到在线服务系统,并用于离线处理

5)        通过推荐和目标页面将模型结果反馈到MovieStream站点

6)        将模型结果返回到MovieStream的个性化营销渠道

7)        使用离线模型为MovieStream的各个团队提供工具,以帮助理解用户行为,内容目录特点,业务收入驱动因素等

 

第三章 Spark上数据的获取、处理与准备

采用数据集http:///files.grouplens.org/datasets/movielens/ml-100k.zip

数据文件:u.user(用户属性文件)、u.item(电影元数据)、u.data(用户对电影的评级)

探索数据非常有必要,有利于发现数据的不规整情况

1.数据清洗:

1)        对非规整数据和缺失数据进行填充(零值,全局期望或者中值或者根据相邻或者类似的数据点来做插值)

2)        过滤掉或者删除掉非规整或有值确实的数据

3)        对异常值做鲁棒处理(鲁棒回归处理异常值或者极值)

4)        对可能的异常值进行转换(对数或者高斯核对)

 

2.从数据中提取有用特征

特征:可用于模型训练的变量,主要分为:

1)        数值特征:包括实数或者整数

2)        类别特征:可能是状态集合中的一种(1~k编码)

3)        文本特征:文本内容

4)        其他特征:数值(派生特征包括平均值,中位值,方差,和,差,最大值或者最小值以及计数)

 

时间戳特征处理:将时间戳特征->小时特征(10点)->时间段特征(7~12点)->类别特征(afternoon)

文本特征处理:自然语言处理包括如下:

1)        分词

2)        删除停用词(the,and或者but)

3)        提取词干(复数->单数)

4)        向量化(二元向量用0,1表示是否存在某个词)

基本思路:对所有文本内容进行分词,统计单词总数(去掉停用词以及提取了词干后)n,为每个文本内容创建一个大小为n的向量(初始值全部为0),然后遍历每个文本内容中的单词判断是否在字典中,若在则单词对应的序号位置置为1

 

当得到特征向量后,需要对数值数据进行正则化:

1)        正则化特征:对数据集中的单个特征进行转换,比如减去平均值或者进行标准正则转换(使得该特征的平均值和标准差分别为0和1)

2)        正则化特征向量:对数据中的某一行的所有特征进行转换,使得转换后的特征向量的长度标准化,即缩放向量的各个特征是的向量的范数为1(常指1阶或者2阶范数)

 

第四章 构建基于Spark的推荐引擎

1.    推荐适用场景:

1)        可选项众多:从众多可选项中推荐给用户最合适的

2)        偏个人喜好:根据相似喜好用户的信息来帮助他们发现所需物品

2.    典型的推荐算法:

1)        基于内容的过滤

根据物品的内容或者属性(通常为文本内容,有标题、名称、标签以及该物品的其他元数据)分以及某些相似度定义,求出该物品类似的物品

2)        协同过滤

基于用户的协同过滤:找到相似喜好的用户,根据他们的喜好计算出各个物品的综合得分,再根据得分来推荐物品

基于物品的协同过滤:根据现有用户对物品的偏好或者评分,来计算出物品之间的某种相似度,此时相似用户评级相同的那些物品被认为更相近,一旦有了物品的相似度,便可用用户接触过的物品来表示这个用户,然后找出和这些都是已知物品相似的物品,并把它们推荐给用户

基于模型的协同过滤:对用户-物品的偏好建模

              Spark推荐模型只包含矩阵分解的实现(ALS,交替最小二乘法)

显式矩阵分解:由用户所提供的自身偏好数据,包括对物品的评级,点赞,喜欢以及对物品的评价,组成用户-物品的稀疏矩阵,对这一稀疏矩阵(U*I)可以分解为

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值