Sommario:
- Considerando il modello psicometrico
- Ricerca di fattori nascosti
- Uso dei componenti, non dei fattori
- Raggiungere la riduzione della dimensionalità
Video: Regressione lineare semplice spiegata semplicemente 2024
Gli scienziati dei dati possono utilizzare Python per eseguire analisi di fattori e componenti principali. SVD opera direttamente sui valori numerici nei dati, ma puoi anche esprimere i dati come una relazione tra le variabili. Ogni caratteristica ha una certa variazione. È possibile calcolare la variabilità come misura della varianza attorno alla media. Maggiore è la varianza, maggiore è l'informazione contenuta all'interno della variabile.
Inoltre, se si posiziona la variabile in un set, è possibile confrontare la varianza di due variabili per determinare se sono correlate, il che è una misura della forza con cui hanno valori simili.
Controllando tutte le possibili correlazioni di una variabile con le altre nel set, puoi scoprire che potresti avere due tipi di varianza:
-
Variante unica: Alcune varianze sono uniche per la variabile in esame. Non può essere associato a ciò che accade a qualsiasi altra variabile.
-
Variazione condivisa: Alcune variazioni sono condivise con una o più variabili, creando ridondanza nei dati. La ridondanza implica che è possibile trovare le stesse informazioni, con valori leggermente diversi, in varie caratteristiche e attraverso molte osservazioni.
Naturalmente, il passo successivo è determinare il motivo della varianza condivisa. Cercare di rispondere a una domanda del genere, oltre a determinare come gestire le varianze uniche e condivise, ha portato alla creazione dell'analisi fattoriale e dei componenti principali.
Considerando il modello psicometrico
Molto prima che fossero concepiti molti algoritmi di apprendimento automatico, psicometria , la disciplina in psicologia che si occupa di misurazione psicologica, ha cercato di trovare una soluzione statistica per misurare efficacemente le dimensioni nella personalità La personalità umana, come con altri aspetti degli esseri umani, non è direttamente misurabile. Ad esempio, non è possibile misurare con precisione quanto una persona sia introversa o intelligente. Questionari e test psicologici suggeriscono solo questi valori.
Gli psicologi conoscevano SVD e hanno cercato di applicarlo al problema. La varianza condivisa ha attirato la loro attenzione: se alcune variabili sono quasi la stessa, dovrebbero avere la stessa causa principale, pensavano. Gli psicologi hanno creato analisi fattoriale per svolgere questo compito! Invece di applicare direttamente SVD ai dati, l'hanno applicato a una matrice appena creata che tracciava la varianza comune, nella speranza di condensare tutte le informazioni e di recuperare nuove utili funzioni chiamate fa c tori .
Ricerca di fattori nascosti
Un buon modo per mostrare come utilizzare l'analisi fattoriale è iniziare con il set di dati Iris.
da sklearn. i set di dati importano load_iris da sklearn. decomposizione import FactorAnalysis iris = load_iris () X, y = iris. dati, iris. fattore di destinazione = FactorAnalysis (n_components = 4, random_state = 101). fit (X)
Dopo aver caricato i dati e aver memorizzato tutte le funzionalità predittive, la classe FactorAnalysis viene inizializzata con una richiesta di ricerca di quattro fattori. I dati vengono quindi adattati. È possibile esplorare i risultati osservando l'attributo components_, che restituisce un array contenente misure della relazione tra i fattori appena creati, posizionati in righe e le feature originali, posizionate in colonne.
All'intersezione di ciascun fattore e caratteristica, un numero positivo indica che esiste una proporzione positiva tra i due; un numero negativo, invece, fa notare che essi divergono e uno è il contrario dell'altro.
Dovrai testare diversi valori di n_components perché non è possibile sapere quanti fattori esistono nei dati. Se l'algoritmo è richiesto per più fattori di quanti ne esistono, genererà fattori con valori bassi nell'array components_.
importare panda come pd print pd. DataFrame (factor. Components_, columns = iris. Feature_names) lunghezza sepale (cm) larghezza sepal (cm) lunghezza del petalo (cm) larghezza del petalo (cm) 0 0. 707227 -0. 153147 1. 653151 0. 701569 1 0. 114676 0. 159763 -0. 045604 -0. 014052 2 0 000000 -0. 000000 -0. 000000 -0. 000000 3 -0. 000000 0. 000000 0. 000000 -0. 000000
Nel test sul set di dati Iris, ad esempio, i fattori risultanti dovrebbero essere al massimo 2, non 4, perché solo due fattori hanno connessioni significative con le caratteristiche originali. Puoi utilizzare questi due fattori come nuove variabili nel tuo progetto perché riflettono una caratteristica invisibile ma importante a cui i dati precedentemente disponibili hanno solo accennato.
Uso dei componenti, non dei fattori
Se un SVD può essere applicato correttamente alla varianza comune, ci si potrebbe chiedere perché non è possibile applicarlo a tutte le varianti. Usando una matrice iniziale leggermente modificata, tutte le relazioni nei dati potrebbero essere ridotte e compresse in modo simile a come SVD lo fa.
I risultati di questo processo, che sono abbastanza simili a SVD, sono chiamati analisi delle componenti principali (PCA). Le funzioni appena create sono denominate componenti . A differenza dei fattori, i componenti non sono descritti come la causa principale della struttura dei dati, ma sono solo dati ristrutturati, quindi è possibile visualizzarli come una sommatoria grande e intelligente di variabili selezionate.
Per le applicazioni di data science, PCA e SVD sono abbastanza simili. Tuttavia, la PCA non è influenzata dalla scala delle caratteristiche originali (perché funziona su misure di correlazione che sono tutte vincolate tra valori -1 e +1) e PCA si concentra sulla ricostruzione della relazione tra le variabili, offrendo così risultati diversi da SVD.
Raggiungere la riduzione della dimensionalità
La procedura per ottenere un PCA è abbastanza simile all'analisi fattoriale.La differenza è che non si specifica il numero di componenti da estrarre. Decidi in seguito quanti componenti conservare dopo aver controllato l'attributo explain_variance_ratio_, che fornisce la quantificazione del valore informativo di ciascun componente estratto. L'esempio seguente mostra come eseguire questa attività:
da sklearn. decomposizione importazione PCA importazione panda come pd pca = PCA (). fit (X) print 'Spiegazione della varianza per componente:% s'% pca. illustrated_variance_ratio_ print pd. DataFrame (pca. Components_, columns = iris. Feature_names) Spiegazione della varianza per componente: [0. 92461621 0. 05301557 0. 01718514 0. 00518309] lunghezza sepali (cm) larghezza sepali (cm) lunghezza del petalo (cm) larghezza del petalo (cm) 0 0. 361590 -0. 082269 0. 856572 0. 358844 1 -0. 656540 -0. 729712 0. 175767 0. 074706 2 0. 580997 -0. 596418 -0. 072524 -0. 549061 3 0. 317255 -0. 324094 -0. 479719 0. 751121
In questa scomposizione dell'insieme di dati Iris, l'array vettore fornito da explain_variance_ratio_ indica che la maggior parte delle informazioni è concentrata nel primo componente (92. 5 percento). È quindi possibile ridurre l'intero set di dati a soli due componenti, fornendo una riduzione del rumore e delle informazioni ridondanti dal set di dati originale.