Re: [eigen] LeastSquares, Pseudo Inverse & Geometry

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


On Mon, Jan 25, 2010 at 9:13 AM, Thomas Capricelli
<orzel@xxxxxxxxxxxxxxx> wrote:
>
> Hi all,
>
> I feel uncomfortable with the name of the module "LeastSquares"
> http://eigen.tuxfamily.org/dox-devel/group__LeastSquares__Module.html
>
> It's nothing more than one function (and one variant) computing linear regression, which is I think a very special case of least squares. The API has a 'geometry' feeling more than an optimization or statistical one. (that's what i'm interested about, you'll have guessed).
>
> What the (currently still unsupported) NonLinearOptimization module does is also least squares, in the non linear case.
>
> Though even in the linear case, this is different from http://en.wikipedia.org/wiki/Least_squares, which also is something that I need. I dont really understand how far it's
> different, but at least the computation is different : the current LeastSquares module uses eigenvalue, while this article (and the stuff I do) uses pseudo-inverse.
Hello, I think that this is because the covariance matrix is symmetric
semi-definite positive, therefore, eigenvalues and singular value
decomposition look the same: U = V in the singular value decomposition
UDV^t:
- you can diagonalize the covariance matrix in an orthonormal basis: C = ODO^t,
- by symmetry it implies that O=U=V
By the way I just wanted to know if this knowledge makes the
computation faster, i.e. is the eigenvalues/eigenvectors computation
faster than the SVD in this case.
I do not know what is the complexity of both algorithms, but I would
be happy to make some performance comparisons.

- cheers,

Manuel
>
> Concerning the pseudo inverse, i think we need an implementation in eigen, and I'm happy Benoit has this planned.
>
> So my questions are:
> * what do you think of moving those two methods to the Geomerty module, and removing the LeastSquares module ?
> * should we provide methods for linear least squares (which is really nothing more than computing+applying a pseudo inverse ?)
>
> ++
> Thomas
> --
> Thomas Capricelli <orzel@xxxxxxxxxxxxxxx>
> http://www.freehackers.org/thomas
>
>
>



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/