HomeRaziskovanje podatkov

Raziskovanje podatkov

Prvi del: delotoki, raziskovalna analiza podatkov, hierarhično razvrščanje v skupine

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 podatkovne znanosti in strojnega učenja:

  1. Tabelarični podatki in značilke – Podatki so pogosto organizirani v obliki tabel, kjer vrstice predstavljajo primere podatkov in stolpci predstavljajo značilke (imenovane tudi spremenljivke ali napovedne spremenljivke). Vsaka značilka opisuje neko lastnost primera in je lahko numerična (npr. dohodek, starost) ali kategorična (npr. država, spol).

  2. Vrste in vloge značilk – Značilke delimo na vhodne spremenljivke (neodvisne oz. napovedne spremenljivke) in ciljne spremenljivke (odvisne spremenljivke, oznake, izid). Nekateri atributi lahko služijo kot meta spremenljivke, ki shranjujejo kontekstne informacije, a se ne uporabljajo pri modeliranju (npr. stolpec z identifikacijskimi številkami).

  3. Delotok – Analiza podatkov običajno sledi strukturiranemu procesu, v katerem podatke naložimo, obdelamo, analiziramo in vizualiziramo. To vključuje povezovanje različnih orodij in tehnik za izvajanje nalog rudarjenja podatkov in strojnega učenja.

  4. Raziskovalna analiza podatkov (EDA) – Pregledovanje podatkovnih zbirk s pomočjo opisne statistike, vizualizacij (razsevni diagrami, histogrami) in povzetkov, da bi prepoznali vzorce, trende in anomalije.

  5. Transformacija podatkov in inženiring značilk – Čiščenje, filtriranje, normalizacija in spreminjanje podatkov za izboljšanje analize.

  6. Vizualizacija podatkov – Uporaba grafov, kot so razsevni diagrami, histogrami, škatla z brki in korelacijske matrike, za interpretacijo porazdelitev podatkov, odnosov in vzorcev.

  7. Analiza korelacij – Ugotavljanje odnosov med spremenljivkami s statističnimi metodami (npr. Pearsonov korelacijski koeficient).

  8. Metrike razdalj – Merjenje podobnosti ali raznolikosti med podatkovnimi točkami z uporabo matematičnih formul, kot sta evklidska razdalja in kosinusna podobnost.

  9. Povezovanje v gručenju – Povezovanje določa, kako se meri razdalja med gručami pri hierarhičnem gručenju.

  10. Tehnike gručenja – Razvrščanje podatkovnih točk glede na podobnost z uporabo metod, kot so hierarhično gručenje, k-means gručenje in DBSCAN.

  11. Dendrogrami in hierarhično gručenje – Vizualizacija hierarhičnega gručenja, ki prikazuje, kako se podatkovne točke združujejo v gruče na različnih ravneh.

  12. Večdimenzionalni podatki – Podatki lahko obstajajo v več dimenzijah, pri čemer vsaka značilka (atribut) predstavlja ločeno os v visokodimenzionalnem prostoru. Npr. če imamo telesno višino in širino za nabor ljudi, bodo meritve višine predstavljanje eno dimenzijo, meritve širine pa drugo. Naš prostor je tako dvodimenzionalen. Vsaka nova značilka doda novo dimenzijo.

Chapter 1: Delotoki v Orangeu

Orange omogoča analizo podatkov s sestavljanjem delotokov. Delotoki v Orangeu vsebujejo komponente, ki berejo, obdelujejo in vizualizirajo podatke ter modele. Te komponente imenujemo "gradniki" (widgets). Gradnike postavimo na "platno" (canvas), kjer oblikujemo delotok. Gradniki med seboj komunicirajo s pošiljanjem informacij prek komunikacijskih povezav. Delotok sestavimo tako, da izhod enega gradnika povežemo z vhodom drugega.

Preprost delotok z dvema povezanima gradnikoma. Izhodi gradnika so na desni, vhodi pa na levi.

Delotoke sestavimo tako, da gradnike postavimo na platno in jih povežemo s črto, ki poteka od izhodnega gradnika (levo) do prejemnega gradnika (desno). Nov gradnik lahko na platno dodamo na več načinov:

  • kliknemo na ikono gradnika v orodni vrstici, pri čemer se na platnu pojavi nov, še nepovezan gradnik,
  • desno kliknemo na prazno mesto na platnu, v iskalno polje vpišemo del imena želenega gradnika in ga izberemo s seznama,
  • potegnemo črto iz izhoda ali vhoda enega gradnika na prazno mesto na platnu; pri tem se odpre meni z razpoložljivimi gradniki.

Izhodi gradnika so na desni strani, vhodi pa na levi. V zgornjem delotoku gradnik Datasets pošilja svoje podatke gradniku Data Table. Gradnik Datasets naloži podatke iz strežnika Orange in jih posreduje gradniku Data Table. Gradnik Data Table nato prikaže podatke v obliki preglednice. Ne gre ga zamenjati s programi, kot je Excel. Data Table služi zgolj prikazu podatkov in ni urejevalnik podatkov. Če želimo podatke spremeniti, jih moramo popraviti v izvorni datoteki in jih ponovno naložiti v Orange. Seveda Orange ponuja tudi gradnike za spreminjanje in preoblikovanje podatkovnih nizov, vendar jih bomo spoznali kasneje v tem priročniku.

Če Orange uporabljate prvič, gradnik Datasets še ni naložil nobenih podatkov. Ko sestavimo zgornji delotok z gradnikoma Datasets in Data Table, bo povezava med njima prekinjena in označena s črtkano črto:

Črtkana črta pomeni, da sta gradnika povezana, vendar skozi kanal še ni prenesenih podatkov. Namreč nismo še določili, katere podatke naj naloži gradnik Datasets. Z dvoklikom ga odpremo. Prikaže se seznam razpoložljivih podatkovnih nizov. Poiščimo HDI (Human Development Index) in ga naložimo z dvoklikom na vrstico ali s pritiskom tipke Enter, ko je vrstica izbrana.

Zdaj povezava med Datasets in Data Table postane neprekinjena, kar pomeni, da so podatki naloženi. Dvokliknimo na Data Table, da preverimo njihovo vsebino.

Podatkovni niz o človeškem razvoju (HDI dataset) vsebuje 52 značilk (features) in dve meta spremenljivki (meta attributes). Meta spremenljivki hranita ime države in indeks HDI, značilke pa opisujejo države z različnimi socio-ekonomskimi kazalniki. Čeprav je HDI indeks le še ena številčna vrednost, je označen kot meta spremenljivka, saj je izračunan iz vseh drugih značilk. V prihodnjih poglavjih bomo podrobneje obravnavali dodeljevanje različnih vlog in tipov spremenljivkam.

Prve značilke v podatkovnem nizu HDI poročajo o pričakovani življenjski dobi, povprečnih letih šolanja in bruto nacionalnem dohodku. V kateri državi ljudje živijo najdlje? Kje preživijo največ let v šoli? Ali sta ti dve značilki povezani? Ali je dolžina šolanja povezana z višjim dohodkom? Z Data Table ne moremo odgovoriti na vsa vprašanja, lahko pa odgovorimo na prvi dve. Razvrstimo države glede na izbrane značilke s klikom na ustrezno glavo stolpca (Life expectancy). Ali vas rezultati presenetijo?

Za odgovor na tretje vprašanje lahko uporabimo razsevni diagram (scatter plot). Dodajmo gradnik Scatter Plot v delotok in ga odprimo z dvoklikom na njegovo ikono.

Zdi se, da je pričakovana življenjska doba povezana s številom let šolanja. Daljše šolanje pomeni daljše življenje? Ne nujno. Korelacije ne smemo enačiti z vzročnostjo. Kljub temu je zanimivo videti, v katerih državah ljudje najdlje obiskujejo šolo in kje najdlje živijo. Na tej stopnji lahko:

  • premaknemo miškin kazalec nad podatkovno točko, da prikažemo ime države,
  • vklopimo označevanje podatkovnih točk z izbiro države v spustnem seznamu "Label",
  • izberemo nekaj držav in pošljemo podatke v Data Table.

Izberimo tretjo možnost. Najprej povežimo nov gradnik Data Table z izhodom Scatter Plot. To storimo tako, da povlečemo novo povezavo iz Scatter Plot in v spustnem seznamu izberemo Data Table:

Nastali delotok zdaj vsebuje štiri gradnike. Gradnik Datasets naloži podatke in jih pošlje Data Table, ki prikaže celoten podatkovni niz, ter Scatter Plot, ki vizualizira razmerje med dvema značilkama. Scatter Plot nato izbrane podatke pošlje v Data Table (1):

Zakaj je povezava med Scatter Plot in Data Table (1) še vedno črtkana? Ker še nismo izbrali nobenih podatkov! Izberimo nekaj točk v Scatter Plot in spremljajmo, kako se prikažejo v Data Table (1).

Dve tehnični opombi:

  • Na zgornji sliki smo skrili leva dela gradniko Data Table in Scatter Plot s klikom na navpično ločilno območje. Za ponovno širitev kliknemo pas na levem robu okna, kjer vidite puščico.
  • Ko kliknemo na platno v Orangeu, se okno platna premakne v ospredje in skrije gradnike. Gradnike lahko prikažemo v ospredju z izbiro ukaza "Bring Widgets to Front" v meniju "View" programa Orange ali s pritiskom kombinacije tipk Ctrl-Down (Windows) ali Cmd-Down (Mac).

Po izbiri točk v Scatter Plot se črtkana povezava spremeni v neprekinjeno: Scatter Plot je poslal podatke naprej. S klikom na prazno območje v Scatter Plot počistimo izbiro.

S tem smo sestavili naš prvi delotok za raziskovalno analizo podatkov. Zdaj lahko raziščemo, katere države imajo najkrajšo življenjsko dobo, ali pa preverimo, ali države iz različnih skupin pripadajo različnim geografskim regijam.

Kaj omogoča kanal "Features" (spremenljivke) v Scatter Plot? Kateri gradniki lahko pošiljajo ta tip podatkov? Nadaljujmo z branjem.

Chapter 2: Shranjevanje delotokov

Poglejmo, kako shraniti svoje delo v Orangeu. Preden to storimo, bomo sestavili delotok in prikazali še nekaj trikov vizualnega programiranja v programu. Uporabili bomo enake socioekonomske podatke (HDI), kot v prejšnjem poglavju Delotoki v Orangeu. Tokrat bomo gradnik Datasets dodali brez uporabe orodne vrstice. To storimo tako, da z desnim klikom na platno odpremo meni, kamor vnesemo besedo "data", kar nam prikaže gradnik Datasets. Ko je vrstica označena, pritisnemo tipko Enter.

Ko odpremo gradnik Datasets, vidimo, da je nabor podatkov HDI že naložen – ob njegovem imenu je zelena pika - seveda ob predpostavki, da ste sledili prejšnjim poglavjem. Gradniki v Orangeu si zapomnijo naše prejšnje izbire in dejanja. V Scatter Plot lahko, na primer, preverimo, ali še vedno prikazuje zadnji par značilnosti, ki smo ga izbrali.

In res. Scatter Plot smo nazadnje uporabili za prikaz povezave med pričakovano življenjsko dobo in leti šolanja. Dodajmo še nekaj vsebine v naš delotok in poiščimo, na primer, Slovenijo. Lahko bi dodali oznake točk z izbiro spremenljivke v meniju Label, a bi diagram postal preveč natrpan oz. nepregleden. En način za enostavno iskanje določenih držav je gradnik Data Table, kjer lahko države razvrstimo po imenu. Ta gradnik na svojem izhodu posreduje podatke o vrsticah, ki jih izberemo. Preverimo to tako, da na prvi Data Table povežemo še en gradnik Data Table. Vidimo, da vse deluje pravilno – v Data Table (1) je prikazana samo Slovenija. Če med klikom držimo tipko Ctrl (ali Command), lahko izberemo še Španijo. Super, zdaj imamo na izhodu Slovenijo in Španijo.

Gradnika Data Table (1) zdaj ne potrebujemo več, zato ga lahko odstranimo s pritiskom na tipko Delete ali Backspace, ali pa nanj kliknemo z desno tipko miške in izberemo možnost Odstrani.

Naš vmesni cilj je označiti izbrane države iz gradnika Data Table in jih poudariti v Scatter Plot. Povežimo izhod Data Table s Scatter Plot. Orange sam prepozna, da ima Scatter Plot že podatke (Data) na svojem vhodu, in novo povezavo samodejno usmeri v sekundarni kanal Data Subset, kar lahko vidite na povezavi med Data Table ter Scatter Plot. Na Scatter Plot sta zdaj poudarjeni dve točki v zgornjem desnem kvadrantu. Dodamo lahko oznake držav, a jih prikažemo le za vhodno podmnožico podatkov. To storimo tako, da v meniju Label izberemo spremenljivko Country ter označimo možnost Label only selection and subset.

Zdaj lahko v gradniku Data Table poljubno spreminjamo izbor držav in opazujemo njihov položaj v gradniku Scatter Plot. Na primer, Singapur je desno, Romunija zgoraj, Sierra Leone spodaj. Države z najvišjimi dohodki so v zgornjem kvadrantu.

Za konec se vrnimo k temu, kar smo obljubili v naslovu tega poglavja. Orange lahko zapremo in se k svojemu delu vrnemo kasneje. Delotok shranimo tako, da v meniju File izberemo možnost Save. Delotok shranimo v datoteko "drzave" na namizju. Zdaj lahko zapremo Orange in se kasneje vrnemo k shranjenemu delu.

Chapter 3: Korelacije

V tem poglavju bomo spoznali, da vse povezave med gradniki v Orangeu ne prenašajo podatkov. To si bomo ogledali na podatkih indeksa človeškega razvoja (HDI) in raziskali korelacije med značilnostmi podatkov.

Najpogostejši komunikacijski element, ki se prenaša med gradniki, je podatkovna tabela, označena kot Data.

V vseh naših prejšnjih delotokih so si gradniki v Orangeu med seboj pošiljali podatkovne primere. Na primer, nabor podatkov indeks človeškega razvoja (Human Development Index) smo naložili z gradnikom Datasets in ga nato pregledali v Data Table. Orange nam sporoča, da ta dva gradnika komunicirata prek kanala Data. Uporabili smo tudi Scatter Plot, pri čemer je bila povezava med gradnikoma prav tako označena kot Data.

Toda informacije, ki se prenašajo med gradniki, ne vsebujejo nujno le podatkovnih primerov. Gradniki v Orangeu lahko prenašajo tudi matrike razdalj, objekte, ki se učijo iz podatkov, rezultate vrednotenja ali nabor značilnosti podatkov. Oglejmo si primer. Uporabili bomo gradnik Correlations, ki prikazuje korelacije med pari značilnosti v podatkovnem naboru. Gradnik uredi pare značilnosti glede na absolutno vrednost Pearsonovega koeficienta korelacije, ki je naveden v gradniku. Vidimo, da so nekatere značilnosti v podatkih o indeksu človeškega razvoja močno povezane. Na primer, povprečna leta šolanja (Mean years of schooling) so povezana s stopnjo populacije z vsaj sekundarno izobrazbo (Population with at least some secundary education). Bolj zanimivo pa je, da je poleg očitnih korelacij neenakost v izobraževanju (Inequality in education(%)) negativno povezana s povprečnimi leti šolanja (Means years of schooling).

V razsevnem diagramu (Scatter Plot) bi želeli prikazati vsako posamezno povezavo med dvema spremenljivkama. Lahko bi odprli Scatter Plot in ročno poiskali izbrani par spremenljivk, vendar bi morali to storiti za vsak zanimiv par, ki ga vidimo v gradniku Correlations. Namesto tega lahko povežemo Correlations s Scatter Plot. Orange nas vpraša, kakšno povezavo želimo vzpostaviti. Ker ne želimo, da bi gradnik Correlations poslal podatke le z izbranima dvema značilnostma, kliknemo na povezavo in prekličemo ta signal. Vidimo pa, da Correlations na izhodu posreduje tudi informacijo o izbranem paru spremenljivk in Scatter Plot lahko to informacijo sprejme prek povezave Features. Povezavo vzpostavimo tako, da potegnemo črto od polja Features v Correlations do polja Features v Scatter Plot.

Replay

Gradnik Correlations pošlje par značilnosti v Scatter Plot.

Orange je dodal oznako Features na povezavo med Correlations in Scatter Plot. Zdaj lahko vzporedno odpremo oba gradnika; izbira vrstice v gradniku Correlations pošlje signal, ki gradniku Scatter Plot sporoči, katere osi naj prikaže. Tako lahko na primer vidimo, zakaj je neenakost v izobraževanju negativno povezana s povprečnimi leti šolanja, ali zakaj obstaja tako visoka korelacija med moško in žensko populacijo z vsaj srednješolsko izobrazbo.

Chapter 4: Porazdelitve

Nadaljujmo z raziskovanjem podatkov o indeksu človeškega razvoja (HDI) in ob tem spoznajmo še več vrst vizualizacij. Začnimo s porazdelitvami. To storimo tako, da k gradniku Datasets dodamo gradnik Distributions.

Naložite HDI podatke v gradnik Datasets. Postopek je opisan v prejšnjem poglavju.

Podoben gradnik za prikaz porazdelitev kot Distributions je Violin Plot. Ta gradnik bomo tokrat izpustili, vendar vas vabimo, da ga uporabite in primerjate z gradnikom Distributions.

Porazdelitve prikažejo histogram vrednosti izbranih značilnosti. V porazdelitvi življenjske dobe lahko na primer vidimo, da je ta v večini držav visoka, nizke vrednosti pa se pojavljajo le v peščici držav. Če želite ustvariti spodnjo vizualizacijo, v gradniku Distributions ustrezno nastavite širino košev (bins).

V naši HDI zbirki je seveda zanimivo raziskati tudi druge značilnosti in preveriti njihovo porazdelitev. Nadaljujemo z našim primerom distribucije indeksa človeškega razvoja. V gradniku Distributions izberemo podatke, kjer je ta indeks visok. To naredimo tako, da kliknemo in povlečemo skozi stolpce histograma. Za začetek preverimo povezavo med gradnikoma Distributions in Data Table:

Opazimo lahko, da vsaka sprememba izbire podatkov v gradniku Distributions povzroči posodobitev v Data Table. Še bolj zanimiva pa je morda naslednja kombinacija z gradnikom Scatter Plot.

Recimo, da želimo v gradniku Scatter Plot videti, kje so prikazane države z visokim ali nizkim indeksom človeškega razvoja (karkoli smo izbrali v gradniku Distributions). Na primer, večina držav z visokim razvojnim indeksom ima razvite izobraževalne sisteme in visoko življenjsko dobo:

Za še bolj dinamičen prikaz lahko (morda z nekoliko širšimi koši) izberemo en stolpec v histogramu in pritisnemo desno ali levo puščico na tipkovnici, da vidimo ustrezne države v razsevnem diagramu.

Replay

Večina držav z visokim indeksom človeškega razvoja je v zgornjem kvadrantu na grafu korelacije življenjske dobe in šolanja, ne pa vse. Obstaja nekaj prekrivanja. Nekatere države z visokim povprečjem let šolanja imajo na primer nizek indeks človeškega razvoja. Zanimivo bi bilo primerjati porazdelitve let šolanja med državamu z nizkim in tistimi z visokim indeksom razvoja. To lahko storimo tako, da zgradimo delotok z dvema gradnikoma Distributions. V prvem bomo izbrali države z visokim razvojnim indeksom in prenesli informacije o izbiri skupaj s podatki v drugi gradnik Distributions. Tukaj je delotok:

Z dvojnim klikom na povezavo med gradnikoma odpremo okno za urejanje povezav. Povezavo odstranimo tako, da kliknemo na debelo črto ali pa povlečemo črto iz kvadrata, ki predstavlja izhod enega gradnika, v kvadrat, ki predstavlja vhod drugega gradnika.

Opazimo lahko, da če povlečemo povezavo med gradnikom Distributions in gradnikom Data Table, Orange samodejno uporabi izhod Selected Data. V zgoraj prikazanem delotoku smo to nastavitev spremenili tako, da smo z dvojnim klikom na povezavo med tema gradnikoma spremenili povezavo in povezali izhod Data iz gradnika Distributions z vhodom Data v gradniku Data Table:

Replay

Izhod Data gradnika Distributions oddaja celoten nabor podatkov, vendar vključuje posebno spremenljivko Selected, ki pove, ali je bil primer izbran ali ne.

Spremenili smo povezavo za gradnika Data Table in Distributions (1) na tip Data. Ko odpremo gradnik Data Table, opazimo, da je gradnik Distributions v naš nabor podatkov dodal dve spremenljivki: Selected ter Bin. Poglejmo spremenljivko Selected, ki poroča, ali je bila država izbrana v gradniku Distributions. Selected je binarna spremenljivka z vrednostmi Yes in No:

V delotoku smo gradnik Data Table uporabili za preverjanje, kako izgledajo podatki na izhodu gradnika Distributions. Pred analizo je vedno koristno, da si v tabeli ogledamo surove, obogatene ali preoblikovane podatke – tako preverimo, ali je vse v redu, in bolje razumemo izhode posameznih gradnikov. Zdaj, ko vemo za prisotnost spremenljivke Selected, jo lahko uporabimo v Distributions (1) za razdelitev podatkov in opazovanje porazdelitev za izbrane in neizbrane primere (pogojne porazdelitve):

Prekrivanje je zdaj jasno vidno, tako kot tudi prejšnje opažanje, da imajo samo države z visoko življenjsko dobo višji indeks človeškega razvoja. Opazujemo lahko tudi pogojne porazdelitve drugih spremenljivk. Morda bomo opazili, da so razlike v porazdelitvah bolj izrazite pri nekaterih spremenljivkah, pri drugih pa manj.

Podoben gradnik kot Distributions, vendar z drugačno predstavitvijo variabilnosti vrednosti, je Škatla z brki. Dodajmo ga v delotok, da potrdimo naše prejšnje ugotovitve. Spet bomo prevezali povezavo. Odstranimo povezavo iz Selected Data in povežemo izhod Data iz gradnika Distributions v Box Plot. Izberite Selected za podskupine podatkov (Subgroups) in opazujte razlike v življenjski dobi glede na našo izbiro razvrščanja po indeksu človeškega razvoja.

Škatla z brki prikazuje, da je povprečna življenjska doba v državah z visokim indeksom človeškega razvoja veliko višja kot v drugih državah (79,7 proti 68,2), pri tem pa je prekrivanja med obema porazdelitvama zelo malo. Glede prekrivanja bi bilo zanimivo poiskati značilnosti, kjer so razlike med državami z nizkim in visokim indeksom človeškega razvoja največje. Najprej pa definirajmo, kaj pravzaprav mislimo z "majhnim prekrivanjem". Želimo, da so povprečja v škatli z brki čim bolj oddaljena. In želeli bi porazdelitve z majhnim razponom med vrednostmi. Oceno zanimivosti spremenljivk dobimo tako, da izračunamo razliko med povprečji in jo delimo s korenom vsote kvadratov varianc. Ta ocena je pravzaprav Welchov t-test, ki ga lahko vidimo na dnu vizualizacije škatle z brki. Vrednost te t-statistike za izbrano razdelitev podatkov in življenjsko dobo je 14,98, kar bi bilo malo verjetno, da bi dobili, če bi bila razdelitev med izbranimi in neizbranimi državami naključna (zato je p=0,0). Če označimo "Order by relevance to subgroups", so značilnosti razvrščene po p-vrednosti. Izkaže se, da so spremenljivke, povezane z nacionalnim dohodkom, življenjsko dobo, neenakostjo in kakovostjo zdravstvene oskrbe, tiste, ki so najtesneje povezane z indeksom človekovega razvoja.

Orange vsebuje več gradnikov, s katerimi lahko raziščemo skupne porazdelitve dveh ali več spremenljivk. Primer takega gradnika je Parketni diagram, ki diskretizira številske spremenljivke v štiri intervale in prikazuje, kako verjetno je, da bomo naleteli na določeno kombinacijo dveh značilnosti. Za šolanje in življenjsko dobo se izkaže, da so najverjetnejše kombinacije tiste, kjer sta obe značilnosti nizki ali obe visoki. V naboru podatkov HDI obstajajo še druge zanimive kombinacije, in vabimo vas, da jih poiščete s funkcijo Score Combination. Lahko pa primerjate Parketni diagram z Mozaičnim diagramom, nekoliko bolj sofisticiranim gradnikom, kjer lahko preučujete skupne porazdelitve več kot dveh značilnosti.

p-vrednost je mera statistične značilnosti. Izraža kako verjetno je, da dobite tako zanimiv rezultat, če bi bila ničta hipoteza pravilna. Z drugimi besedami, če menimo, da razlike med dvema kategorijama ne bi smelo biti, pa jo vseeno opazimo, kakšna je verjetnost, da je do razlike prišlo po naključju. Nižja p-vrednost pomeni večjo verjetnost, da je razlika pomembna.

Score Combinations je pripomoček, ki razvrsti kombinacije spremenljivk glede na to, kako zanimive so.

Chapter 5: Oblikovanje podatkov

Naša prejšnja podatkovna zbirka je prišla z Orangeovega strežnika za podatke, do katerih smo dostopali z uporabo gradnika Datasets. Ko smo podatke (recimo tiste o državah in njihovih socioekonomskih kazalnikih) naložili, smo jih lahko začeli pregledovati v gradniku Data Table.

Kaj pa, če želimo uporabiti svoje podatke? Izkaže se, da Orange lahko bere tabelarične podatke iz različnih virov, vključno z Excelovimi datotekami. Začnimo torej z gradnjo ene takšne podatkovne zbirke. Naša preglednica bo vsebovala nekaj podatkov o študentih, vključno s stolpcem imen: Jill, Ana, John, Stacey, Mike in Fred. Prav tako bo vsebovala stolpec s starostjo, spolom in barvo oči ter stolpec s časi teka na 100 m. Na ta način smo ustvarili preglednico, napolnjeno s podatki o lastnostih vsakega študenta.

Namesto dodajanja gradnika File lahko Excelovo datoteko preprosto povlečete na platno.

Podatki v zgornji tabeli so zgolj primer, kako pripraviti tabelarično podatkovno zbirko za katerikoli postopek strojnega učenja. Datoteko bomo poimenovali fitness.xlsx in jo shranili na namizje. Nato odpremo Orange in na platno postavimo gradnik File. Tako kot pri drugih gradnikih, smo tudi tega našli v seznamu, ki se obpre, ko na platno kliknemo z desnim klikom. Orange že vsebuje nekaj prednaloženih zbirk podatkov, do katerih lahko dostopamo z gradnikom File, vendar nas zdaj zanima naš "fitnes" nabor podatkov. V gradniku kliknemo na gumb z mapo in tremi pikami in poiščemo našo Excelovo datoteko. Gradnik File prikaže stolpce podatkov in imena lastnosti.

Orange omogoča tudi analizo besedil s pomočjo dodatka za rudarjenje besedil, vendar tega preskočimo.

Pozor, Orange zazna tudi vrste spremenljivk. Starost je, na primer, numerična spremenljivka, saj shranjuje številske vrednosti, medtem ko je barva oči kategorična. Študente opisujejo tako kategorične kot numerične spremenljivke, oboje pa lahko uporabimo, na primer, za izračun razdalj. Po drugi strani pa z imeni, ki so shranjena kot besedilne meta-spremenljivke, ne moremo računati. Meta-podatki zagotavljajo dodatne informacije o podatkovnih primerih, na primer, za njihovo identifikacijo v grafih, vendar jih Orange ne uporablja pri modeliranju.

Sedaj pa se vrnimo k naši podatkovni zbirki. Prva stvar, ki jo moramo narediti, ko smo naložili podatke, je, da jih pregledamo v preglednici. Odprimo jih v Data Table. Tukaj so naši podatki, kot smo jih pripravili v Excelu. Recimo, da v nadaljevanju ne bomo potrebovali podatkov o barvi oči. V tem primeru uporabimo gradnik Select Columns in premaknemo spremenljivko "barva oči" s seznama spremenljivk v polje Ignored. Ko podatke preverimo v novem gradniku Data Table, res ne najdemo več podatka o barvi oči.

Gradnik Select Columns je odličen pripomoček za ročno urejanje podatkov ter za dodajanje in odstranjevanje lastnosti. Ta gradnik bomo uporabljali tudi v prihodnjih videoposnetkih. Nadaljujmo s shranjevanjem urejenih podatkov.

To lahko enostavno naredimo z gradnikom Save Data: kliknemo Save As, izberemo, da shranimo podatke v Excelovo datoteko, in datoteko preimenujemo v fitness-no-eyes, kolikor nenavadno se sliši. To datoteko lahko začasno shranimo na namizje. Datoteko si lahko ogledamo tako, da jo z dvojnim klikom odpremo v Excelu.

Orange poleg imen spremenljivk shranjuje tudi podatke o vrstah spremenljivk, ki jih zapiše v drugo in tretjo vrstico datoteke. Shranjevanje teh dodatnih informacij lahko v gradniku Save Data omogočimo ali onemogočimo.

Zdaj vemo, kako pripraviti lastne podatke za analizo v Orangeu in kako podatke izvoziti iz programa. Vedno je dobra praksa, da si pred nadaljnjo analizo podatkov, ki smo jih pripravili sami, najprej ogledamo podatke v Data Table. V našem primeru smo uporabili Excel, vendar lahko v Orange naložimo tudi podatkovne zbirke, ločene s tabulatorji ali vejicami, ter podatkovne zbirke v številnih drugih formatih.

Chapter 6: Razdalje v 2D

Gručenje, torej iskanje skupin objektov, je eden izmed osnovnih postopkov, ki jih uporabljamo pri analizi podatkov. Na primer, odkrijemo lahko skupine ljudi glede na njihove profile uporabe storitev, nakupovalne košarice, vzorce vedenja, stike na družbenih omrežjih, uporabo zdravil ali obiske bolnišnic. Ali pa gručimo izdelke na podlagi tedenskih nakupov. Ali zdravnike glede na recepte, ki jih izdajajo.

Večina priljubljenih algoritmov za gručenje temelji na razmeroma preprostih postopkih, ki so lahko razumljivi. V tem poglavju bomo predstavili postopek, imenovan hierarhično gručenje. Začeli pa bomo s podatki in z merjenjem razdalj med njimi.

Kot primer bomo uporabili podatke o ocenah študentov. Do podatkov lahko dostopamo preko Orangeovega gradnika Datasets. Poiščemo jih tako, da v iskalno polje vpišemo "grades" (ocene). Te podatke lahko pregledujemo v gradniku Data Table. Šestnajst študentov je bilo ocenjenih pri sedmih različnih predmetih, med katerimi so angleščina, francoščina in zgodovina.

Radi bi našli študente s podobnimi ocenami. Na primer, učitelje bi lahko zanimalo, ali so študenti nadarjeni na različnih področjih, da lahko ustrezno prilagodijo njihovo obremenitev. V ta namen bi sicer morali upoštevati vse ocene, a bomo to uvodno predstavitev poenostavili in upoštevali le ocene iz angleščine in matematike (Algebra), s čimer bomo ustvarili dvodimenzionalni nabor podatkov.

Za izbiro nabora spremenljivk iz podatkov uporabimo gradnik Select Columns. Tokrat bomo ignorirali vse spremenljivke, razen angleščine in matematike. To naredimo tako, da najprej izberemo vse spremenljivke, jih premaknemo v stolpec Ignored, nato pa angleščino in matematiko povlečemo nazaj v stolpec Features. Rezultate je vedno dobro preveriti v gradniku Data Table.

Tokrat smo angleščino in matematiko izbrali naključno. Vse korake iz tega poglavja lahko ponovite in preizkusite z drugačnim parom spremenljivk.

Ker imamo podatke z le dvema številskima spremenljivkama, jih je najbolje pregledati v gradniku Scatter Plot. Točkam, ki predstavljajo študente, lahko dodamo oznake z njihovimi imeni.

Če bi imeli vedno opravka le z dvodimenzionalnimi podatki, bi lahko za vsako analizo uporabili zgolj razsevni diagram.

Opazimo lahko, da se Olga z visoko oceno iz matematike nahaja v zgornjem levem kotu diagrama, medtem ko je Maya v nasprotnem kotu grafa. Med njima je velika razdalja in gotovo ne sodita v isto skupino. Po drugi strani pa imajo George, Phil in Lea podobne ocene pri obeh predmetih, prav tako pa Jena, Cynthia in Fred. Razdalje med temi tremi študenti so majhne in na razsevnem diagramu pa ležijo blizu drug drugega.

Seveda obstaja formalna metoda za merjenje razdalj. V resničnem svetu bi preprosto uporabili ravnilo in, na primer, izmerili razdaljo med Katherine in Jeno s pomočjo dolžine črte, ki ju povezuje. Ker pa je Orange računalniški program, mu moramo povedati, kako naj te razdalje izračuna. Katherine ima, recimo, oceno iz angleščine 20, Jena pa 39. Razlika med njunima ocenama je torej 19. Po drugi strani je Katherine pri matematiki dobila oceno 71, Jena pa 99. Razlika pri njunih ocenah iz matematike je 28. Po Pitagorovem izreku je razdalja med Katherine in Jeno kvadratni koren iz vsote kvadratov 19 in 28, kar znaša približno 33,8.

Na enak način bi lahko izračunali razdalje med vsakim parom študentom. Vendar tega ni treba delati ročno, saj Orange to lahko izračuna sam.

V ta namen bomo uporabili gradnik Distances in zaenkrat onemogočili normalizacijo. Ocene iz angleščine in matematike v našem primeru izražene v istih enotah, zato normalizacija ni potrebna. Matriko razdalj bomo nastavili na evklidsko razdaljo, kar je točno razdalja, kot smo jo definirali za Katherine in Jeno.

Opozorilo: možnost normalizacije v gradniku Distances bi morala biti vedno omogočena. V tem primeru smo jo izklopili samo za primerjavo izračunanih razdalj s tistimi, ki smo jih izračunali ročno. Običajno so spremenljivke izražene v različnih merilih. Da bi jih lahko uporabili za izračun evklidskih razdalj, jih je treba najprej normalizirati, torej poenotiti njihov razpon.

V Distance Matrix si lahko ogledamo razdalje med študenti ter stolpce in vrstice označimo z njihovimi imeni. Razdalja med Katherine in Jeno je res 33,8, kot smo izračunali prej.

Sedaj vemo, kako izračunati razdalje v dvo-dimenzionalnem prostoru. Ideja gručenja je odkriti skupine podatkovnih točk, v našem primeru študentov, katerih medsebojna razdalja je majhna. Za naše podatke se zdi, da so Jena, Cynthia in Fred dobra kandidatna skupina. Prav tako tudi Phil, Lea in George. Morda tudi Henry in Ana. Vendar iščemo postopek, ki bi v skupine razvrstil naš celoten nabor študentov. Koliko je gruč in kateri algoritem za gručenje uporabiti?

Chapter 7: Razdalje med gručami

Za gručenje smo pravkar odkrili, da moramo najprej definirati razdaljo med primeri podatkov. Sedaj si poglejmo preprost algoritem za gručenje in razmislimo, kaj še potrebujemo.

V prejšnjem poglavju, ko smo spoznavali razdalje, smo delali s podatkovnim nizom ocen, ki smo ga zmanjšali na dve dimenziji. Pridobili smo ga z gradnikom Datasets in nato uporabili gradnik Select Columns, da smo ustvarili nabor podatkov, ki vsebuje le ocene iz angleščine in algebre.

Algoritem hierarhičnega gručenja začne tako, da vsak podatkovni primer – torej vsakega našega študenta – obravnava kot ločeno gručo. Nato v vsaki ponovitvi združi dve najbližji gruči. V naših podatkih sta si najbližja Demi in Nash, zato ju združimo v eno gručo. Lea in George sta si prav tako blizu, zato v naslednjem koraku združimo njiju. Phil je blizu gruče, ki jo sestavljata Lea in George, zato ga pridružimo gruči Lea-George. Nadaljujemo z Billom in Ianom, sledita Cynthia in Fred. Jeno dodamo h gruči Cynthia-Fred, Katherine h gruči Demi-Nash ter Mayo h gruči Phil-Lea-George. Na koncu se Henry združi z Ano, Eve pa z gručo Phil-Lea-George-Maya. In sedaj, če pogledamo na hitro – in morda se motimo – združimo gručo Bill-Ian z gručo Jena-Fred-Cynthia.

Za dvodimenzionalne podatke smo lahko hierarhično gručenje izvedli ročno, pri čemer smo v vsaki iteraciji s krožnico označili dve gruči, ki ju združujemo.

Enojno povezovanje.

A počakajmo za trenutek! Kako vemo, katere gruče so si med seboj blizu? Ali smo dejansko izmerili razdalje med njimi? Doslej smo le intuitivno ugibali. Morali bi biti bolj natančni.

Kako, na primer, vemo, da bi se morala gruča Bill-Ian združiti z gručo Jena-Cynthia-Fred ter z gručo George-Phil-Lea in ostalimi? Definirati je treba izračun razdalje med gručami. Imejmo v mislih, da delamo z razdaljami med posameznimi podatkovnimi primeri, torej med posameznimi študenti.

Popolno povezovanje.

Kako dejansko ugotovimo, kakšne so razdalje med gručami? Za merjenje razdalj med gručami obstaja več načinov. V najpreprostejšem primeru lahko razdaljo med gručama definiramo kot razdaljo med njunima najbližjima podatkovnima primeroma. To razdaljo imenujemo enojno povezovanje. Najbližje sta si Cynthia in Bill. Če uporabimo enojno povezovanje, ta razdalja določi razdaljo med dvema gručama.

Lahko pa vzamemo tudi dva podatkovna primerka, ki sta med seboj najbolj oddaljena, in za definiranje razdalje gruče uporabimo njuno razdaljo. To imenujemo popolno povezovanje; če ga uporabimo, razdaljo med gručama tako predstavljata Jena in Ian.

V tretji različici bi upoštevali vse medsebojne razdalje, recimo med Ianom in Cynthio, Ianom in Fredom, Billom in Cynthio, Billom in Jeno ter Billom in Fredom, in iz njih izračunali povprečno razdaljo. To se, kako nepričakovano, imenuje povprečno povezovanje.

Povprečno povezovanje.

Sedaj smo definirali drugi sestavni element, ki ga, poleg merjenja razdalj med podatkovnimi primeri, potrebujemo za hierarhično gručenje, poleg merjenja razdalj med podatkovnimi primeri. Ta element je način izračuna razdalje med gručami. Prej, ko smo začeli gruče združevati ročno, smo se zanašali na občutek bližine, ki je verjetno nekaj podobnega povprečnemu povezovanju. Nadaljujmo torej še nekaj časa na ta način.

Združili bomo gruči Henry-Ana in Demi-Nash-Katherine, morda pa bomo združili tudi Olgo z gručo na desni. Nato bomo zgornjo gručo združili s tisto v spodnjem desnem kotu – čeprav tukaj nismo povsem prepričani, katera rešitev je najboljša. Potrebovali bi nekaj, kot je Orange, da izračuna razdalje med gručami. Na koncu združimo še preostali dve gruči.

Tu se združevanje ustavi. Ničesar več ne moremo združiti. Algoritem hierarhičnega gručenja se ustavi, ko je vse združeno v eno samo gručo. Na sliki spodaj je rezultat hierarhičnega gručenja na mojem dvodimenzionalnem podatkovnem nizu ocen študentov.

Naša predstavitev gručenja je, v najboljšem primeru, nekoliko neurejena, a nekako vseeno pokaže strukturo gručenja. Gotovo obstaja boljša, urejena in pregledna predstavitev rezultatov gručenja. In še vedno moramo najti način, kako odločiti število gruč.

Chapter 8: Dendrogrami

Doslej smo podatke v primeru hierarhičnega gručenja zmanjšali na dve dimenziji, pri čemer smo kot izhodni lastnosti izbrali angleščino in matematiko. Ugotovili smo, da lahko za merjenje bližine dveh podatkovnih primerkov uporabimo Evklidsko razdaljo. Nato smo opazili, da se hierarhično gručenje začne tako, da vsak podatkovni primer obravnava kot svojo gručo, nato pa postopoma združuje najbližje gruče. Za to smo morali definirati način merjenja razdalj med gručami. Intuitivno smo uporabili povprečno povezovanje, kjer je razdalja med dvema gručama povprečna razdalja med vsemi njunimi elementi.

V prejšnjem poglavju smo simulirali gručenje na razsevnem diagramu, a končna vizualizacija ni bila ravno pregledna. Potrebujemo torej boljši način predstavitve rezultatov hierarhičnega gručenja. Ponovno začnimo s podatkovnim nizom, izberimo spremenljivke in jih prikažimo v razsevnem diagramu.

Poglejmo si ponovno razsevni diagram angleščina-matematika. Ko združimo dve gruči, si lahko zapomnimo razdaljo med njima in ju prikažemo v grafu. Recimo, da združimo Georgea in Leo, pri čemer je njuna razdalja približno 5. Nato pri razdalji 6 dodamo Phila v gručo George-Lea, Billa in Iana pa pri razdalji 7. Kasneje pri razdalji 15 v gručo Phil-Lea-George dodamo Mayo. To združevanje gruč lahko prikažemo v grafu, ki ga ročno narišemo, kot je prikazano spodaj.

Graf združevanja gruč, ki ga prikazujemo tukaj, imenujemo dendrogram. Dendrogram vizualizira strukturo hierarhičnega gručenja. Linije v dendrogramu se nikoli ne križajo, saj se gručenje začne z gručami, ki so si blizu, razdalje med njimi pa se pri iterativnem združevanju postopoma večajo.

Za izvedbo hierarhičnega gručenja v Orangeu moramo najprej izračunati razdalje. To smo že storili v prejšnjem poglavju, kjer smo uporabili gradnik Razdalje. Uporabili bomo Evklidsko razdaljo in za ta podatkovni niz ne bomo normalizirali podatkov. Nato te razdalje pošljemo v gradnik Hierarhično gručenje in zgradimo dendrogram.

Še vedno delamo s podatkovnim nizom v dveh dimenzijah, zato uporabljamo gradnik Select Columns, da izberemo samo ocene iz angleščine in matematike (Algerba).

Iz prejšnje razprave o razdaljah se morda spomnimo, da bi morali biti Lea, George in Phil blizu, Maya in Eve pa se pridružita tej gruči kasneje. Podobno je razdalja med Billom in Ianom majhna, a sta daleč od gruče George-Lea-Phil in ostalih. Vse te odnose lahko opazimo v zgornjem dendrogramu in iz njega razberemo celotno strukturo gručenja.

Zdaj lahko dendrogram presekamo, da izpostavimo gruče. Tukaj ga odrežemo tako, da dobimo tri gruče. Kje pa se te nahajajo na razsevnem diagramu? Gradnik Hierarchical Clustering oddaja signal Selected Data. Ker smo z rezanjem dendrograma izbrali vse podatkovne primerke, bi moralo biti vključeno tudi označevanje gruč.

S tem delotokom lahko eksperimentiramo s številom gruč, in sicer tako, da prestavljamo črto prereza na različne položaje. Vidimo primer štirih gruč, kjer sta Bill in Ian v ločeni gruči. To ni presenetljivo, saj sta edina, ki dosegata dobre rezultate tako pri angleščini kot pri algebri.

Koliko gruč je v naših podatkih? No, to je težko določiti. Dendrogram prikaže strukturo gručenja, odločitev o številu gruč pa je pogosto prepuščena domenskim strokovnjakom, v tem primeru učiteljem. V vsakem primeru je najbolje izbrati rez za gručenje tako, da se število gruč ne bi spremenilo ob majhnih spremembah v podatkih. Vendar pa smo doslej gručenje izvajali na dvodimenzionalnih podatkih. Zdaj se moramo premakniti v višje dimenzije.

Chapter 9: Gručenje v več dimenzijah

Doslej smo hierarhično gručenje izvajali v dveh dimenzijah. Uporabili smo podatkovni niz z ocenami predmetov, izbrali le oceni iz angleščine in matematike ter jih prikazali na razsevnem diagramu. Tam smo razvili pojma razdalje med primeri in razdalje med gručami. Če osvežimo spomin: za merjenje razdalje med dvema študentoma smo sešteli kvadrate razlik njunih ocen iz angleščine in matematike. Temu smo rekli evklidska razdalja in ugotovili, da izhaja iz Pitagorovega izreka.

Mimogrede: uporaba evklidske razdalje pri podatkih z velikim številom dimenzij naleti na problem, znan kot prekletstvo dimenzionalnosti, kjer so vsi podatki na videz enako oddaljeni. Za zdaj bomo to težavo preskočili in predpostavili, da je evklidska razdalja povsem primerna za vse vrste podatkov.

Kaj pa se zgodi, če dodamo še en predmet, recimo zgodovino? Podatki bi bili nato tridimenzionalni. Evklidsko razdaljo bi razširili tako, da bi dodali še kvadratno razliko ocen iz zgodovine. Če bi dodali še biologijo, bi v formulo vključili še kvadrat razlik ocen iz biologije. Na ta način lahko evklidsko razdaljo uporabimo tudi v prostoru s poljubnim številom dimenzij.

Kaj pa razdalje med gručami, se pravi povezave (linkage)? Te ostanejo enake, kot smo jih definirali za dvodimenzionalni primer, saj so odvisne le od razdalj med posameznimi podatkovnimi primerki – in zdaj vemo, kako jih izračunati.

Opremljeni s tem novim znanjem – torej, da lahko evklidsko razdaljo uporabljamo v poljubni dimenzionalnosti in da lahko uporabimo že predstavljene povezave med gručami – se lahko lotimo gručenja celotnega podatkovnega niza. Naložimo ocene v gradnik Datasets, izračunamo razdalje med vsemi pari podatkovnih primerkov in izvedemo hierarhično gručenje. Pomembno: ponovno lahko uporabimo evklidsko razdaljo, tokrat pa morda podatke tudi normaliziramo. Ne pozabimo: normalizacijo uporabimo, kadar imajo spremenljivke različne razpone in domene.

Če si zdaj ogledamo dendrogram, lahko opazimo, da podatki morda vsebujejo tri gruče.

Zdaj pa bi radi dobili občutek, kaj te gruče predstavljajo. Načeloma bi za to lahko uporabili razsevni diagram, vendar zdaj delamo s sedemdimezionalnimi podatki in pogled na le dve dimenziji hkrati nam ne bo povedal veliko. Kljub temu na hitro preverimo – na izhod Hierarhičnega gručenja dodamo razsevni diagram. Tukaj so podatki projicirani na ravnino matematika-angleščina:

Študenti s podobnimi ocenami pri teh dveh predmetih so res v isti gruči. Vendar pa vidimo, da sta Bill in Ian blizu skupaj, a kljub temu v različnih gručah. Zdi se, da bomo potrebovali drugo orodje za razlago gruč.

Namig: gradnik, ki ga bomo uporabili za razlago gruč, smo že uporabljali v poglavju o porazdelitvah podatkov. A preden se poglobimo v razlago gruč – kar je zelo pomembna tema – se najprej lotimo gručenja držav glede na podatke o indeksu človekovega razvoja, pri čemer bomo rezultate prikazali na zemljevidu.