[转载]随机梯度下降求解矩阵分解的sample(M=UV类型分解)

原文地址:随机梯度下降求解矩阵分解的sample(M=UV类型分解) 作者:庖丁的小刀
以下是代码,3小时搞定,完成的一刻,非常喜悦。原始矩阵可以理解为5个用户对5件衣服的点评,其中用户1,2对第5件衣服打高分,因为第五件衣服好看。用户3,4,5对第一件衣服打高分,因为价格便宜,因此这个矩阵可以分解为5*2,2*5的两个矩阵(2表示2个因素,色彩和价格)运行过程中错误在不断减少,表明算法的有效性。 code 很hard不比拼code质量,只求算法正确性。
view plain

     #include "stdio.h"  
    static unsigned long next = 1;  
      
    int myrand(void) {  
            next = next * 1103515245 + 12345;  
            return((unsigned)(next/65536) % 32768);  
    };  
      
    void mysrand(unsigned seed = 1) {  
            next = seed;  
    };  
      
    int main(void)  
    {  
            float rate_matrix[2][5][5] = {  
                    {  
                    {1,2,3,1,5},  
                    {1,2,3,1,5},  
                    {5,1,3,1,2},  
                    {5,1,3,1,2},  
                    {5,1,3,1,2},},  
                    {  
                  

你可能感兴趣的:(推荐会议,数据挖掘,Web)