第二章 数据驱动的机器学习系统的组成
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)可以分解为