[
https://issues.apache.org/jira/browse/SPARK-7210?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14609082#comment-14609082
]
Joseph K. Bradley commented on SPARK-7210:
------------------------------------------
The end goal is to compute the PDF. The inverse + determinant are just
intermediate values. However, I don't think there would be that much benefit
to keeping the inverse in a decomposed format (since it will probably not be
low-rank).
The main issues are speed + numerical stability as the number of features
grows. It's possible other decompositions would be faster and/or more
numerically stable. Unless one decomposition is really slow, I'd vote for us
going with the more numerically stable one. It's also not just about the
decomposition, but the particular method used to compute that decomposition.
[~shivaram] Have you or others tested various implementations? We're using
{{breeze.linalg.eigSym}} right now:
[http://www.scalanlp.org/api/breeze/index.html#breeze.linalg.eigSym$]. If
there's one you would strongly recommend, that would be great; we could test a
bit vs. the current implementation.
[~fliang] There is also some info on Wikipedia about numerical stability of
different ways of computing the QR decomposition (and others).
> Test matrix decompositions for speed vs. numerical stability for Gaussians
> --------------------------------------------------------------------------
>
> Key: SPARK-7210
> URL: https://issues.apache.org/jira/browse/SPARK-7210
> Project: Spark
> Issue Type: Improvement
> Components: MLlib
> Reporter: Joseph K. Bradley
> Priority: Minor
>
> We currently use SVD for inverting the Gaussian's covariance matrix and
> computing the determinant. SVD is numerically stable but slow. We could
> experiment with Cholesky, etc. to figure out a better option, or a better
> option for certain settings.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]