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
Fantastico!
Completion tasso migliorato a 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!