Innholdsfortegnelse:
- Med tanke på den psykometriske modellen
- fra sklearn. datasett importerer load_iris fra sklearn. dekomponering import FactorAnalyse iris = load_iris () X, y = iris. data, iris. Målfaktor = FactorAnalysis (n_components = 4, random_state = 101). fit (X)
- Resultatene av denne prosessen, som er ganske lik SVD, kalles
- fra sklearn. dekomponering importere PCA import pandas som pd pca = PCA (). fit (X) print 'Forklaret varians etter komponent:% s'% pca. explained_variance_ratio_ print pd. DataFrame (pca. Components_, columns = iris. Feature_names) Forklaret varians av komponent: [0. 92461621 0. 05301557 0. 01718514 0. 00518309] sepal lengde (cm) sepal bredde (cm) petal lengde (cm) petal bredde (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
Video: Technology Stacks - Computer Science for Business Leaders 2016 2025
Datavitenskapsmenn kan bruke Python til å utføre faktor og hovedkomponentanalyse. SVD opererer direkte på de numeriske verdiene i data, men du kan også uttrykke data som et forhold mellom variabler. Hver funksjon har en viss variasjon. Du kan beregne variasjonen som variansen måler rundt gjennomsnittet. Jo mer variansen, jo mer informasjonen finnes i variabelen.
I tillegg, hvis du plasserer variabelen i et sett, kan du sammenligne variansen av to variabler for å avgjøre om de korrelerer, noe som er et mål på hvor sterkt de har tilsvarende verdier.
Kontrollerer alle mulige korrelasjoner av en variabel med de andre i settet, kan du oppdage at du kan ha to typer varians:
-
Unik varianse: Noen variasjoner er unike for variabelen under undersøkelse. Det kan ikke knyttes til hva som skjer med noen annen variabel.
-
Delt varians: Noen varianser deles med en eller flere andre variabler, og oppretter redundans i dataene. Redundans innebærer at du kan finne samme informasjon, med litt forskjellige verdier, i ulike funksjoner og på tvers av mange observasjoner.
Selvfølgelig er neste trinn å bestemme årsaken til delt varians. Forsøk på å svare på et slikt spørsmål, samt å bestemme hvordan man skal håndtere unike og felles avvik, førte til etablering av faktor og hovedkomponentanalyse.
Med tanke på den psykometriske modellen
Langt før mange maskinlæringsalgoritmer ble gjennomgått, forsøkte psykiatrisk psykologi som handlet psykologisk måling å finne en statistisk løsning for å effektivt måle dimensjoner i personlighet. Den menneskelige personlighet, som med andre aspekter av mennesker, er ikke direkte målbar. For eksempel er det ikke mulig å måle nøyaktig hvor mye en person er introvert eller intelligent. Spørreskjemaer og psykologiske tester bare hint på disse verdiene.
for å utføre denne oppgaven! I stedet for å bruke SVD direkte på data, brukte de den til en nyopprettet matrise som spore den vanlige variansen, i håp om å kondensere all informasjonen og gjenopprette nye nyttige funksjoner kalt fa c tors . Leter du etter skjulte faktorer En god måte å vise hvordan du bruker faktoranalyse er å starte med Iris datasettet.
fra sklearn. datasett importerer load_iris fra sklearn. dekomponering import FactorAnalyse iris = load_iris () X, y = iris. data, iris. Målfaktor = FactorAnalysis (n_components = 4, random_state = 101). fit (X)
Etter å ha lastet inn dataene og har lagret alle de prediktive egenskapene, blir FaktorAnalyse-klassen initialisert med en forespørsel om å lete etter fire faktorer. Dataene er da montert. Du kan utforske resultatene ved å observere components_ attribute, som returnerer en matrise som inneholder tiltak av forholdet mellom de nyopprettede faktorene, plassert i rader og de opprinnelige funksjonene, plassert i kolonner.
Ved krysset mellom hver faktor og trekk indikerer et positivt tall at en positiv andel eksisterer mellom de to; et negativt tall peker i stedet på at de avviker og det ene er det motsatte mot det andre.
Du må teste forskjellige verdier av n_komponenter fordi det ikke er mulig å vite hvor mange faktorer som finnes i dataene. Hvis algoritmen kreves for flere faktorer enn det eksisterer, vil det generere faktorer med lave verdier i komponentene.
importer pandas som pd print pd. DataFrame (faktor. Komponenter_, kolonner = iris. Feature_names) sepal lengde (cm) sepal bredde (cm) petal lengde (cm) petal bredde (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
I testen på Iris datasettet bør for eksempel de resulterende faktorene være maksimalt 2, ikke 4, fordi bare to faktorer har betydelige forbindelser med de opprinnelige funksjonene. Du kan bruke disse to faktorene som nye variabler i prosjektet ditt fordi de reflekterer en usett men viktig funksjon som de tidligere tilgjengelige dataene bare antydet på.
Bruke komponenter, ikke faktorer
Hvis en SVD kunne brukes med den vanlige variansen, kan du kanskje lure på hvorfor du ikke kan bruke det på alle avvikene. Ved hjelp av en litt modifisert startmatrise kan alle forholdene i dataene reduseres og komprimeres på samme måte som SVD gjør det.
Resultatene av denne prosessen, som er ganske lik SVD, kalles
hovedkomponentanalyse
(PCA). De nyopprettede funksjonene heter komponenter . I motsetning til faktorer blir komponenter ikke beskrevet som grunnårsaken til datastrukturen, men er bare omstrukturert data, slik at du kan se dem som en stor, smart summasjon av utvalgte variabler. For datavitenskapsapplikasjoner er PCA og SVD ganske like. PCA påvirkes imidlertid ikke av omfanget av de opprinnelige egenskapene (fordi det virker på korrelasjonsmålinger som alle er bundet mellom -1 og +1 verdier) og PCA fokuserer på å gjenoppbygge forholdet mellom variablene, og gir dermed forskjellige resultater fra SVD. Oppnå dimensjonsreduksjon
Prosedyren for å oppnå en PCA er ganske lik faktoranalysen.Forskjellen er at du ikke angir antall komponenter som skal trekkes ut. Du bestemmer senere hvor mange komponenter som skal holdes etter å ha sjekket attributten explained_variance_ratio_, som gir kvantifisering av den informative verdien av hver utvunnet komponent. Følgende eksempel viser hvordan du utfører denne oppgaven:
fra sklearn. dekomponering importere PCA import pandas som pd pca = PCA (). fit (X) print 'Forklaret varians etter komponent:% s'% pca. explained_variance_ratio_ print pd. DataFrame (pca. Components_, columns = iris. Feature_names) Forklaret varians av komponent: [0. 92461621 0. 05301557 0. 01718514 0. 00518309] sepal lengde (cm) sepal bredde (cm) petal lengde (cm) petal bredde (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
I denne dekomponeringen av Iris-datasettet indikerer vektorgruppen som er oppgitt av explained_variance_ratio_ at det meste av informasjonen er konsentrert til den første komponenten (92,5 prosent). Det er derfor mulig å redusere hele datasettet til bare to komponenter, noe som gir en reduksjon av støy og overflødig informasjon fra det opprinnelige datasettet.
