EDU>>f = fopen('myTextFile.txt','r') #text file is of the form row1 col1 rating
# row2 col2 rating ...
EDU>>ln = textscan(f,'%f %f %f',inf,'Delimiter',{' '})
EDU>> myMatrix = sparse(vec(ln{1}),vec(ln{2}),vec(ln{3}),36473,4503);
EDU>>cvx_begin
EDU>> variable W(4503,1)
EDU>> minimize((square_pos(norm(myMatrix(:,1) - myMatrix*W))) + (4*norm(W)) + (10*norm(W,1)))
EDU>> subject to
EDU>> 0 <= W
EDU>> W(1,1)==0
EDU>> cvx_end
优化问题已成功解决,但W的所有变量意味着所有4503值(W(1,1)除外,根据约束为0)是完全相同的值。
Ex: 0
0.1338
0.1338
0.1338
0.1338
0.1338
0.1338
0.1338
......
......
这没有意义,因为myMatrix是用户/项目评级信息的稀疏矩阵。这表明所有用户都喜欢所有项目,这些用户看似不正确。我觉得我在这里遗漏了一些东西,我很感激任何建议,帮助我弄清楚发生了什么以及如何克服这种奇特的行为。