美文网首页《机器学习实战》(附源代码!)
《机器学习实战》笔记(十四):Ch14 - 利用SVD简化数据

《机器学习实战》笔记(十四):Ch14 - 利用SVD简化数据

作者: Lornatang | 来源:发表于2018-05-23 17:03 被阅读40次

    第14章 利用SVD简化数据(代码)

    • SVD的应用

      • 图像压缩

      • 噪声滤波

      • 模式识别

      • 生物,物理,经济方面的一些统计模型的处理。

      • SVD优缺点

        • 优点:简化数据,去除噪声,提高算法的结果

        • 缺点:数据的转化可能难以理解

        • 适用数据类型:数值型数据

      • 推荐系统

        推荐系统是利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程。

        • 案例

          • Amazon 会根据顾客的购买历史向他们推荐物品

          • Netflix 会向其用户推荐电影

          • 新闻网站会对用户推荐新闻频道

    • 矩阵分解

      • 三角分解法 (Triangular Factorization)

        三角分解法是将原正方 (square) 矩阵分解成一个上三角形矩阵或是排列(permuted) 的上三角形矩阵和一个 下三角形矩阵,这样的分解法又称为LU分解法。它的用途主要在简化一个大矩阵的行列式值的计算过程,求逆矩阵,和求解联立方程组。不过要注意这种分解法所得到的上下三角形矩阵并非唯一,还可找到数个不同 的一对上下三角形矩阵,此两三角形矩阵相乘也会得到原矩阵

      • QR 分解法 (QR Factorization)

        QR分解法是将矩阵分解成一个正规正交矩阵与上三角形矩阵,所以称为QR分解法,与此正规正交矩阵的通用符号Q有关

      • 奇异值分解法 (Singular Value Decomposition)

        奇异值分解 (singular value decomposition,SVD) 是另一种正交矩阵分解法;SVD是最可靠的分解法,但是它比QR 分解法要花上近十倍的计算时间。[U,S,V]=svd(A),其中U和V分别代表两个正交矩阵,而S代表一对角矩阵。 和QR分解法相同, 原矩阵A不必为正方矩阵。使用SVD分解法的用途是解最小平方误差法和数据压缩

    • 协同过滤引擎

      • 协同过滤(collaborative filtering)是通过将用户和其他用户的数据进行对比来实现推荐的算法

      • 相似度计算

        欧氏距离(euclidean metric)用Python实现相似度计算

        import numpy as np
        def eulid_sim(colA, colB):
          return 1.0/(1.0 + np.linalg.norm(colA - colB))
        
      • 相似度选择

        计算两个电影之间的距离,是基于物品(item-based)的相似度,计算用户的距离,是基于用户(user-based)的相似度。到底使用哪种相似度,取决于用户和物品的数量。基于物品的相似度会随着物品增加而增加,基于用户的相似度会随着用户的增加而增加。如果用户很多,则倾向于物品相似度计算方法。对于大部分推荐引擎而言,用户数目往往大于物品数目,所以一般用物品相似度

    • 小节

      由于推荐引擎建好后既没有预测的目标值,也没有用户来调查他们对推荐的满意程度,所以常常将某些已知的评分值去掉,然后对它们进行预测,计算预测值和真实值之间的差异

      通常用于推荐引擎评价的指标是最小均方根误差(Root Mean Squared Error,RMSE),先计算均方误差的平均值,在取平方根。如果评级在1~5星级,我们得到的RMSE为1,则和真实评价差了1个星级


    代码托管见Github

    相关文章

      网友评论

        本文标题:《机器学习实战》笔记(十四):Ch14 - 利用SVD简化数据

        本文链接:https://www.haomeiwen.com/subject/vhdcjftx.html