2012-03-26 51 views
4

我剛開始與Mahout合作,而讓我困惑的一件事是缺少線性迴歸。甚至邏輯迴歸也很困難,在一定程度上得到了研究的支持,但對於線性迴歸方面,這一切都保持沉默!爲什麼Mahout還沒有線性迴歸

從我明白,OLS是最簡單的問題之一來解決 -

Y = XB + E

具有b個的線性迴歸溶液=(X^TX)^( - 1) X^TY,其中X^T是X的轉置,並且如果矩陣(X^TX)變成奇異的(即不可逆的),那麼即使存在使用廣義逆的解也可以顯示錯誤消息。

計算X^T X和X^Y只是計算元素的總和和乘積的總和,這對於我所理解的MapReduce來說可能是最簡單的事情。

(這讓我覺得...有沒有支持計算迴歸係數所需的原生矩陣操作的任何模塊?這將使迴歸模塊不必要確實...)

我失去了一些東西,使得迴歸很難在Mahout中計算?

回答

5

我不知道是否有這樣的事情「爲什麼」。它只是不存在。

但是我認爲這與你所想的相反;這太「容易」了。除非你正在解決一千萬個方程式的解決方案,否則它可能不是Hadoop需要的規模。有很多現有的軟件包可以在一臺機器上很好地完成這項工作。如果你想從Apache獲得Java中的某些東西,只需看看Commons Math就可以了。

不是說在項目中不可能有一個很好的非分佈式版本,但是由於重點主要是大規模和Hadoop,這可能是「爲什麼」。

+1

@kalEl此外 - mahout是一個開源項目,如果你認爲這很容易,只需自己添加它 – 2012-03-26 20:25:14

0

我認爲這只是因爲NxN矩陣求逆的複雜性是O(N^3)並受到數值不穩定性的影響,這種情況在稀疏高維矩陣中很常見。

有沒有人有另一種解釋或有人可以證實我的想法?