Zmanjševanje dimenzionalnosti
Tretji del: zmanjševanje dimenzionalnosti
To interaktivno učno gradivo je del spremljevalnega gradiva za strokovno usposabljanje Podatkovna analitika in odkrivanje skupin v podatkih, ki ponuja sklop znanj in veščin za kompetenčni profil Podatkovni analitik (EQF 6), razvit v sklopu evropskega projekta ARISA. Zapiski pokrivajo ključne koncepte in pristope raziskovalne analize podatkov, strojnega učenja in vizualne analitike. Na strokovnem usposabljanju boste skozi praktično delo spoznali, kako z vizualnim programiranjem in uporabo orodja Orange odkrivati vzorce in pridobiti vpogled v podatke s pomočjo metod podatkovnega rudarjenja.
Gradivo sta pripravila Blaž Zupan in Janez Demšar. Ajda Pretnar Žagar in Erika Funa sta gradivo prevedli v slovenščino. Cenimo vso pomoč članov Laboratorija za bioinformatiko na Univerzi v Ljubljani, Slovenija.
Gradivo je na voljo pod licenco Creative Commons CC BY-NC-ND.
Obravnavani koncepti
V tem poglavju bomo obravnavali naslednje koncepte s področja zmanjševanja dimenzionalnosti:
-
Metoda glavnih komponent (PCA) – Tehnika zmanjševanja dimenzionalnosti na podlagi projekcije, ki določa nove osi (glavne komponente), ki zajamejo največjo varianco v podatkih. PCA uporablja matematično transformacijo za projiciranje podatkov v prostor z nižjo dimenzionalnostjo, ne da bi pri tem spreminjala razdalje med točkami.
-
Pojasnjena varianca in graf lastnih vrednosti – PCA določa, koliko celotne variance pojasni vsaka glavna komponenta. Graf lastnih vrednosti prikazuje delež variance, ki ga ohrani vsaka komponenta ter pomaga določiti optimalno število komponent za nadaljnjo analizo.
-
Uteži značilk v PCA – Vsaka glavna komponenta je linearna kombinacija izvirnih značilk, pri čemer uteži odražajo njihov pomen. Značilke z večjimi absolutnimi utežmi bolj prispevajo k določeni komponenti, kar razkriva strukturo podatkov.
-
Večrazsežnostno lestvičenje (MDS) – Tehnika vložitve, ki optimizira razporeditev točk v prostoru z nižjo dimenzionalnostjo, hkrati pa minimizira razliko med prvotnimi in vloženimi razdaljami. MDS iterativno prilagaja razporeditev točk, da čim bolje ohrani pare razdalj.
-
PCA vs. MDS – Medtem ko PCA izračuna matematično projekcijo, MDS optimizira razporeditev točk, da kar najbolje ohrani razdalje med njimi. PCA je primerna za prepoznavanje glavnih smeri variance, medtem ko je MDS bolj uporaben za vizualizacijo razmerij, temelječih na razdaljah.
-
t-porazdeljena stohastična vložitev sosedov (t-SNE) – Nelinearna vložitev, ki se osredotoča na ohranjanje lokalnih sosedstev, ne pa celotne strukture podatkov. Optimizira cenovno funkcijo, ki spodbuja bližnje točke, da ostanejo skupaj, hkrati pa omogoča, da se bolj oddaljene točke razpršijo.
-
Vložitev (Embedding) – Splošen pristop, kjer se optimizira cenovna funkcija, da se podatkovne točke v nižji dimenzionalni prostor razporedijo na način, ki najbolje ustreza določenim kriterijem. Za razliko od projekcije, ki sledi neposredni matematični transformaciji, metode vgnezditve (npr. MDS, t-SNE) iterativno prilagajajo položaje točk, da optimizirajo želeni rezultat.
-
Zmanjševanje dimenzionalnosti pri gručenju – Tehnike, kot so PCA, MDS in t-SNE, izboljšajo gručenje z zmanjševanjem šuma in izpostavljanjem vzorcev. t-SNE poudari lokalne strukture, MDS ohranja globalne razdalje, PCA pa ponuja projekcijo na osnovi variance, ki razkriva pomen posameznih značilk.
Chapter 1: Metoda glavnih komponent (PCA)
Za trenutek se zazrimo v zvezde. Tipična slika nočnega neba, kot jo pokaže Google, je podobna tej spodaj. Opazite svetel pas, ki se razteza čez nebo? To je naša galaksija, Mlečna cesta – natančneje, dvodimenzionalna projekcija galaksije, kot jo vidimo z Zemlje.
To je nekoliko nenavaden način razmišljanja o zvezdah. Na podlagi take slike bi lahko galaksijo modelirali kot črto – torej, večina zvezd Mlečne ceste naj bi bila razporejena vzdolž ravne poti. A vemo, da to ne drži. Astronomi so izmerili razdalje zvezd in ugotovili, da ima naša galaksija pravzaprav spiralno strukturo, kot jo vidimo spodaj.
Tudi ta slika je dvodimenzionalna projekcija zvezd v naši trodimenzionalni galaksiji. Kateri model torej bolje predstavlja Mlečno cesto – črta ali spirala? Kateri da več vpogleda v strukturo? In če se osredotočimo na eno zvezdo – kateri model nam bolje pokaže njen položaj glede na ostale zvezde?
Seveda – spirala je informativnejša.
V podatkovni znanosti počnemo podobno. Vsako podatkovno točko si lahko predstavljamo kot zvezdo, postavljeno v večdimenzionalni prostor. Tako kot iščemo smiselno projekcijo galaksije, iščemo tudi dvodimenzionalno projekcijo podatkov, ki ohrani čim več informacij. Ena najpogostejših tehnik za to je analiza glavnih komponent (PCA).
Uporaba PCA na primeru
Uporabili bomo podatkovni niz Zoo, ki ga dobimo z gradnikom Datasets. Ta opisuje živali, kot so medvedi, divje svinje in somi – spremenljivke vključujejo dlako, perje, jajca, mleko … Vključena je tudi informacija o vrsti živali.
Podatke pošljemo v gradnik PCA. Ta določi osi največje variance – torej, dimenzije, vzdolž katerih se podatki najbolj razlikujejo. Za podatke Zoo PCA pokaže, da prva komponenta pojasni 28 % variance, druga pa 19 %. Skupaj torej zajameta skoraj polovico vse variance v podatkih. Zaenkrat se osredotočimo na prikaz v dveh dimenzijah – prvi dve komponenti.
PCA upošteva samo podatkovne značilnosti, torej ignorira klasifikacijo in meta lastnosti.
Eden od izhodov gradnika PCA je podatkovni niz z dodatnima stolpcema: PC1 in PC2. Ta stolpca določata položaj vsake živali v PCA projekciji. Uporabimo ju kot osi v razsevnem diagramu – PC1 na os x, PC2 na os y. Točkam dodamo barvo glede na vrsto živali. Kot pričakovano, se sesalci združijo skupaj, kot prav tako ribe in plazilci. Žuželke pa so nekoliko pomešane z pticami.
Izberimo tiste sesalce, ki so najbliže ribam, in jih poglejmo v Data Table. Kar vidimo, ni presenečenje. To so delfin, pliskavka in tjulenj. Delfin in pliskavka imata enake vrednosti značilnosti, zato se projicirata v isto točko na PCA ravnini. To prekrivanje razkrijemo tako, da točke rahlo premaknemo (jitter).
Chapter 2: Podrobneje o PCA
Uvod v analizo glavnih komponent (PCA) v prejšnjem poglavju je bil namenoma kratek. Cilj je bil takoj pokazati uporabo PCA na podatkovnem nizu in izkusiti prednosti vizualizacije večdimenzionalnih podatkov z zmanjšanjem dimenzionalnosti na dve dimenziji. In to nam je uspelo – raziskovali smo podatkovni niz s šestnajstimi značilnostmi za sto živali.
Zdaj pa si vzemimo čas in se poglobimo v podrobnosti te zanimive metode za zmanjševanje dimenzionalnosti. Uporabili bomo gradnik Paint Data in ustvarili dvodimenzionalni podatkovni niz, ki bo čim bolj linearen. Na ta način lahko položaj vsake točke opišemo s projekcijo na premico. Te razdalje – od središča vseh točk do posamezne projekcije – predstavljajo vrednosti prve glavne komponente. Te razdalje, se pravi, komponente, lahko uporabimo kot eno samo število za predstavitev vsake točke. Pomen prve komponente je razviden tudi iz grafa scree (grafa pojasnjene variance) – ta pokaže, da prva komponenta vsebuje 98 % informacij o podatkih. Vse ostalo predstavlja projekcijo na drugo komponento, ki je pravokotna na prvo. Projekcije na drugo komponento so zelo blizu skupaj in se med seboj le malo razlikujejo.
Opazimo tudi, da graf pojasnjene variance poroča le o dveh komponentah. Imamo namreč samo dve značilnosti in ti dve komponenti zadoščata za popolno predstavitev podatkov. Če bi imeli bolj zapletene podatke z več značilnostmi, bi graf pojasnjene variance pokazal več komponent. Podatke lahko pogledamo tudi v projekcijskem prostoru. Uporabimo razsevni diagram in kot osi nastavimo PC1 in PC2. Zdi se nekoliko neurejeno, a poglejmo merilo: PC1 sega od –2 do 2, medtem ko ima PC2 veliko manjši razpon. Če graf stisnemo, bo razmerje bolj ustrezno. PC1 je glavna os, vzdolž katere so podatki dejansko razporejeni.
Lahko preverimo tudi, kje v projekcijskem prostoru se nahajajo izvorni podatki. Najprej jih prikažemo v razsevnem diagramu, izberemo nekaj točk – recimo zgornji kot – in ta podnabor pošljemo v graf s projekcijami. Vidimo, da so točno tam, kjer bi morale biti. Enako velja za točke iz spodnjega dela in iz središča.
Kaj pa, če bi dodali nekaj novih točk? Tokrat jih lahko postavimo nekoliko ob stran – takole:
Poglejmo spremembo v grafu pojasnjene variance. Zdaj prva komponenta ne pojasni več celotne variance, ampak le njen del. Če dodamo še več zamaknjenih točk, bo ta učinek še izrazitejši.
Če bi bili naši podatki enakomerno razporejeni po celotnem prostoru značilnosti, bi pojasnjena varianca prve komponente padla proti 50 %. V takem primeru torej ne bi mogli učinkovito zmanjšati dimenzionalnosti na eno komponento.
Iz tega se lahko naučimo nekaj pomembnega o PCA: dimenzionalnost lahko zmanjšamo le, če so izvorne značilnosti med seboj povezane (korelirane). V našem dvodimenzionalnem primeru to pomeni, da so podatki razporejeni vzdolž neke premice. Če ni nobene korelacije, ni možnosti za zmanjšanje dimenzionalnosti.
V resničnih podatkovnih nizih so značilnosti pogosto vsaj deloma korelirane, pogosto pa tvorijo tudi skupine povezanih značilnosti. V takih primerih ima uporaba analize glavnih komponent (PCA) smisel. Tedaj je koristno raziskati smeri glavnih komponent in na katere značilnosti se najbolj naslanjajo.
Chapter 3: Razlaga PCA
V prejšnjem poglavju smo analizo glavnih komponent (PCA) uporabili predvsem za zmanjšanje dimenzionalnosti podatkov in njihovo prikazovanje v dveh dimenzijah. Tokrat si bomo podrobneje ogledali povezavo med značilnostmi podatkov in njihovimi glavnimi komponentami. Začnimo z risanjem dvodimenzionalnih podatkov, kot je prikazano na spodnji sliki.
Nato bomo – zaradi standardnega poimenovanja – ti dve značilnosti poimenovali in , kar lahko naredimo z gradnikom Edit Domain. Ne pozabite pritisniti Apply, da se spremembe uveljavijo.
Če podatke prikažemo v razsevnem diagramu, lahko opazimo, da prva glavna komponenta verjetno poteka v diagonalni smeri navzdol. Premica je v bistvu množica točk, ki zadoščajo linearni enačbi. V našem primeru imamo dve značilnosti, in , torej bi morale točke na premici ustrezati enačbi:
.
Grške črke predstavljajo parametre enačbe, ki določa premico. Vektor, ki določa smer projekcije, bo imel in nasprotnih predznakov, kar pomeni, da kaže ali navzgor in levo, ali navzdol in desno. Ti koeficienti so tudi uteži glavne komponente in povedo, kako pomembna je posamezna značilnost za vrednost te komponente. Ker so podatki diagonalno razporejeni, pričakujemo, da bosta in imela približno enaki uteži. Mimogrede: uteži druge komponente bodo imele enake predznake.
Zdaj pa preverimo rezultate v Orangeu in opustimo ročno analizo. Uporabimo gradnik PCA in za ta primer izklopimo normalizacijo.
Graf pojasnjene variance pokaže, da sta in dobro korelirana, saj prva komponenta pojasni skoraj vso varianco. Radi bi preverili, ali so bile naše napovedi pravilne, zato si bomo ogledali uteži (thete) – torej vpliv posameznih značilnosti na vsako komponento. Uporabili bomo gradnik Data Table in povezavo preusmerili tako, da bo prikazovala informacije o komponentah (ne pa spremenjenih podatkov).
Vsaka vrstica vsebuje podatke o posamezni glavni komponenti, kolikšen del variance pojasni in uteži značilnosti. Kot smo pričakovali: pri prvi komponenti imata in približno enaki uteži z nasprotnimi predznaki. Pri drugi komponenti imata uteži enak predznak.
Zdaj lahko podatke rahlo spremenimo, da bodo razporejeni predvsem vzdolž ene osi. Spet bo prva komponenta pojasnila skoraj vso varianco. Če si ogledamo uteži (odprimo Data Table), vidimo, da je značilnost tista, ki najbolj vpliva na PC1. Preostanek variance se razprostira vzdolž osi .
Morda je to delovalo nekoliko abstraktno, a smo se naučili, da uteži glavnih komponent povedo, katere značilnosti najbolj vplivajo na posamezno komponento in v kolikšni meri. Zdaj pa uporabimo podatkovni niz Zoo, ki smo ga že uporabljali. Ta opisuje 100 živali z značilnostmi, kot so dlaka, perje, nesenje jajc, dajanje mleka itd.
Pomembno je vedeti, da so vse značilnosti kategorične – torej niso številke. Za uporabo PCA pa potrebujemo številske podatke. Zato gradnik PCA samodejno pretvori vsako kategorično značilnost v številsko. To lahko storimo tudi ročno, z uporabo gradnika Continuize. Pustimo privzete nastavitve. Rezultat lahko preverimo v Data Table.
Vse kategorične značilnosti so zdaj pretvorjene v številčne vrednosti. Antilopa ima, na primer, v stolpcu "hair=yes" vrednost 1, kar pomeni, da ima dlako. Som (riba) pa ima tam vrednost 0, saj nima dlake.
Zdaj lahko v naš delotok dodamo gradnik PCA. Čeprav bi lahko uteži posameznih značilnosti opazovali v Data Table, bi tam videli zgolj skupek števil, brez jasnega vzorca. Namesto tega najprej transponiramo podatke z utežmi glavnih komponent z uporabo gradnika Transpose in preusmerimo povezavo. Da uredimo značilnosti po velikosti uteži, uporabimo še gradnik Feature Constructor. Ker nas zanima velikost uteži (in ne predznak), definiramo novi značilnosti utež za PC1 kot absolutno vrednost PC1 in enako za PC2.
Zdaj lahko značilnosti razvrstimo po uteži prve glavne komponente.
Izkazalo se je, da je mleko značilnost, ki najbolj vpliva na prvo komponento. Sledijo jajca, vendar je tukaj vrednost negativna, kar pomeni, da gre za odsotnost nesenja jajc. Naslednja najpomembnejša značilnost je dlaka.
To pomeni, da so nekatere živali, ki dajejo mleko, ne nesejo jajc in imajo dlako, sesalci. Ta komponenta torej najverjetneje ločuje sesalce od vseh drugih živali.
Druga komponenta ima velike uteži za vodne živali, živali, ki dihajo, in ptice. Ta komponenta verjetno loči ribe od ptic.
Chapter 4: MDS
V tem poglavju bomo govorili o umeščanju podatkov v dvodimenzionalni prostor. Čeprav to morda zveni zapleteno, ste lahko brez skrbi – ni. Začeli bomo s preprostim primerom in razvili idejo do točke, ko bomo lahko podatkovno zbirko Zoo iz prejšnjih poglavij umestili na 2D karto.
Za razdalje med mesti v ZDA obiščite to spletno stran, za razdalje med azijskimi mesti pa to.
Našli smo spletno stran, ki poroča o razdaljah med evropskimi mesti. Ta na primer pravi, da je Barcelona približno 1500 km oddaljena od Beograda, Beograd pa še dodatnih 300 km od Budimpešte.
V Orangeu najprej pripravimo podatke. Razdalje bomo kopirali v Excel. V meniju Uredi (Edit) bomo uporabili možnost Prilepi kot Posebno (Paste Special) ter izbrali Besedilo (Text), da se znebimo oblikovanja. Nato shranimo datoteko na namizje. Namesto prve vrstice z oznakami napišemo, da gre za 24 mest, ter označimo, da tabela vsebuje oznake vrstic (označimo prvo vrstico, pritisnemo delete – ne izbrišemo vrstice – ter v prvi dve prazni celici vpišemo »24« in »dist«). Orange trenutno uporablja lastni, starejši format za matrike razdalj, zato moramo zaenkrat slediti tem korakom. Podatke shranimo kot s tabulatorjem ločeno besedilo (v Excelu uporabimo Shrani kot, izberemo Tab delimited text) in nato datoteko preimenujemo, da ima končnico .dst
.
Za nalaganje matrike razdalj v Orangeu uporabimo gradnik Distance File. Ta nam pove, da vsebuje podatke za 24 označenih primerov, ki jih lahko preverimo v matriki razdalj.
Dobro, videti je, da so se razdalje pravilno prebrale. Zdaj sledi glavni trik. Uporabili bomo vložitveno metodo, imenovano večrazsežnostno lestvičenje (multi-dimensional scaling ali MDS) in razdalje pretvorili v dvodimenzionalno karto evropskih mest. Vse, kar moramo narediti, je, da gradnik MDS povežemo z datoteko razdalj. In že imamo "zemljevid": Beograd je blizu Budimpešte, Praga blizu Dunaja, Münchna in Berlina, Moskva daleč na eni strani, Barcelona in Madrid pa na drugi.
Večrazsežnostno lestvičenje očitno ustvari karto evropskih mest, le da je ta obrnjena na glavo. Geografske informacije niso bile vključene v naše podatke – podali smo le razdalje. Običajen zemljevid evropskih prestolnic bi izgledal bolj tako:
Madrid spodaj levo, Dublin na severu in Moskva skrajno desno. Orangeu lahko pomagamo tako, da zamenjamo MDS koordinati. MDS na izhodu poda celoten nabor podatkov z vloženimi, t.j. izračunanimi dvodimenzionalnimi koordinatami, kot meta-spremenljivkami. Da uvedemo novi spremenljivki x in y, ki vsebujeta obrnjene MDS koordinate, uporabimo gradnik Feature Constructor. Povezavo med gradnikoma MDS in Feature Constructor moramo preusmeriti tako, da ta posreduje celoten nabor podatkov, ne le izbora. Sedaj lahko podatke prikažemo v razsevnem diagramu, kjer so mesta prikazana, kot jih poznamo na zemljevidu.
Sedaj lahko zares cenimo, kaj počne večrazsežnostno lestvičenje. Podali smo razdalje med pari mest, Orange pa jih je uporabil za postavitev mest na način, ki zelo spominja na pravi zemljevid Evrope.
To lahko naredimo s katerimi koli podatki, če le lahko ustvarimo ali pridobimo matriko razdalj. Uporabimo, na primer, podatkovno zbirko Zoo. V novem delotoku najprej s pomočjo gradnika Datasets naložimo podatke. Spomnimo se, da Zoo vsebuje podatke o 100 živalih, opisanih s 16 značilnostmi, kot so število nog, prisotnost dlake ali perja. Iz teh podatkov z gradnikom Distances zgradimo matriko razdalj. Ker smo ta gradnik že uporabili pri hierarhičnem gručenju, tukaj preskočimo podrobnosti. Razdalje lahko preverimo v Distance Matrix in, če se zdijo ustrezne, jih posredujemo gradniku MDS. Rezultat je smiseln – sesalci so umeščeni skupaj, ribe in ptice prav tako. Trije sesalci, ki so najbliže ribam, so – nič presenetljivega – delfin, kljunaš in pliskavka.
Če ta prikaz primerjamo z razsevnim diagramom, ki smo ga izdelali s pomočjo analize glavnih komponent, se lahko spomnimo, da tokrat žuželke in ptice niso tako premešane. Vseeno Orange z linijo nakaže, da so nekatere žuželke bližje nekaterim pticam, kot to kaže karta.
Na kratko ponovimo. Ocenili smo razdalje iz 16-dimenzionalnega prostora, MDS pa lahko te razdalje le približno predstavi v dveh dimenzijah. Razdalje v dveh dimenzijah nikoli ne bodo popolnoma ustrezale tistim iz 16-dimenzionalnega prostora. Če bi, bi to pomenilo, da vsi ti podatki ležijo v neki 2D ravnini, ostalih 14 dimenzij pa bi bilo odveč. Stopnjo te »zvestobe« lahko prilagodimo z drsnikom Show similar pairs v gradniku MDS.
Večdimenzionalni prikazi nas spomnijo na diagrame, ustvarjene z analizo glavnih komponent. Presenetljivo je, da lahko ti dve povsem različni metodi privedeta do zelo podobnih vizualizacij. PCA išče dvodimenzionalno projekcijo, ki ohrani največ variance, medtem ko MDS skuša ohraniti vse pare razdalj. PCA temelji na projekciji, medtem ko MDS z iterativnim postopkom optimizira postavitev točk. MDS podatke vloži v dvodimenzionalni prostor, kjer končne koordinate nimajo pomena same po sebi. Glavna prednost MDS pa je, da lahko neposredno deluje na matriki razdalj, medtem ko PCA zahteva tabelarno predstavitev podatkov.
Chapter 5: t-SNE
Večrazsežnostno lestvičenje (MDS) skuša ohraniti vse razdalje iz izvornega podatkovnega prostora – tako med točkami, ki so si blizu, kot med tistimi, ki so si daleč narazen. A v resničnem življenju nas pogosto zanimajo le stvari, ki so si blizu. Kar je daleč, je pač daleč, natančna razdalja pa ni več pomembna. Avtorja tega besedila na primer skrbi, kako daleč sta si dom in delovno mesto – dodatne ali prihranjene pol ure na poti je velika razlika. Če pa bi se peljal iz Ljubljane v Pariz, trideset minut več ali manj na 14-urni poti ne bi naredilo bistvene razlike. Pariz je pač daleč.
Podobno velja za vizualizacijo podatkov: stvari, ki so skupaj, so pomembnejše. Sprašujemo se, ali moramo ohraniti vse razdalje med točkami, ali pa nas zanima predvsem to, da združimo točke, ki so si blizu? Če nas denimo zanima gručenje, potem želimo, da se točke, ki so si blizu, združijo skupaj.
Oglejmo si naslednji umetno ustvarjen niz podatkov, kjer je nekaj očitnih gručenj.
Opomba: Gradnik MDS lahko priključimo neposredno na izvor podatkov, brez predhodnega izračuna razdalj. Rezultat bo enak, kot če bi uporabili gradnik Distances z evklidsko razdaljo. Druga opomba: čeprav t-SNE potrebuje razdalje, trenutna izvedba v Orangeu razdalje samodejno izračuna iz podatkov, zato na vhodu ne sprejema matrike razdalj.
Najprej bomo z gradnikom Distances izračunali pare razdalj med podatkovnimi primeri. Nato bomo uporabili gradnik MDS, ki bo te razdalje pretvoril v karto. Ker gre za dvodimenzionalne podatke, pričakujemo, da bo MDS lahko prostor skoraj popolnoma poustvaril. Spodaj sta dve sliki – kot vidimo, sta skoraj enaki. Čeprav je ena morda rahlo zaskuana.
Zdaj pa preizkusimo še drugo vizualizacijsko metodo – tako imenovano t-porazdeljeno stohastično vložitev sosedov, krajše t-SNE. Ta se osredotoča zgolj na sosede. Ideja vizualizacije je, da točke, ki so si v izvirnem prostoru blizu, ostanejo skupaj tudi po vložitvi. Povežimo torej naše izvorne podatke z gradnikom t-SNE. Rezultat? Točke, ki so bile blizu, so še vedno zbrane skupaj.
To "zgoščevanje" (clumping) v t-SNE nadzoruje parameter poudarek (exaggeration). Poglejmo, kaj se zgodi, če ta parameter povečamo na vrednost 2 – s tem še dodatno poudarimo lokalnost.
Zanimalo nas je, kako se bo t-SNE odrezal na podatkovni zbirki Zoo, ki smo jo že večkrat uporabljali. Začnemo s praznim delotokom, naložimo zbirko z gradnikom Datasets in jo povežemo z gradnikom t-SNE. Rezultat? Živali so obarvane po vrsti in ni prekrivanja – sesalci, ribe, ptice in celo nevretenčarji tvorijo vsak svojo gručo.
To vložitev lahko primerjamo s tisto, ki smo jo dobili s pomočjo MDS ali PCA. Preizkusite sami. Razlika ni ogromna, a t-SNE se zdi nekoliko uspešnejši pri razločevanju istovrstnih primerov.
Na prvi pogled se zdita t-SNE in MDS podobna v dveh dimenzijah, a razlike postanejo bolj očitne pri večjih podatkovnih zbirkah. O tem bomo govorili v naslednjem poglavju. Za zdaj pa zaključimo z razlago imena t-SNE, oziroma t-porazdeljena stohastična vložitev sosedov.
Najprej – gre za vložitev, kar pomeni, da se točke umestijo v prostor z manj dimenzijami (v našem primeru v dvodimenzionalni prostor), pri tem pa se optimizira njihova lokalna postavitev. Drugo – stohastičen pomeni, da je v metodi prisoten element naključja – začetek vložitve temelji na naključni postavitvi točk. In tretjič – črka t izhaja iz t-porazdelitve, ki se uporablja za določanje pomembnosti posameznih sosedov.
Ključni razliki:
- MDS skuša ohraniti vse razdalje med točkami,
- t-SNE pa ohranja lokalne sosede vsake posamezne točke.
Chapter 6: t-SNE, PCA in MDS
Predstavili smo tri tehnike zmanjševanja razsežnosti podatkov: analizo glavnih komponent, večrazsežnostno lestvičenje in t-porazdeljeno stohastično vložitev. Naš glavni cilj je bila vizualizacija podatkov – torej zmanjšanje števila razsežnosti na dve.
Pri manjših podatkovnih množicah smo ugotovili, da te tehnike dajejo podobne rezultate. A to je pravzaprav nekoliko presenetljivo, saj so ti pristopi v osnovi zelo različni.
PCA je projekcija. To pomeni, da za dane podatke PCA poišče projekcije na osi, definirane z glavnimi komponentami. Te glavne osi izračuna neposredno iz podatkov z uporabo lastnih vektorjev kovariančne matrike. Uporabimo jih lahko tudi za umeščanje novih primerov v podatkovni prostor.
Po drugi strani pa večrazsežnostno lestvičenje (MDS) upošteva razdalje, ki lahko izhajajo iz večdimenzionalnih podatkov. Razdalje med posameznima točkama in označimo z . MDS skuša podatke vložiti v dvodimenzionalni prostor tako, da bodo nastale razdalje čim bližje izvirnim. Če razdalje v vloženem prostoru označimo z , potem MDS minimizira izraz:
MDS išče vložitev, ki iterativno minimizira to kriterijsko funkcijo. Začne z naključno razporeditvijo točk in jih v vsaki iteraciji premakne bližje skupap tako, da zmanjša vrednost kriterijske funkcije. Postopek si lahko pogledamo na podatkih Zoo. V gradniku MDS naključno postavimo točke, vključimo možnost Refresh to Every iteration in pritisnemo Start. Pomembno je vedeti, da je rezultat optimizacije lahko odvisen od začetne postavitve. Da bi bil postopek bolj determinističen, MDS pogosto začne z razporeditvijo, dobljeno s PCA.
t-SNE je prav tako vložitev, ki z iterativno optimizacijo išče najboljšo postavitev točk. Po izvedbi je podobna MDS, vendar uporablja drugo kriterijsko funkcijo. Ta je nekoliko bolj kompleksna in daje prednost ohranjanju razdalj med sosednjimi točkami.
Razlike med temi tremi metodami so lahko zelo velike. Tokrat bomo uporabili biološki podatkovni niz, imenovan mononuklearne celice kostnega mozga. Vsaka od 1000 vrstic predstavlja posamezno celico kostnega mozga. Nabor vsebuje 1000 značilk (genov), ki predstavljajo izražanje genov v posamezni celici. Obstaja več vrst celic kostnega mozga in pričakujemo, da jih bomo lahko s pomočjo gručenja podatkov identificirali.
Najprej podatke podamo v PCA in si rezultat ogledamo v Scatter Plot. Koordinate, PC1 in PC2, najdemo na koncu seznama značilk.
Rezultat PCA vizualizacije primerjajmo z rezultatom t-SNE. Tokrat je vizualizacija precej drugačna – struktura gručenja je pri t-SNE veliko bolj izrazita.
Lahko bi uporabili tudi večrazsežnostno lestvičenje, a ugotovili bomo, da je rezultat bolj podoben PCA kot t-SNE in odkrije precej manj strukture v podatkih.
V t-SNE vizualizaciji lahko izberemo naključno gručo in pogledamo, kje se te točke nahajajo v PCA. To storimo tako, da izhod iz t-SNE povežemo z razsevnim diagramom. Ko imamo obe vizualizaciji odprti, lahko v t-SNE označimo gručo in opazujemo njen položaj v PCA. Ugotovimo, da bi iz PCA lahko razbrali le nekatere gruč, ne pa vseh, ki jih razkrije t-SNE.
Povzetek:
- Ko nas zanimajo gručne strukture, uporabimo t-SNE.
- Ko želimo ohraniti vse razdalje, uporabimo večrazsežnostno lestvičenje (MDS).
- Ko potrebujemo robustno matematično metodo zmanjševanja razsežnosti, ki ohranja čim več variabilnosti, uporabimo PCA.
In še nekaj – podobno kot pri gručenju mora biti vsaka vložitev podatkov (in vizualizacija), ki podatke prikaže v nizkorazsežnem prostoru, razložena in interpretirana.