Wenn die Dimensionalität Ihrer Samples geringer ist als die Dimensionalität des Vektorraums, können singuläre Matrizen entstehen. Wenn Sie weniger Abtastwerte als (wenn Ihre Dimensionalität ist), tritt diese Situation sogar notwendigerweise auf: Abtastwerte umfassen höchstens eine dimensionale Hyperebene. Bei einer so kleinen Stichprobe können Sie offensichtlich keine Varianz im orthogonalen Raum berechnen.d+1dk+1d
Aus diesem Grund wird häufig keine wörtliche PCA verwendet, sondern eine Singularwertzerlegung durchgeführt , mit der die Pseudoinverse einer Matrix berechnet werden kann. Wenn die Matrix invertierbar ist, ist die Pseudoinverse die Inverse.
Wenn Sie jedoch nicht invertierbare Matrizen sehen, ist Ihre Entfernung zum Cluster möglicherweise bedeutungslos, wenn sich der Vektor außerhalb der Hyperebene befindet, die der Cluster darstellt, da Sie die Varianz im orthogonalen Raum nicht kennen (Sie können sich vorstellen) Diese Varianz als 0!) SVD kann die Pseudoinverse berechnen, aber die "Varianzen" werden immer noch nicht durch Ihre Daten bestimmt.
In diesem Fall sollten Sie wahrscheinlich zuerst eine globale Dimensionsreduktion durchgeführt haben. Das Erhöhen der Stichprobengröße hilft nur, wenn Sie tatsächlich nicht redundante Dimensionen haben: Unabhängig davon, wie viele Stichproben Sie aus einer Verteilung mit , ist die Matrix immer nicht invertierbar und Sie können die Abweichung nicht beurteilen in Bezug auf eine Standardabweichung (die 0 ist).y=xx−y
Abhängig davon, wie Sie die Kovarianzmatrix berechnen, können außerdem aufgrund einer katastrophalen Stornierung numerische Probleme auftreten. Die einfachste Problemumgehung besteht darin, die Daten immer zuerst zu zentrieren, um den Mittelwert Null zu erhalten.