Hem Personliga finanser Datavetenskap: Använda Python för att utföra faktor och huvudkomponentanalys - dummies

Datavetenskap: Använda Python för att utföra faktor och huvudkomponentanalys - dummies

Innehållsförteckning:

Video: Building Dynamic Web Apps with Laravel by Eric Ouyang 2024

Video: Building Dynamic Web Apps with Laravel by Eric Ouyang 2024
Anonim

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.

Psykologer visste om SVD och försökte tillämpa det på problemet. Delad varians lockade sin uppmärksamhet: Om vissa variabler är nästan lika, borde de ha samma grundorsak, trodde de. Psykologer skapade

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.
Datavetenskap: Använda Python för att utföra faktor och huvudkomponentanalys - dummies

Redaktörens val

Hur man lägger till text i en sätter () Funktion i C Programmering

Hur man lägger till text i en sätter () Funktion i C Programmering

När du behöver visa en annan textrad, använd C-programmeringsfärdigheterna för att skapa en annan puts () -funktion i källkoden, som visas i Visa två textlinjer. VISA TILL TEXTFINER # inkludera int main () {sätter ("Hickory, Dickory, Dock,"); sätter ("musen sprang klockan."); returnera (0);} Den andra ...

Förklarar variabler i C-dummies

Förklarar variabler i C-dummies

Variabler är det som gör dina program zooma. Programmering kan bara inte bli gjort utan dem. Så om du inte har introducerats till variabler än, här går du. Valerie Variable är en numerisk variabel. Hon älskar att hålla nummer - vilket nummer som helst; det spelar ingen roll. När hon ser ett lika tecken tar hon ett värde och ...

Redaktörens val

Gör rädsla för din vän - dummies

Gör rädsla för din vän - dummies

Rädsla är lika verklig som mod. Även om värdet av rädsla inte är lika uppenbart som modets värde, har det dess fördelar. Rädsla är din instinkt som säger att du är obehaglig - även om situationen inte kommer att skada dig. Alla har haft den känslan när man hellre drar locket ...

Hur man ökar din självmedvetenhet - dummies

Hur man ökar din självmedvetenhet - dummies

Du kommer att vara med dig själv under en livstid. Ingenting kommer att förändra det faktum. Att lära känna, som att lyssna på och uppskatta själv är avgörande för din sanity. Kanske kommer du till att älska, acceptera och omfamna alla du är, är svår för dig att föreställa dig just nu, men du kan göra ...

Hur man ökar din mentala flexibilitet - dummies

Hur man ökar din mentala flexibilitet - dummies

ÄR flexibel i arbete och relationer är ett tecken på en högpresterande. Medan perfektionister är styva och obehagliga i sitt arbete och hur de interagerar med andra, är högpresterande mer öppna och tillmötesgående. Att vara mer flexibel på jobbet gav Ralph aldrig förslag under brainstorming vid gruppmöten. Han kände att hans lag ...

Redaktörens val

Nätverksadministration: Linux-installation och virtuella konsoler - dummies

Nätverksadministration: Linux-installation och virtuella konsoler - dummies

Linux är i sig ett kommandoradsorienterat operativsystem. Grafiska användargränssnitt - inklusive installationsprogrammets GUI - tillhandahålls av en valfri komponent som heter X Window System. Men medan du arbetar med det grafiska användargränssnittet för installationsprogrammet, håller Linux flera ytterligare kommandorads-konsoler öppna. Normalt behöver du inte ...

Nätverksadministration: Linux-loggning, logg och systemavstängning - dummies

Nätverksadministration: Linux-loggning, logg och systemavstängning - dummies

Alla användare som åtkomst ett Linux-system, lokalt eller över ett nätverk, måste verifieras av ett giltigt användarkonto på systemet. I det följande får du veta hur du loggar in och ut på ett Linux-system och hur du stänger av systemet. Logga in När Linux startar upp visas det ...

Nätverksadministration: Licensserver - Dummies

Nätverksadministration: Licensserver - Dummies

I vissa program kan du köpa nätverkslicenser som gör att du kan installera programvaran på många datorer som du vill, men reglera antalet personer som kan använda programvaran vid en viss tidpunkt. För att styra hur många som använder programvaran, är en särskild licensserver inrättad. När en användare börjar ...