zoukankan      html  css  js  c++  java
  • 猪猪的机器学习笔记(九)推荐系统

    推荐系统

    作者:樱花猪

     

    摘要:

       本文为七月算法(julyedu.com12月机器学习第九次次课在线笔记。推荐系统是机器学习的一个直观而又有趣的系统,例如我们在上淘宝时候会弹出推荐的商品,百度搜索是的搜索选项以及手机上偶尔会弹出的小广告。有了推荐系统就能够根据用户或者商品进行个性化的推荐,提高推荐的效率。本次课程内容更加贴合实际应用,用简单的公式揭开了推荐系统神奇的面纱。

     

    引言:

        百度的搜索候选项、淘宝的推荐商品随着机器学习和大数据的发展推荐的精准度也越来越高,而作为用户对于这种推荐也是又恨又爱。本次课就为我们分享了既神秘有常见的推荐系统。

        本文首先介绍了推荐系统一般的框架,接下来将探讨两种有趣的算法,主成分分析PCA和奇异值分解,并通过实例展示这些理论知识如何运用的。其中,主成分分析PCA和奇异值分解在《矩阵论》中有非常详细的讲解,求解过程和理论证明比本次课程更加呈体系当然内容也更多。笔记更加强调两种方法的意义而不过多纠结求法和记号表达。

     

    预备知识:

    矩阵论;概率论;聚类;

    建议补充:

    矩阵分解、矩阵广义逆

     

    推荐系统

    主成分分析PCA

    奇异值分解SVD

     

    一、推荐系统

    1、相似度/距离的计算方法

    与聚类相似,注意每种度量方式的意义、计算方法以及相互关联

     

     

    2、Jaccard相似度

     记:R(u)是给用户u作出的推荐列表,而T(u)是用户在测试集上真正的行为列表

     准确率:

    召回率:

    Jaccard系数(两者结合):

    Jaccard系数特点:各个特征间是均一无权重的;

    Jaccard用途:网页去重/考试防作弊系统/论文抄袭检查;

     

    3、评价推荐系统的首要离线指标

    通过将单个用户的准确率(或召回率)做累加,即得到整个推荐系统的准确率(或召回率),该离线指标常常用于比较各个推荐系统之间的优劣。

     

     

    4、评价推荐系统的其他指标

    覆盖率:

    多样性:   累加:

    惊喜度(serendipity):满意度/相似度

     

    5、协同过滤算法

       基于用户行为的数据而设计的推荐算法被称为协同过滤算法(Collaborative Filtering, CF)。(随机游走)

     

    二、主成分分析PCA

    1、主成分分析提出:

       实际问题往往需要研究多个特征,而这些特征存在一定的相关性。数据量增加了问题的复杂性。我们希望将多个特征综合为少数几个代表性特征,他们既能够代表原始特征的绝大多数信息,组合后的特征又互不相关,降低相关性。因此我们提出主成分分析。

     

    2、主成分分析目的:

       多个特征综合为少数几个代表性特征,他们既能够代表原始特征的绝大多数信息,组合后的特征又互不相关,降低相关性。

     

    3、求解思路:

     对于n个特征的m个样本,将每 个样本写成行向量,得到矩阵A

     

         寻找样本的主方向u:将m个样本值投影到某直线L上,得到m个位于直线L上的点,计算m个投影点的方差。认为方差最大的直线方向是主方向。 

     

    4、求解方法:

    取投影直线L的延伸方向u,计算的值

    求向量的方差:

    去均值化,期望E=0

    目标函数:

    增加 u是单位向量的约束,建立拉格朗日方程,最后可将主成分分析化成求解等式:

    u为特征向量,一个特征向量对应一个主方向。

         实际上,主成分分解就是求矩阵的特征向量。实际操作中,我们可以去掉那些太小的特征向量打到简化计算的目的。

     

    5、PCA的重要应用

    OBB树;特征提取;数据压缩(降维)

     

    三、奇异值分解SVD

    建议看书《矩阵论》矩阵分解部分

    1SVD的含义

       奇异值分解可以认为是对称方阵在任意矩阵上的推广,将任意一个矩阵分解成:的形势,(酉矩阵是在复试空间提的,在实数空间可以简单的认为是对称阵,但是不是所有矩阵都可以在实数域进行分解的

    假设A是一个m×n阶实矩阵,则存在一个分解使得:

    通常将奇异值由大而小排列

     

    2、参数解释

     

    Σ对角线上的元素称为矩阵A的奇异值

    U的第i列称为A的关于的左奇异向量

    V的第i列称为A的关于的右奇异向量。

    求解过程参考《矩阵论》

     

    3SVDPCD的对比

       矩阵对向量的乘法,对应于对该向量的旋转、伸缩。如果对某向量只发生了伸缩而无旋转变化,则该向量是该矩阵的特征向量,伸缩比即为特征值。

       PCA用来提取一个场的主要信息(即主成分分量) SVD一般用来分析两个场的相关关系。两者在具体的实现方法上也有不同,SVD是通过矩阵奇异值分解的方法分解两个场的协方差矩阵的,而PCA是通过分解一个场的协方差矩阵

       PCA可用于特征的压缩、降维;当然也能去噪等;如果将矩阵转置后再用PCA,相当于去除相关度过大的样本数据——但不常见;

       SVD能够对一般矩阵分解,并可用于个性化推荐等内容。





  • 相关阅读:
    TestNG:org.openqa.selenium.firefox.NotConnectedException: Unable to connect
    Python 程序员经常犯的 10 个错误
    python爬虫框架scrapy实例详解
    使用python进行汉语分词
    Python监控日志程序
    用Python读取excel中的数据
    Python 文件处理
    10 款最好的 Python IDE
    自动化测试代码架构浅谈
    Robotium如何向下拖动屏幕
  • 原文地址:https://www.cnblogs.com/Dr-XLJ/p/5368356.html
Copyright © 2011-2022 走看看