Ați făcut cunoștință deja cu setul de date Iris laolaltă cu noțiuni introductive, ba chiar simpliste, despre explorarea datelor cu Excel. Dacă articolul precedent a avut sens pentru voi, atunci este momentul să mai faceți un pas în știința datelor folosind ELKI.
Ce înseamnă „grupările K-Means”?
Presupunând că dispunem de setul de date Iris fără cea de-a cincea coloană: speciile (species). Știm că datele sunt despre mai multe specii de Iris, dar nu știm care observație corespunde cărei specii, și nici măcar câte specii sunt.
Lungimea sepală | Lățimea sepală | Lungimea petală | Lățimea petală |
5.1 | 3.5 | 1.4 | 0.2 |
4.9 | 3 | 1.4 | 0.2 |
4.7 | 3.2 | 1.3 | 0.2 |
4.6 | 3.1 | 1.5 | 0.2 |
5 | 3.6 | 1.4 | 0.2 |
… | … | … | … |
7 | 3.2 | 4.7 | 1.4 |
6.4 | 3.2 | 4.5 | 1.5 |
6.9 | 3.1 | 4.9 | 1.5 |
5.5 | 2.3 | 4 | 1.3 |
6.5 | 2.8 | 4.6 | 1.5 |
5.7 | 2.8 | 4.5 | 1.3 |
… | … | … | … |
6.3 | 3.3 | 6 | 2.5 |
5.8 | 2.7 | 5.1 | 1.9 |
7.1 | 3 | 5.9 | 2.1 |
6.3 | 2.9 | 5.6 | 1.8 |
6.5 | 3 | 5.8 | 2.2 |
… | … | … | … |
De exemplu, pornind de la setul de date Iris să se genereze grupările de date (speciile) ca în imaginea de mai jos:
În acest caz, explorarea datelor necesită instrumente mai istețe, care să ne indice ușor cum se grupează observațiile între ele în funcție de niște parametrii cu care ne jucăm.
Confruntați cu asemenea provocări, cercetătorii folosesc algoritmi de gruparea automată a datelor. O metodă foarte populară care ne va servi și nouă în acest scop este k-means.
În ce constă metoda K-Means?
Pentru a aplica K-Means fișierului nostru Iris ar trebui să:
- Definim câte grupuri de observații credem că vom obține (de obicei încep cu două, apoi cu trei ș.a.m.d. până când obțin grupări care-mi convin așteptărilor). Noi știm deja că setul de date Iris are trei specii, deci, în cazul ideal, ar trebui să obținem trei grupuri, câte unul pentru fiecare specie. De dragul exemplului vom începe cu două grupuri. Deci, K = 2.
- Încărcăm datele din fișier. Modul în care datele sunt încărcate poate varia de la algoritm la algoritm. Nu este momentul să intru în detalii, dar modul în care încărcăm datele, algoritmul pe care-l alegem, poate aduce avantaje sau dezavantaje în funcție de context. De exemplu, dacă vorbim despre o încărcare aleatorie, atunci fiecare observație este atribuită la întâmplare unei grupe. Dacă avem două grupuri: grupul A și B, atunci fiecare rând (observație) va fi atribuit la întâmplare fie grupului A, fie grupului B. Această etapă este referită în documentația tehnică ca Inițializare.
- Să parcurgă observațiile din fiecare grup, să calculeze distanța dintre fiecare observație și centroizii* grupurilor stabilind astfel dacă observația trebuie mutată într-un alt grup sau nu. Această etapă se numește Asignare.
- Recalcularea centroizilor fiecărui grup înainte de-a o lua de la capăt cu asignarea. Această etapă se numește Actualizare.
Etapele 3 și 4 se desfășoară în iterații repetate până când nu mai există nicio asignare nouă.
Are sens ceea ce-am spus până acum? Foarte probabil că încă nu în totalitate. Nu-i nimic! Voi reveni la aceste aspecte cu detaliile de rigoare în viitoarele articole. Motivul pentru care le-am listat acum este dat de nevoia configurării acestor pași în instrumentul ELKI din exemplul de mai jos.
Rularea analizei K-Means cu ELKI
Scopul următorului exemplu nu este să înțelegeți ce face ELKI, ci să-i vedeți rezultatul. Deci, mai puțin contează cu ELKI implementează K-Means. Va veni momentul să implementați de la zero un astfel de algoritm într-un alt articol.
Dacă ați instalat cu succes ELKI, deschideți aplicația și asigurați-vă că ați configurat parametrii din cele două chenare roșii:
- dbc.in – calea către fișierul iris.csv (pe calculatorul vostru)
- algorthm – clustering.kmeans.KMeansHamerly (o implementare KMeans pentru pașii 3 și 4)
- kmeans.k – numărul de grupuri (etapa 1)
Dacă parametrii de mai sus sunt introduși corect, atunci restul parametrilor cheie vor fi completați cu valori implicite:
- kmeans.initialization – RandomlyGeneratedInitialMeans (asignarea la întâmplare a observațiilor la grupurile create – etapa de inițializare despre care am vorbit mai sus, la pasul 2)
- …
Apăsați butonul „Run Task” pentru executarea analizei:
Lungimea petalei și a sepalei
Dacă ar fi să revenim la Excelul din articolul precedent, putem obține ușor cam aceleași grafice (asta dacă experiența în Excel nu este o provocare):
Însă ELKI ne-a creat aceste grafice permițându-ne să ne concentrăm pe explorarea lor. Mai jos, găsiți aproximativ același grafic despre lungimea petalei și a sepalei obținut cu ELKI (doar că în cazul nostru K=2):
Lungimea petalei și a sepalei când (K=3)
De ce ELKI pentru grupările K-Means?
Explorarea datelor este consumatoare de energie. Dacă există un instrument care poate crea aceste combinații de grafice fără să scrie cod sau să facem prea multe click-uri în Excel, acest instrument devine indispensabil. Asta face ELKI, dar este doar unul dintre instrumentele de acest gen. Cel puțin pentru setul de date Iris, ELKI generează combinațiile de grafice de care am nevoie:
- 2D – lungimea petalei cu lungimea sepală
- 2D – lungimea petalei cu lățimea sepală
- 2D – lățimea petalei cu lungimea sepală
- 2D – lățimea petalei cu lățimea sepală
- 2D – lățimea petalei cu lungimea petalei
- 2D – lățimea sepală cu lungimea sepală
- 3D – lățimea sepală cu lungimea petală și lungimea sepală
Iar opțiunile de vizualizare ca „Cluster Hull” pot înlesni explorarea, colorând grupurile de observații și scoțând în evidență centroidul fiecărui grup:
Astfel, printr-o privire de ansamblu putem deja deduce că singura dimensiune în care grupurile nu se întrepătrund este lungimea petală, concluzie la care am ajuns și în primul articol (după un pic mai mult efort).
Selecția paralelă
O altă reprezentare care se poate dovedi utilă este „parallelplot selection” care afișează observațiile în toate dimensiunile lor scoțând în evidență ariile cu o densitate mai mare (grafic pe care nu l-am putut genera în Excel,de exemplu).
Concluzie
Setul de date Iris este folosit în multe materiale cu scop didactic. Categoria mea preferată de exerciții cu Iris este gruparea datelor (clustering). Dar înainte să scriem cod c# despre asta sau să folosim servicii predictive în cloud ca AzureML, mi s-a părut benefic un articol intermediar despre ELKI.
Deci, de ce să folosești ELKI (sau un echivalent)?
- Putem grupa observațiile folosind ELKI și metoda K-Means fără să înțelegem subtilitățile algoritmului.
- Folosirea unui instrument ca ELKI poate accelera explorarea datelor generându-se combinații de grafice pe care nu le obținem ușor (sau nu le obținem) cu Excel sau scriind cod.
*centroid = suma măsurătorilor ansamblului de observații dintr-un grup împărțită la numărul de observații.
Dacă doriți să aflați mai multe despre mine, Cornel Fătulescu, sau proiectele în care sunt implicat, vă invit să mă descoperiți și ca Chief Platform Officer la Pentalog, să mă urmăriți pe Facebook, ca investitor la wanttolearn, să citiți unul dintre primele articole despre mine și să mă contactați urmând ghidul de pe pagina de contact.Acest articol a fost citit de 1024 ori