我刚刚开始与Mahout合作,有一件令我困惑的事情是缺乏线性回归。即使是更加困难的逻辑回归,在某种程度上也会受到研究的支持,但在线性回归方面都是沉默的!
根据我的理解,OLS是最容易解决的问题之一 -
Y = Xb + e
具有b =(X ^ TX)^( - 1)X ^ TY的线性回归解,其中X ^ T是X的转置,并且如果矩阵(X ^ TX)变为奇异(即不可逆) )即使使用广义逆的解决方案存在,显示错误消息也是完全正确的。
X ^ T X和X ^ Y的计算只是元素乘积和和的计算,这可能是我理解的最简单的MapReduce。
(这让我觉得......是否有任何模块支持计算回归系数所需的原生矩阵运算?这会使回归模块确实不必要......)
我错过了一些让Mahout难以计算回归的东西吗?
答案 0 :(得分:5)
我不知道这样的事情是否有“为什么”。它只是不存在。
但是我认为这与你的想法相反;它太“容易”了。除非您正在解决一千万个方程的解决方案,否则它可能不是Hadoop所要求的规模。有很多现有的软件包可以在一台机器上很好地完成这项工作。如果你想从Apache那里得到一些东西,那就看看Commons Math吧。
并不是说项目中没有一个优秀的非分布式版本,但由于重点主要是大规模和Hadoop,这可能是“为什么”。
答案 1 :(得分:0)
我认为这仅仅是因为NxN矩阵求逆的复杂度是O(N ^ 3)并且受到数值不稳定性的影响,这在稀疏高维矩阵中很常见。
有没有人有其他解释或有人可以证实我的想法?