title: 《Spark机器学习》通读
date: 2019-09-18 17:20:35
categories:
- 技术
tags: - 整理
最近,花了三天时间通读了Nick Pentreath的著作《Spark机器学习》。醍醐灌顶,有酣畅淋漓之感,记录、梳理该书的核心内容,避免以后自己遗忘。
因为我是做软件工程出身,擅长应用开发、功能实现。对于机器学习算法理解还在学习、加深阶段,该书最大的优点是,实践性很强,每段代码都可以运行(排除极个别代码疏忽错误);不足之处在于理论讲解不够深入。
在郑捷的《机器学习-算法原理与编程实践》一书中,说到,“基础决定高度”,我也非常认可这句话。但是,如果没有高度,从我的角度而言,不知道从哪里夯实基础,况且单纯的数学公式推导过于枯燥,没有成就感,很容易磨灭兴趣。所以我先“不求甚解”,把机器学习的算法先应用起来,把“代码”跑起来,看看效果,再一层层刨根问底。
第一章 环境搭建
主要介绍 Spark环境搭建,略。
第二章&第三章 数据准备工作&特征介绍
-
个性化与推荐的联系
推荐是个性化的一种,推荐通常是显式呈现内容,而个性化偏向隐形,比如搜索等场景。
-
机器学习模型的种类
-
监督学习
已标记的数据来学习。
-
无监督学习
学习过程不需要标记。
-
-
机器学习系统组成
用户行为 -> 数据收集 -> 数据清理与转化 -> (模型训练 -> 模型测试 )-> 模型部署与整合 -> 推荐给用户。
其中,模型训练 -> 模型测试,可以迭代多次。
注意:在模型部署与整合后,同时监控模型准确度相关指标和业务指标。
-
特征
- 数值特征
- 类别特征
- 名义变量,如 职业:程序员、律师
- 有序变量,有内在联系。如级别评价,一星,二星。
- 文本特征
- 词袋(分词->删除停用词->提取词干->向量化)
- 其他特征 如图像、音频、地理位置等
- 派生特征
- 可以把时间,按区间转变为 清晨、上午、中午等类别特征。
特征的正则化
正则转化(减去均值)和标准化(缩放到0-1)
第四章 推荐引擎
推荐模型的分类
-
基于内容的过滤
- 利用物品内容or用户的相似度进行推荐
-
协同过滤
- “众包只会”的体现。
- 根据相似用户的喜好计算各个物品的评分,推荐给该用户。
-
矩阵分解
-
显示矩阵分解
用户因子矩阵(U,K) 和 物品因子矩阵 (K,I )的点积来表示 评级矩阵(U,I)
-
隐式矩阵分解
-
最小二乘法(ALS)
固定用户因子矩阵or物品因子矩阵,用固定的矩阵和评级更新另一个矩阵。
之后,将被更新的矩阵固定,更新另一个。
迭代上述步骤,直至模型收敛。
-
推荐模型效果的评估
- 均方差(MSE):各平方误差的和与总数目的商。
- 均方根误差(RMSE):对于·MSE取平方根。
- K值平均准确率(MAPK):前K个结果与实际相关的结果进行比较。
第五章 分类模型
分类模型的种类
-
线性模型
-
逻辑回归(sigmod):损失函数式逻辑损失。
-
线性支持向量机(SVM):损失函数为合页损失。
最大间隔分类器,试图训练一个使得类别尽可能分开的权重向量。
-
-
决策树
-
每一步骤中评估特征分裂的信息增益,最后选择分割数据集最优的特征。
信息增益通过计算节点不纯度减去分割后的两个子节点不纯度的加权和。
评估方法:基尼不纯 和 熵
-
适用于集成方法,多个决策树,成为决策树森林。
-
-
朴素贝叶斯模型
假设: 每个特征分配到某个类别的概率是独立分布的。
基于假设,属于某个类别的概率表示为若干概率乘积的函数,其中这些概率包括某个特征在给定某个类别条件下出现的概率(条件概率),以及该类别的概率(先验概率)。
评估分类模型的性能
-
预测的正确率和错误率
训练样中被正确分类的数目除以总样本数 为 正确率。
反之,为错误率。
-
准确率与召回率
-
准确率
真阳性的数目除以真阳性和假阳性的总数。
真阳性:被正确预测的类别为1的样本。
假阳性:被错误预测为类别为1的样本。
-
召回率(与准确率是负相关)
真阳性的数目除以真阳性与假阳性的和
假阴性:别错误预测为0的样本。
-
准确率-召回率(召回率为x)的曲线(PR)
-
ROC曲线与AUC
-
真阳性率(TPR)
真阳性的样本数除以真阳性和假阳性样本数之和。
-
假阳性率(FPR)
假阳性的样本数厨艺假阳性和真阳性的样本数之和。
ROC是真阳性率与假阴性率的图形化解释。
ROC下的面积为AUC。
-
-
第六章 回归模型
回归模型的种类
-
线性模型(最小二乘回归)
-
损失函数为平方损失
-
正则化
L1正则化LASSO;L2正则化为岭回归。
-
-
决策树模型
第七章 聚类模型
聚类模型的类型
-
K-均值聚类
- 模糊K-均值
-
混合模型
模糊K-均值的扩展,混合模型假设样本的数据是由某种概率分布产生的。
-
层次聚类
- 凝聚聚类
- 分裂式聚类
评估聚类模型的性能
-
内部评价指标
- WCSS
- Davies-Bouldin指数
- Dunn指数
- 轮廓系数
-
外部评价指标
使用带标注的数据进行评估
- Rand measure
- F-measure
- 雅卡尔系数(Jarcard index)
第八章 数据降维
降维方法从一个D维的数据输入提取出K维表示,K一般远远小于D。
被抽取的维度表示应该仍能捕捉大部分原始数据的变化和结构。
目的:缩减维度可以排除数据中的噪音并保留数据原有的隐含结构。
降维方法的种类
- PCA(主成分分析)
- SVD(奇异值分解)
- 聚类方法也可以用来降维
第九章 高级文本处理技术
特征抽取
- 短语加强表示
- 词袋模型
- 词频-逆文本频率(TF-IDF)
- 特征哈希
- Word2Vec分布向量表示
第十章 Spark Stream 实时机器学习
- 流处理
- 输入源
- 转换
- 执行算子
- 窗口算子
- 缓存与容错
- 应用创建&在线学习
后记:
整理过程中,发现该书已经发布第二版,果断下单。