thank you very much!
________________________________ From: Ted Dunning <[email protected]> To: B & E <[email protected]> Cc: "[email protected]" <[email protected]> Sent: Wednesday, January 25, 2012 1:39 PM Subject: Re: mahout matrix package On Wed, Jan 25, 2012 at 1:10 PM, B & E <[email protected]> wrote: It's for part of a few straightforward matrix operations but over a very trivial size of matrix (~ 10 x 5) within a mapper/reducer job. Suppose you have Matrix a; Vector b; and you want to solve for x such that a.times(x) = b, then this should work: Matrix bMatrix = new Matrix(b.size(), 1).assignColumn(0, b); Vector x = new QRDecomposition(a).solve(bMatrix).viewColumn(0); There is a bit of mess here because there isn't a solve(Vector) method so we have to construct a matrix and then get the required vector back out. If you absolutely want the inverse over my suggestion that you don't want it, try this Matrix inverse = new QRDecomposition(a).solve(new DiagonalMatrix(n)) You will have to pick the right n. > >For the inverse method, for now more like just looking for a handy brainless >one liner (since the matrix operations is trivial now). There you go. But do have a tradeoff concern in longer term when the matrix calculations becomes more involved (in terms of complexity but not so much of size), would we have better off by using another matrix package in the first place VS the out-of-box convenience to get some quick proof-of-concepts now. That is up to you. I still don't know what you are doing and I don't know what your limits are. Mahout's math package is very good with sparse matrices and is moderate with dense matrices. It uses an API style that is really nice after you get to understand it, but it has a learning curve. > >thanks. > > > >________________________________ > From: Ted Dunning <[email protected]> >To: [email protected] >Cc: B & E <[email protected]> >Sent: Wednesday, January 25, 2012 3:18 AM >Subject: Re: mahout matrix package > > >Matrix inverse is almost never a good idea. The same effect can usually be >had using a decomposition at far less cost. For instance, for solving a >linear system, QR decomposition provides two sub-matrices that can easily have >an inverse multiply operation applied to them avoiding the need for actually >computing the inverse. > > >Can you say more about what you want to do? > > >On Tue, Jan 24, 2012 at 11:47 PM, Raphael Cendrillon ><[email protected]> wrote: > >I believe matrix inversion in general may not be so easy to distributed within >a map reduce framework, however you could consider using the SSVD job to >calculate an approximate matrix inverse. >> >> >>On 24 Jan, 2012, at 10:15 PM, B & E wrote: >> >>> Hi, >>> >>> I have a mahout newbie question -- I wanted to do some matrix operations in >>> mahout and just realized Mahout's matrix package doesn't seem to have any >>> API on providing an inverse of a matrix. >>> >>> Just curious was there a particular reason for such, or just so happens no >>> code was contributed to add that method to the matrix classes? >>> >>> thanks. >>> >>> Ejawce >> >> > > >
