做者:樱花猪算法
摘要:框架
本文为七月算法(julyedu.com)12月机器学习第九次次课在线笔记。推荐系统是机器学习的一个直观而又有趣的系统,例如咱们在上淘宝时候会弹出推荐的商品,百度搜索是的搜索选项以及手机上偶尔会弹出的小广告。有了推荐系统就可以根据用户或者商品进行个性化的推荐,提升推荐的效率。本次课程内容更加贴合实际应用,用简单的公式揭开了推荐系统神奇的面纱。机器学习
引言:函数
百度的搜索候选项、淘宝的推荐商品随着机器学习和大数据的发展推荐的精准度也愈来愈高,而做为用户对于这种推荐也是又恨又爱。本次课就为咱们分享了既神秘有常见的推荐系统。学习
本文首先介绍了推荐系统通常的框架,接下来将探讨两种有趣的算法,主成分分析PCA和奇异值分解,并经过实例展现这些理论知识如何运用的。其中,主成分分析PCA和奇异值分解在《矩阵论》中有很是详细的讲解,求解过程和理论证实比本次课程更加呈体系固然内容也更多。笔记更增强调两种方法的意义而不过多纠结求法和记号表达。测试
预备知识:大数据
矩阵论;几率论;聚类;spa
建议补充:设计
矩阵分解、矩阵广义逆3d
主成分分析PCA
奇异值分解SVD
1、推荐系统
一、类似度/距离的计算方法
与聚类类似,注意每种度量方式的意义、计算方法以及相互关联
二、Jaccard类似度
记:R(u)是给用户u做出的推荐列表,而T(u)是用户在测试集上真正的行为列表。
准确率:
Jaccard系数(二者结合):
Jaccard系数特色:各个特征间是均一无权重的;
Jaccard用途:网页去重/考试防做弊系统/论文抄袭检查;
三、评价推荐系统的首要离线指标
经过将单个用户的准确率(或召回率)作累加,即获得整个推荐系统的准确率(或召回率),该离线指标经常用于比较各个推荐系统之间的优劣。
四、评价推荐系统的其余指标
覆盖率:
多样性: 累加:
惊喜度(serendipity):满意度/类似度
五、协同过滤算法
基于用户行为的数据而设计的推荐算法被称为协同过滤算法(Collaborative Filtering, CF)。(随机游走)
2、主成分分析PCA
一、主成分分析提出:
实际问题每每须要研究多个特征,而这些特征存在必定的相关性。数据量增长了问题的复杂性。咱们但愿将多个特征综合为少数几个表明性特征,他们既可以表明原始特征的绝大多数信息,组合后的特征又互不相关,下降相关性。所以咱们提出主成分分析。
二、主成分分析目的:
多个特征综合为少数几个表明性特征,他们既可以表明原始特征的绝大多数信息,组合后的特征又互不相关,下降相关性。
三、求解思路:
对于n个特征的m个样本,将每 个样本写成行向量,获得矩阵A:
寻找样本的主方向u:将m个样本值投影到某直线L上,获得m个位于直线L上的点,计算m个投影点的方差。认为方差最大的直线方向是主方向。
四、求解方法:
取投影直线L的延伸方向u,计算的值
(去均值化,指望E=0)
目标函数:
增长 u是单位向量的约束,创建拉格朗日方程,最后可将主成分分析化成求解等式:
u为特征向量,一个特征向量对应一个主方向。
实际上,主成分分解就是求矩阵的特征向量。实际操做中,咱们能够去掉那些过小的特征向量打到简化计算的目的。
五、PCA的重要应用
OBB树;特征提取;数据压缩(降维)
3、奇异值分解SVD
建议看书《矩阵论》矩阵分解部分
1、SVD的含义
奇异值分解能够认为是对称方阵在任意矩阵上的推广,将任意一个矩阵分解成:的形势,(酉矩阵是在复试空间提的,在实数空间能够简单的认为是对称阵,可是不是全部矩阵均可以在实数域进行分解的)
假设A是一个m×n阶实矩阵,则存在一个分解使得:
(一般将奇异值由大而小排列)
2、参数解释
Σ对角线上的元素称为矩阵A的奇异值
U的第i列称为A的关于的左奇异向量
V的第i列称为A的关于的右奇异向量。
求解过程参考《矩阵论》
3、SVD与PCD的对比
矩阵对向量的乘法,对应于对该向量的旋转、伸缩。若是对某向量只发生了伸缩而无旋转变化,则该向量是该矩阵的特征向量,伸缩比即为特征值。
PCA用来提取一个场的主要信息(即主成分份量) ,而SVD通常用来分析两个场的相关关系。二者在具体的实现方法上也有不一样,SVD是经过矩阵奇异值分解的方法分解两个场的协方差矩阵的,而PCA是经过分解一个场的协方差矩阵。
PCA可用于特征的压缩、降维;固然也能去噪等;若是将矩阵转置后再用PCA,至关于去除相关度过大的样本数据——但不常见;
SVD可以对通常矩阵分解,并可用于个性化推荐等内容。