Innehållsförteckning:
- Med tanke på den psykometriska modellen
- Ett bra sätt att visa hur man använder faktoranalys är att börja med Iris dataset.
- Om en SVD kunde tillämpas med framgång på den gemensamma variansen kanske du undrar varför du inte kan tillämpa den på alla variationer. Med hjälp av en lätt modifierad startmatris kan alla relationer i data reduceras och komprimeras på samma sätt som hur SVD gör det.
- Proceduren för att erhålla en PCA är ganska lik faktoranalysen.Skillnaden är att du inte anger antalet komponenter som ska extraheras. Du bestämmer senare hur många komponenter som ska hållas efter att du har kontrollerat attributet explained_variance_ratio_, vilket ger kvantifiering av det informativa värdet för varje extraherad komponent. Följande exempel visar hur du utför den här uppgiften:
Video: Building Dynamic Web Apps with Laravel by Eric Ouyang 2024
Datavetenskapare kan använda Python för att utföra faktor och huvudkomponentanalys. SVD fungerar direkt på de numeriska värdena i data, men du kan också uttrycka data som ett förhållande mellan variabler. Varje funktion har en viss variation. Du kan beräkna variabiliteten som variansmåttet runt medelvärdet. Ju mer variansen desto mer informationen finns i variabeln.
Om du också placerar variabeln i en uppsättning kan du jämföra varianten av två variabler för att bestämma huruvida de korrelerar, vilket är ett mått på hur starkt de har liknande värden.
Kontrollera alla möjliga korrelationer med en variabel med de andra i uppsättningen, du kan upptäcka att du kan ha två typer av varians:
-
Unik varians: En del varians är unik för den variabel som undersöks. Det kan inte kopplas till vad som händer med någon annan variabel.
-
Delad varians: En del varians delas med en eller flera andra variabler, vilket ger redundans i data. Redundans innebär att du kan hitta samma information, med något olika värden, i olika funktioner och över många observationer.
Naturligtvis är nästa steg att bestämma orsaken till delad varians. Att försöka svara på en sådan fråga, liksom att bestämma hur man hanterar unika och delade avvikelser, ledde till att man skapade faktor och huvudkomponentanalys.
Med tanke på den psykometriska modellen
Långt innan många algoritmer för maskininlärning upptäcks, försökte man hitta en statistisk lösning för att effektivt kunna mäta dimensionerna, psykologen , den psykologiska disciplinen som handlade om psykologisk mätning. i personlighet. Den mänskliga personligheten, som med andra aspekter av människor, är inte direkt mätbar. Det är exempelvis inte möjligt att mäta exakt hur mycket en person är introvert eller intelligent. Frågeformulär och psykologiska tester tyder bara på dessa värden.
faktoranalys för att utföra denna uppgift! I stället för att applicera SVD direkt på data tillämpade de den på en nyskapad matrisspårning den gemensamma variansen, i hopp om att kondensera all information och återställa nya användbara funktioner som heter fa c tors . Letar efter dolda faktorer
Ett bra sätt att visa hur man använder faktoranalys är att börja med Iris dataset.
från sklearn. dataset importera load_iris från sklearn. sönderdelning Import FactorAnalysis iris = load_iris () X, y = iris. data, iris. målfaktor = FactorAnalysis (n_components = 4, random_state = 101). fit (X)
Efter att ha laddat upp data och lagrat alla prediktiva funktioner initialiseras klassen FactorAnalysis med en begäran om att leta efter fyra faktorer. Datan är sedan monterad. Du kan utforska resultaten genom att observera components_ attributet, som returnerar en array som innehåller mätningar av förhållandet mellan de nyskapade faktorerna, placerade i rader och de ursprungliga funktionerna som placeras i kolumner.
På skärningspunkten för varje faktor och funktion indikerar ett positivt tal att en positiv andel existerar mellan de två; Ett negativt tal påpekar istället att de skiljer sig åt och det är motsatsen till det andra.
Du måste testa olika värden på n_components eftersom det inte går att veta hur många faktorer som finns i data. Om algoritmen krävs för fler faktorer än existerar, kommer den att generera faktorer med låga värden i komponent-arrayen.
importera pandor som pd-utskrift pd. DataFrame (faktor. Komponenter_, kolumner = iris. Feature_namn) sepal längd (cm) sepal bredd (cm) kronbladslängd (cm) kronbladets bredd (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 testet på Iris-datamängden bör till exempel de resulterande faktorerna vara högst 2, inte 4, eftersom endast två faktorer har betydande samband med de ursprungliga funktionerna. Du kan använda dessa två faktorer som nya variabler i ditt projekt, eftersom de speglar en osynlig men viktig funktion som tidigare tillgängliga data bara antytt på.
Använda komponenter, inte faktorer
Om en SVD kunde tillämpas med framgång på den gemensamma variansen kanske du undrar varför du inte kan tillämpa den på alla variationer. Med hjälp av en lätt modifierad startmatris kan alla relationer i data reduceras och komprimeras på samma sätt som hur SVD gör det.
Resultaten av denna process, som ganska liknar SVD, kallas
huvudkomponentanalys (PCA). De nyskapade funktionerna heter komponenter . I motsats till faktorer beskrivs komponenter inte som grundorsaken till datastrukturen men är bara omstrukturerad data, så att du kan se dem som en stor, smart summering av valda variabler. För datavetenskapstillämpningar är PCA och SVD ganska lika. PCA påverkas emellertid inte av storleken på de ursprungliga funktionerna (eftersom den fungerar på korrelationsåtgärder som alla är bundna mellan -1 och +1 värden) och PCA fokuserar på att bygga upp relationen mellan variablerna, vilket ger olika resultat från SVD.
Uppnå dimensioneringsreduktion
Proceduren för att erhålla en PCA är ganska lik faktoranalysen.Skillnaden är att du inte anger antalet komponenter som ska extraheras. Du bestämmer senare hur många komponenter som ska hållas efter att du har kontrollerat attributet explained_variance_ratio_, vilket ger kvantifiering av det informativa värdet för varje extraherad komponent. Följande exempel visar hur du utför den här uppgiften:
från sklearn. sönderdelning importera PCA importpandas som pd pca = PCA (). fit (X) print 'Förklarad varians för komponent:% s'% pca. explained_variance_ratio_ print pd. DataFrame (pca. Components_, columns = iris. Feature_names) Förklarad varians för komponent: [0. 92461621 0. 05301557 0. 01718514 0. 00518309] sepal length (cm) sepal width (cm) petal length (cm) petal width (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 denna sönderdelning av Iris-datamängden indikerar vektorgruppen som tillhandahålls av explained_variance_ratio_ att det mesta av informationen är koncentrerad till den första komponenten (92,5 procent). Det är därför möjligt att sänka hela datasetet till bara två komponenter, vilket ger en minskning av buller och överflödig information från den ursprungliga datasatsen.