Derivazione della PCA Tramite Algebra Lineare
La PCA cerca un nuovo insieme di assi, chiamati componenti principali, tali che i dati proiettati abbiano varianza massima. Il primo componente principale, indicato come w1, viene scelto per massimizzare la varianza dei dati proiettati:
Var(Xw1)Soggetto al vincolo che ∥w1∥=1. La soluzione a questo problema di massimizzazione è il vettore proprio della matrice di covarianza corrispondente al più grande autovalore.
Il problema di ottimizzazione è:
wmax wTΣwsubject to∥w∥=1La soluzione è qualsiasi vettore w che soddisfa Σw=λw, dove λ è il corrispondente autovalore. In altre parole, w è un vettore proprio della matrice di covarianza Σ associato all'autovalore λ.
12345678910111213import numpy as np # Assume cov_matrix from earlier X = np.array([[2.5, 2.4], [0.5, 0.7], [2.2, 2.9]]) X_centered = X - np.mean(X, axis=0) cov_matrix = (X_centered.T @ X_centered) / X_centered.shape[0] # Find the principal component (eigenvector with largest eigenvalue) values, vectors = np.linalg.eig(cov_matrix) principal_component = vectors[:, np.argmax(values)] print("First principal component:", principal_component)
Questo componente principale è la direzione lungo la quale i dati presentano la massima varianza. Proiettare i dati su questa direzione fornisce la rappresentazione monodimensionale più informativa del dataset originale.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Can you explain why the principal component is important in PCA?
How do I interpret the values of the principal component?
What does projecting data onto the principal component mean?
Awesome!
Completion rate improved to 8.33
Derivazione della PCA Tramite Algebra Lineare
Scorri per mostrare il menu
La PCA cerca un nuovo insieme di assi, chiamati componenti principali, tali che i dati proiettati abbiano varianza massima. Il primo componente principale, indicato come w1, viene scelto per massimizzare la varianza dei dati proiettati:
Var(Xw1)Soggetto al vincolo che ∥w1∥=1. La soluzione a questo problema di massimizzazione è il vettore proprio della matrice di covarianza corrispondente al più grande autovalore.
Il problema di ottimizzazione è:
wmax wTΣwsubject to∥w∥=1La soluzione è qualsiasi vettore w che soddisfa Σw=λw, dove λ è il corrispondente autovalore. In altre parole, w è un vettore proprio della matrice di covarianza Σ associato all'autovalore λ.
12345678910111213import numpy as np # Assume cov_matrix from earlier X = np.array([[2.5, 2.4], [0.5, 0.7], [2.2, 2.9]]) X_centered = X - np.mean(X, axis=0) cov_matrix = (X_centered.T @ X_centered) / X_centered.shape[0] # Find the principal component (eigenvector with largest eigenvalue) values, vectors = np.linalg.eig(cov_matrix) principal_component = vectors[:, np.argmax(values)] print("First principal component:", principal_component)
Questo componente principale è la direzione lungo la quale i dati presentano la massima varianza. Proiettare i dati su questa direzione fornisce la rappresentazione monodimensionale più informativa del dataset originale.
Grazie per i tuoi commenti!