mahout算法源码分析之Collaborative Filtering with ALS-WR (三)QR分解数据流(3)


[[34.8125],
[5.235105578655231],
[4.549926969654448]]
qr:

[[1.9817665337214256, -4.197854445325, -4.69114027734864],
[0.12665092438034994, 1.9301220188705366, 0.3254138519486568],
[0.14175336545641365, -0.36725063650346085, 2.0]]
rDiag:

{0:-32.26673724322168,1:-0.527836313803738,2:-0.29759508129758655}

getQ:    正交矩阵 (暂时没有分析)感觉好复杂的样子,分析了下就有点(ˇˍˇ) 想~吐了。。。

[[-0.9817665337214256, 0.06574179978609515, 0.17836055905244766],
[-0.12665092438034994, -0.9259205856685633, -0.3558519529084921],
[-0.14175336545641365, 0.3719530680019588, -0.9173641036064746]]
qt: getQ的转置

[[-0.9817665337214256, -0.12665092438034994, -0.14175336545641365],
[0.06574179978609515, -0.9259205856685633, 0.3719530680019588],
[0.17836055905244766, -0.3558519529084921, -0.9173641036064746]
y:矩阵qt和Vi的矩阵相乘:

[[-35.48574587647197],
[-0.8662963228239493],
[0.17231474217475284]]
r: getR,上三角矩阵

[[-32.26673724322168, -4.197854445325, -4.69114027734864],
[0.0, -0.527836313803738, 0.3254138519486568],
[0.0, 0.0, -0.29759508129758655]]
for循环:
      X[k,] = Y[k,] / R[k,k]
      Y[0:(k-1),] -= R[0:(k-1),k] * X[k,]
end
return x;

[[1.0168655785532088],
[1.2842501029087856],
[-0.579024160693177]]
这样,x作为最终的输出返回到:

Vector uiOrmj = solver.solve(featureVectors, ratings, lambda, numFeatures);
然后就可以继续分析了。



转载请注明blog地址:http://blog.csdn.net/fansy1990



相关内容

    暂无相关文章