Is there any solution to make positive semi-definite covariance matrix?

2 views (last 30 days)
I have image data. row of the data represents pixel and column represents rgb values. that is, the size of the data is N by 3. However, I would like to apply kmeans and GMM for clustering. But the covariance matrix is not positive semi-definite.
Why and what is solution?

Accepted Answer

Walter Roberson
Walter Roberson on 5 Jul 2016
Covariance matrices of real variables are always positive semi-definite. See http://math.stackexchange.com/questions/114072/what-is-the-proof-that-covariance-matrices-are-always-semi-definite
If you calculated a covariance matrix but it is being reported as not positive semi-definite then you might have encountered numeric round-off. In such a case use
(X.' + X) / 2
in place of X: this will eliminate any round-off error that is keeping the matrix from being completely symmetric.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!