zoukankan      html  css  js  c++  java
  • 矩阵分解

    1.矩阵分解过程

    尴尬的很,不会调整图片旋转,该图片是对矩阵分解的实现过程的理解,代码参考链接:https://github.com/zhangqianjin/recommender-system/tree/master/matrix-factorization

                                                                                                    觉得有用麻烦点个赞~~~~~~~~~~~~~~

    2.下面是通过adagrad求梯度的线性回归参数迭代过程,关键在于知道adagrad的公式,以及对损失函数求导得到梯度的公式,损失函数用的是平方误差损失,求导过程如下绿色笔迹(不好意思,下图中的adagrad的公式都错了,学习率对应的部分前面应是减号)

    两个实现过程的区别在于:前者通过对损失设置阈值来停止迭代,而后者。。。。。。。(有待思考两者的区别)

    3.奇异值分解(SVD分解)

    本来是想找python代码的实现来理解的,但是没有找到,只找到对其原理的理解,下面是循序渐进的对其理解的参考链接:

    1)入门理解 https://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html  

          收获:svd这种奇异值分解可以从原数据A(m*n维)提取r个最优特征,分解为三个矩阵相乘:A=U∑V 其中∑是对角阵(特征值),我们只取前r个最优特征,得到新的矩阵乘积的表示,V为右奇异矩阵,U为左奇异矩阵,分别表示原本m*n元素的特征向量。即提取原矩阵A的重要特征。(U提取A的行表示的含义的特征,V提取提取A的列表示的含义的特征)

    2)为什么称V为右奇异矩阵,U为左奇异矩阵?

    https://blog.csdn.net/zhuiqiuk/article/details/67633477  该链接进行了推导

     3)潜在语义索引LSI在得到主题时应用了svd分解

         https://www.cnblogs.com/pinard/p/6805861.html

        该文档讲解很详细,应用的话这是我自己在做主题模型时候写的代码:

    lsi_model = models.LsiModel(corpus_tfidf, id2word=dictionary, num_topics=5)
    print(lsi_model.print_topics(num_topics=5,num_words=4))

    觉得有用麻烦点个赞~~~~~~~~~~~~~~

  • 相关阅读:
    天生我牛必有用
    struts1.x+spring2.5+JPA(hibernate)整合
    Struts2拦截器
    使用Apache的commonscodes加密
    解放鞋 Ospop解放鞋
    告别2008 明天2009
    异常java.lang.UnsupportedClassVersionError: Bad version number in .class file
    C#中的Process类使用
    C#中使用MD5加密
    Struts2 Action(1)
  • 原文地址:https://www.cnblogs.com/kjkj/p/10096841.html
Copyright © 2011-2022 走看看