O sarcină care implică învățarea automată poate să nu fie liniară, dar are un număr de etape bine cunoscute:

  • Definirea problemei.
  • Pregătirea datelor.
  • Învățarea unui model de bază.
  • Îmbunătățiți modelul subiacent prin evaluări cantitative și calitative.
  • Prezentați modelul.

O modalitate bună de a se împăca cu o nouă problemă este de a lucra prin identificarea și definirea problemei în cel mai bun mod posibil și de a învăța un model care să capteze informații semnificative din date. În timp ce problemele de recunoaștere a modelelor și de învățare automată pot fi de diferite tipuri, ele pot fi clasificate în linii mari în trei categorii:

  • Învățare supervizată:
    Sistemului i se prezintă exemple de intrări și ieșirile dorite ale acestora, date de un „profesor”, iar scopul este de a învăța o regulă generală care corelează intrările cu ieșirile.
  • Învățare nesupravegheată:
    Nu se dau etichete algoritmului de învățare, lăsându-l pe acesta să găsească singur structura în datele de intrare. Învățarea nesupravegheată poate fi un scop în sine (descoperirea modelelor ascunse în date) sau un mijloc pentru atingerea unui scop (învățarea caracteristicilor).
  • Învățarea prin întărire:
    Un sistem interacționează cu un mediu dinamic în care trebuie să îndeplinească un anumit obiectiv (cum ar fi conducerea unui vehicul sau un joc împotriva unui adversar). Sistemul primește feedback în termeni de recompense și pedepse pe măsură ce navighează în spațiul său de probleme.

Între învățarea supravegheată și cea nesupravegheată se află învățarea semisupravegheată, în care profesorul oferă un semnal de instruire incomplet: un set de instruire în care lipsesc unele (adesea multe) dintre ieșirile țintă. Ne vom concentra pe învățarea nesupravegheată și pe gruparea datelor în această postare pe blog.

Învățare nesupravegheată

În unele probleme de recunoaștere a tiparelor, datele de instruire constau dintr-un set de vectori de intrare x fără valori țintă corespunzătoare. Scopul în astfel de probleme de învățare nesupravegheată poate fi acela de a descoperi grupuri de exemple similare în cadrul datelor, unde se numește clusterizare, sau de a determina modul în care datele sunt distribuite în spațiu, cunoscut sub numele de estimare a densității. Pentru a prezenta în termeni mai simpli, pentru un spațiu cu n eșantioane de la x1 la xn, etichetele de clasă adevărate nu sunt furnizate pentru fiecare eșantion, de aceea este cunoscută sub numele de învățare fără profesor.

Probleme cu învățarea nesupravegheată:

  • Învățarea nesupravegheată este mai dificilă în comparație cu sarcinile de învățare supravegheată…
  • Cum știm dacă rezultatele sunt semnificative din moment ce nu sunt disponibile etichete de răspuns?
  • Lăsăm expertul să se uite la rezultate (evaluare externă)
  • Definiți o funcție obiectivă privind gruparea (evaluare internă)

De ce este necesară învățarea nesupravegheată în ciuda acestor probleme?

  • Annotarea seturilor mari de date este foarte costisitoare și, prin urmare, putem eticheta manual doar câteva exemple. Exemplu: Recunoașterea vorbirii
  • Există cazuri în care nu știm în câte/în ce clase sunt împărțite datele. Exemplu: Data Mining
  • S-ar putea să dorim să folosim gruparea pentru a obține o idee despre structura datelor înainte de a proiecta un clasificator.

Învățarea nesupravegheată poate fi clasificată în continuare în două categorii:

  • Învățarea nesupravegheată parametrică
    În acest caz, presupunem o distribuție parametrică a datelor. Se presupune că datele din eșantion provin dintr-o populație care urmează o distribuție de probabilitate bazată pe un set fix de parametri. Teoretic, într-o familie normală de distribuții, toți membrii au aceeași formă și sunt parametrizate prin medie și abatere standard. Aceasta înseamnă că, dacă cunoașteți media și abaterea standard și că distribuția este normală, cunoașteți probabilitatea oricărei observații viitoare. Învățarea parametrică nesupravegheată implică construirea de modele de amestecuri gaussiene și utilizarea algoritmului de maximizare a așteptărilor pentru a prezice clasa eșantionului în cauză. Acest caz este mult mai dificil decât învățarea supravegheată standard, deoarece nu există etichete de răspuns disponibile și, prin urmare, nu există o măsură corectă a acurateței disponibilă pentru a verifica rezultatul.
  • Învățarea neparametrică nesupravegheată
    În versiunea neparametrizată a învățării nesupravegheate, datele sunt grupate în clustere, unde fiecare cluster(sperăm) spune ceva despre categoriile și clasele prezente în date. Această metodă este utilizată în mod obișnuit pentru a modela și analiza date cu eșantioane de dimensiuni mici. Spre deosebire de modelele parametrice, modelele neparametrice nu necesită ca modelatorul să facă nici o presupunere despre distribuția populației, astfel încât sunt uneori denumite metode fără distribuție.

Ce este Clustering?

Clustering poate fi considerată cea mai importantă problemă de învățare nesupravegheată; astfel, ca orice altă problemă de acest tip, se ocupă cu găsirea unei structuri într-o colecție de date neetichetate. O definiție liberă a clustering-ului ar putea fi „procesul de organizare a obiectelor în grupuri ai căror membri sunt similari într-un anumit fel”. Un cluster este, prin urmare, o colecție de obiecte care sunt „similare” între ele și care sunt „disimilare” față de obiectele aparținând altor clustere.

Gruparea bazată pe distanțe.

Dat fiind un set de puncte, cu o noțiune de distanță între puncte, gruparea punctelor într-un anumit număr de clustere, astfel încât

  • distanțele interne (în cadrul clusterelor) să fie mici i.e membrii clusterelor sunt apropiați/similari între ei.
  • Distanțele externe (în interiorul clusterelor) ar trebui să fie mari, adică membrii unor clustere diferite sunt diferiți.

Obiectivele grupării

Obiectivul grupării este de a determina gruparea internă într-un set de date neetichetate. Dar cum să decidem ce constituie o bună grupare? Se poate demonstra că nu există un criteriu absolut „cel mai bun” care să fie independent de scopul final al clusterizării. În consecință, utilizatorul este cel care ar trebui să furnizeze acest criteriu, în așa fel încât rezultatul clusterizării să corespundă nevoilor sale.

În imaginea de mai sus, cum putem ști care este cea mai bună soluție de clusterizare?

Pentru a găsi o anumită soluție de clusterizare , trebuie să definim măsurile de similaritate pentru clustere.

Măsuri de proximitate

Pentru clusterizare, trebuie să definim o măsură de proximitate pentru două puncte de date. Proximitatea înseamnă aici cât de asemănătoare/disimilare sunt eșantioanele unul față de celălalt.

  • Măsura de similitudine S(xi,xk): mare dacă xi,xk sunt similare
  • Măsura de disimilaritate (sau distanță) D(xi,xk): mică dacă xi,xk sunt similare

Există diferite măsuri de similaritate care pot fi utilizate.

  • Vectori: Cosine Distance

  • Seturi: Jaccard Distance

  • Points: Distanța euclidiană
    q=2

O măsură de proximitate „bună” depinde foarte mult de aplicație. Clusterele ar trebui să fie invariante sub transformările „naturale” pentru problemă. De asemenea, în timpul clusterizării nu se recomandă normalizarea datelor care sunt extrase din distribuții multiple.

Algoritmi de clustere

Agoritmii de clustere pot fi clasificați după cum urmează:

  • Exclusive Clustering
  • Overlapping Clustering
  • Hierarchical Clustering
  • Probabilistic Clustering

În primul caz, datele sunt grupate într-un mod exclusiv, astfel încât dacă un anumit punct de date aparține unui cluster definit, atunci el nu ar putea fi inclus într-un alt cluster. Un exemplu simplu în acest sens este prezentat în figura de mai jos, unde separarea punctelor se realizează printr-o linie dreaptă pe un plan bidimensional.

În schimb, cel de-al doilea tip, gruparea prin suprapunere, utilizează seturi fuzzy pentru a grupa datele, astfel încât fiecare punct poate aparține la două sau mai multe grupuri cu grade diferite de apartenență. În acest caz, datele vor fi asociate unei valori de apartenență corespunzătoare.

Un algoritm de clusterizare ierarhică se bazează pe uniunea dintre cele mai apropiate două clustere. Condiția de început se realizează prin stabilirea fiecărui punct de date ca fiind un cluster. După câteva iterații se ajunge la clusterele finale dorite.

În cele din urmă, ultimul tip de clusterizare utilizează o abordare complet probabilistică.

În acest blog vom vorbi despre patru dintre cei mai utilizați algoritmi de clusterizare:

  • K-means
  • Fuzzy K-means
  • Hierarchical clustering
  • Mixture of Gaussians

Care dintre acești algoritmi aparține unuia dintre tipurile de clusterizare enumerate mai sus. În timp ce, K-means este un algoritm de clustering exclusiv, Fuzzy K-means este un algoritm de clustering prin suprapunere, Hierarchical clustering este evident și, în cele din urmă, Mixture of Gaussians este un algoritm de clustering probabilistic. Vom discuta despre fiecare metodă de clusterizare în următoarele paragrafe.

K-Means Clustering

K-means este unul dintre cei mai simpli algoritmi de învățare nesupravegheată care rezolvă binecunoscuta problemă de clusterizare. Procedura urmărește o modalitate simplă și facilă de clasificare a unui set de date dat printr-un anumit număr de clustere (presupunem k clustere) stabilit a priori. Ideea principală este de a defini k centre, câte unul pentru fiecare cluster. Aceste centroide ar trebui să fie plasate într-un mod inteligent, deoarece o locație diferită determină rezultate diferite. Așadar, cea mai bună alegere este să le plasăm cât mai departe unul de celălalt. Următorul pas este de a lua fiecare punct aparținând unui anumit set de date și de a-l asocia celui mai apropiat centroid. Atunci când niciun punct nu este în așteptare, prima etapă este finalizată și se face o grupare timpurie. În acest moment trebuie să recalculăm k noi centroizi ca baricentri ai clusterelor rezultate în urma pasului anterior. După ce dispunem de aceste k noi centroizi, trebuie să se facă o nouă legare între aceleași puncte din setul de date și cel mai apropiat nou centroid. A fost generată o buclă. Ca rezultat al acestei bucle, putem observa că cei k centroizi își schimbă locația pas cu pas până când nu se mai fac modificări. Cu alte cuvinte, centroizii nu se mai deplasează.

În cele din urmă, acest algoritm are ca scop minimizarea unei funcții obiectiv, în acest caz o funcție de eroare pătratică. Funcția obiectiv

unde

este o măsură de distanță aleasă între un punct de date xi și centrul clusterului cj, este un indicator al distanței dintre cele n puncte de date și centrele lor de cluster respective.

Agoritmul este compus din următoarele etape:

  • Să fie X = {x1,x2,x3,……..,xn} setul de puncte de date și V = {v1,v2,…….,vc} setul de centre.
  • Selectați aleatoriu ‘c’ centre de cluster.
  • Calculați distanța dintre fiecare punct de date și centrele de cluster.
  • Asemnați punctul de date la centrul de cluster a cărui distanță față de centrul de cluster este minimă dintre toate centrele de cluster.
  • Recalculați noul centru de cluster folosind:

unde, ‘ci’ reprezintă numărul de puncte de date din clusterul ith.

  • Recalculează distanța dintre fiecare punct de date și centrele noilor clustere obținute.
  • Dacă nici un punct de date nu a fost realocat, atunci se oprește, altfel se repetă de la pasul 3).

Deși se poate dovedi că procedura se va termina întotdeauna, algoritmul k-means nu găsește neapărat cea mai optimă configurație, corespunzătoare minimului funcției obiectiv globale. Algoritmul este, de asemenea, sensibil în mod semnificativ la centrele de cluster inițiale selectate aleatoriu. Algoritmul k-means poate fi rulat de mai multe ori pentru a reduce acest efect.

K-means este un algoritm simplu care a fost adaptat la multe domenii de probleme. După cum vom vedea, este un bun candidat pentru a fi extins pentru a lucra cu vectori de caracteristici fuzzy.

Procedura k-means poate fi privită ca un algoritm lacom pentru împărțirea celor n eșantioane în k clustere, astfel încât să se minimizeze suma distanțelor la pătrat față de centrele clusterelor. Are însă câteva puncte slabe:

  • Nu a fost specificat modul de inițializare a mediilor. Un mod popular de a începe este de a alege la întâmplare k dintre eșantioane.
  • Se poate întâmpla ca setul de eșantioane cel mai apropiat de mi să fie gol, astfel încât mi nu poate fi actualizat. Aceasta este o problemă care trebuie tratată în timpul implementării, dar este în general ignorată.
  • Rezultatele depind de valoarea lui k și nu există o modalitate optimă de a descrie cel mai bun „k”.

Această ultimă problemă este deosebit de supărătoare, deoarece adesea nu avem cum să știm câte clustere există. În exemplul prezentat mai sus, același algoritm aplicat acelorași date produce următoarea clasificare pe 3 medii. Este aceasta mai bună sau mai proastă decât gruparea în 2 medii?

Din păcate, nu există o soluție teoretică generală pentru a găsi numărul optim de clustere pentru orice set de date dat. O abordare simplă este de a compara rezultatele mai multor rulări cu diferite clase k și de a o alege pe cea mai bună în funcție de un anumit criteriu, dar trebuie să fim atenți, deoarece creșterea lui k duce la valori mai mici ale funcției de eroare prin definiție, dar crește și riscul de supraajustare.

Fuzzy K-Means Clustering

În fuzzy clustering, fiecare punct are o probabilitate de apartenență la fiecare cluster, mai degrabă decât să aparțină în totalitate unui singur cluster, așa cum este cazul în k-means tradițional. Fuzzy k-means încearcă în mod specific să abordeze problema în care punctele se află oarecum între centre sau sunt ambigue prin înlocuirea distanței cu probabilitatea, care, desigur, ar putea fi o funcție a distanței, cum ar fi o probabilitate în raport cu inversul distanței. Fuzzy k-means utilizează un centroid ponderat pe baza acestor probabilități. Procesele de inițializare, iterație și încheiere sunt aceleași cu cele utilizate în cazul k-means. Clusterele rezultate sunt analizate cel mai bine ca distribuții probabilistice, mai degrabă decât ca o atribuire strictă de etichete. Trebuie să ne dăm seama că k-means este un caz special de fuzzy k-means când funcția de probabilitate folosită este pur și simplu 1 dacă punctul de date este cel mai apropiat de un centroid și 0 în caz contrar.

Algoritmul fuzzy k-means este următorul:

  • Să presupunem un număr fix de clustere K.
  • Inițializare: Se inițializează aleatoriu k-means μk asociat cu clusterele și se calculează probabilitatea ca fiecare punct de date Xi să fie membru al unui anumit cluster K,
    P(PointXiHasLabelK|Xi,K).
  • Iterare: Se recalculează centroidul clusterului ca centroid ponderat, având în vedere probabilitățile de apartenență a tuturor punctelor de date Xi :

  • Încheiere: Iterați până la convergență sau până când se atinge un număr de iterații specificat de utilizator (iterația poate fi blocată la unele maxime sau minime locale)

Pentru o mai bună înțelegere, putem lua în considerare acest exemplu simplu mono-dimensional. Dat fiind un anumit set de date, să presupunem că îl reprezentăm ca fiind distribuit pe o axă. Figura de mai jos arată acest lucru:

Urmărind imaginea, putem identifica două clustere în apropierea celor două concentrări de date. Ne vom referi la ele folosind „A” și „B”. În prima abordare prezentată în acest tutorial – algoritmul k-means – am asociat fiecare punct de date cu un anumit centroid; prin urmare, această funcție de apartenență arăta astfel:

În abordarea Fuzzy k-means, în schimb, același punct de date dat nu aparține exclusiv unui cluster bine definit, ci poate fi plasat într-o cale de mijloc. În acest caz, funcția de apartenență urmează o linie mai netedă pentru a indica faptul că fiecare punct de date poate aparține mai multor clustere cu grade diferite de apartenență.

În figura de mai sus, punctul de date indicat ca punct marcat cu roșu aparține mai degrabă clusterului B decât clusterului A. Valoarea 0,2 a lui ‘m’ indică gradul de apartenență la A pentru un astfel de punct de date.

Algoritmi de clusterizare ierarhică

Dat fiind un set de N elemente care urmează să fie grupate și o matrice de distanțe (sau de similaritate) N*N, procesul de bază al clusterizării ierarhice este următorul:

  • Începeți prin a atribui fiecare element unui cluster, astfel încât, dacă aveți N elemente, aveți acum N clustere, fiecare conținând doar un singur element. Lăsați distanțele (asemănările) dintre clustere să fie aceleași cu distanțele (asemănările) dintre elementele pe care le conțin.
  • Căutați cea mai apropiată (cea mai asemănătoare) pereche de clustere și uniți-le într-un singur cluster, astfel încât acum aveți un cluster mai puțin.
  • Calculați distanțele (asemănările) dintre noul cluster și fiecare dintre vechile clustere.
  • Repetați pașii 2 și 3 până când toate elementele sunt grupate într-un singur cluster de dimensiune N.

Clustering as a Mixture of Gaussians

Există o altă modalitate de abordare a problemelor de clusterizare: o abordare bazată pe model, care constă în utilizarea anumitor modele pentru clustere și încercarea de a optimiza potrivirea dintre date și model.

În practică, fiecare cluster poate fi reprezentat matematic de o distribuție parametrică, cum ar fi o gaussiană. Prin urmare, întregul set de date este modelat printr-un amestec al acestor distribuții.
Un model de amestec cu probabilitate ridicată tinde să aibă următoarele trăsături:

  • distribuțiile componente au „vârfuri” ridicate (datele dintr-un cluster sunt strânse);
  • modelul de amestec „acoperă” bine datele (modelele dominante din date sunt captate de distribuțiile componente).

Principalele avantaje ale grupării bazate pe model:

  • sunt disponibile tehnici de inferență statistică bine studiate;
  • flexibilitate în alegerea distribuției componente;
  • obținerea unei estimări a densității pentru fiecare grup;
  • este disponibilă o clasificare „soft”.

Mixture of Gaussians
Cea mai utilizată metodă de clusterizare de acest tip se bazează pe învățarea unui amestec de Gaussians:

Un model de amestec este un amestec de k distribuții componente care, în mod colectiv, formează o distribuție de amestec f(x):

Anexa αk reprezintă contribuția celei de-a k-a componente în construirea lui f(x). În practică, distribuțiile parametrice (de exemplu, gaussienii), sunt adesea utilizate deoarece s-a lucrat mult pentru a înțelege comportamentul lor. Dacă înlocuiți fiecare fk(x) cu o gaussiană, obțineți ceea ce se numește modele de amestec gaussian (GMM).

Algoritmul EM

Expectația-Maximizarea presupune că datele dumneavoastră sunt compuse din mai multe distribuții normale multivariate (rețineți că aceasta este o ipoteză foarte puternică, în special atunci când fixați numărul de clustere!). Altfel spus, EM este un algoritm pentru maximizarea unei funcții de verosimilitate atunci când unele dintre variabilele din modelul dvs. sunt neobservate (adică atunci când aveți variabile latente).
Ați putea întreba în mod corect, dacă încercăm doar să maximizăm o funcție, de ce nu folosim pur și simplu mașinăria existentă pentru maximizarea unei funcții. Ei bine, dacă încercați să o maximizați luând derivate și punându-le la zero, descoperiți că, în multe cazuri, condițiile de ordinul întâi nu au o soluție. Există o problemă de tipul „oul și găina” în sensul că, pentru a rezolva parametrii modelului, trebuie să cunoașteți distribuția datelor neobservate; dar distribuția datelor neobservate este o funcție a parametrilor modelului.

Expectația-Maximizare încearcă să ocolească această problemă prin ghicirea iterativă a unei distribuții pentru datele neobservate, apoi estimarea parametrilor modelului prin maximizarea a ceva care este o limită inferioară a funcției de verosimilitate reale și repetarea până la convergență:

Algoritmul de așteptare-maximizare

  • Începeți cu o ghicire a valorilor parametrilor modelului
  • Pasul E: Pentru fiecare punct de date care are valori lipsă, utilizați ecuația modelului dumneavoastră pentru a rezolva distribuția datelor lipsă, având în vedere presupunerea actuală a parametrilor modelului și datele observate (rețineți că rezolvați o distribuție pentru fiecare valoare lipsă, nu pentru valoarea așteptată). Acum că avem o distribuție pentru fiecare valoare lipsă, putem calcula așteptarea funcției de verosimilitate în raport cu variabilele neobservate. Dacă presupunerea noastră pentru parametrii modelului a fost corectă, această verosimilitate așteptată va fi verosimilitatea reală a datelor noastre observate; dacă parametrii nu au fost corecți, va fi doar o limită inferioară.
  • M-step: Acum că avem o funcție de verosimilitate așteptată fără variabile neobservate în ea, maximizați funcția așa cum ați face-o în cazul complet observat, pentru a obține o nouă estimare a parametrilor modelului dumneavoastră.
  • Repetați până la convergență.

Probleme asociate cu gruparea

Există o serie de probleme cu gruparea. Printre acestea:

  • tratarea cu un număr mare de dimensiuni și cu un număr mare de elemente de date poate fi problematică din cauza complexității timpului;
  • eficacitatea metodei depinde de definiția „distanței” (pentru clusterizarea bazată pe distanțe). Dacă nu există o măsură evidentă a distanței, trebuie să o „definim”, ceea ce nu este întotdeauna ușor, mai ales în spații multidimensionale;
  • rezultatul algoritmului de clusterizare (care în multe cazuri poate fi el însuși arbitrar) poate fi interpretat în diferite moduri.

Aplicații posibile

Agoritmii de clusterizare pot fi aplicați în multe domenii, de exemplu:

  • Marketing: găsirea unor grupuri de clienți cu un comportament similar, având în vedere o bază de date mare de date despre clienți care conține proprietățile acestora și înregistrările de cumpărare anterioare;
  • Biologie: clasificarea plantelor și animalelor având în vedere caracteristicile acestora;
  • Asigurări: identificarea grupurilor de deținători de polițe de asigurare auto cu un cost mediu ridicat al cererilor de despăgubire; identificarea fraudelor;
  • Studii privind cutremurele: gruparea epicentrelor observate ale cutremurelor pentru a identifica zonele periculoase;
  • World Wide Web: clasificarea documentelor; gruparea datelor de tip weblog pentru a descoperi grupuri cu modele de acces similare.

Lasă un răspuns

Adresa ta de email nu va fi publicată.