ciot Ce este reducerea dimensionalității? - Unite.AI
Conectează-te cu noi
Masterclass AI:

AI 101

Ce este reducerea dimensionalității?

mm
Actualizat on

Ce este reducerea dimensionalității?

Reducerea dimensionalității este un proces folosit pentru a reduce dimensionalitatea unui set de date, luând multe caracteristici și reprezentându-le ca mai puține caracteristici. De exemplu, reducerea dimensionalității ar putea fi utilizată pentru a reduce un set de date de douăzeci de caracteristici la doar câteva caracteristici. Reducerea dimensionalității este utilizată în mod obișnuit în învățare nesupravegheată sarcini pentru a crea automat clase din multe caracteristici. Pentru a înțelege mai bine de ce și cum este utilizată reducerea dimensionalității, vom arunca o privire asupra problemelor asociate cu datele cu dimensiuni mari și cele mai populare metode de reducere a dimensionalității.

Mai multe dimensiuni duc la supraajustare

Dimensionalitatea se referă la numărul de caracteristici/coloane dintr-un set de date.

Se presupune adesea că în învățarea automată mai multe funcții sunt mai bune, deoarece creează un model mai precis. Cu toate acestea, mai multe caracteristici nu se traduc neapărat într-un model mai bun.

Caracteristicile unui set de date pot varia mult în ceea ce privește cât de utile sunt pentru model, multe caracteristici fiind de mică importanță. În plus, cu cât setul de date conține mai multe caracteristici, cu atât sunt necesare mai multe mostre pentru a se asigura că diferitele combinații de caracteristici sunt bine reprezentate în date. Prin urmare, numărul de mostre crește proporțional cu numărul de caracteristici. Mai multe mostre și mai multe caracteristici înseamnă că modelul trebuie să fie mai complex și, pe măsură ce modelele devin mai complexe, acestea devin mai sensibile la supraadaptare. Modelul învață prea bine modelele din datele de antrenament și nu reușește să generalizeze la datele din eșantion.

Reducerea dimensionalității unui set de date are mai multe beneficii. După cum am menționat, modelele mai simple sunt mai puțin predispuse la supraadaptare, deoarece modelul trebuie să facă mai puține ipoteze cu privire la modul în care caracteristicile sunt legate între ele. În plus, mai puține dimensiuni înseamnă că este necesară o putere de calcul mai mică pentru antrenarea algoritmilor. În mod similar, este nevoie de mai puțin spațiu de stocare pentru un set de date care are o dimensiune mai mică. Reducerea dimensionalității unui set de date vă poate permite, de asemenea, să utilizați algoritmi nepotriviți pentru seturi de date cu multe caracteristici.

Metode comune de reducere a dimensionalității

Reducerea dimensionalității poate fi prin selecția caracteristicilor sau prin inginerie de caracteristici. Selectarea caracteristicilor este locul în care inginerul identifică cele mai relevante caracteristici ale setului de date, în timp ce inginerie de caracteristici este procesul de creare de noi caracteristici prin combinarea sau transformarea altor caracteristici.

Selectarea caracteristicilor și inginerie pot fi efectuate programatic sau manual. Când selectați și proiectați manual caracteristicile, vizualizarea datelor pentru a descoperi corelațiile dintre caracteristici și clase este tipică. Efectuarea reducerii dimensionalității în acest mod poate necesita destul de mult timp și, prin urmare, unele dintre cele mai comune modalități de reducere a dimensionalității implică utilizarea algoritmilor disponibili în biblioteci precum Scikit-learn pentru Python. Acești algoritmi obișnuiți de reducere a dimensionalității includ: Analiza componentelor principale (PCA), Descompunerea valorii singulare (SVD) și Analiza discriminantă liniară (LDA).

Algoritmii utilizați în reducerea dimensionalității pentru sarcinile de învățare nesupravegheate sunt de obicei PCA și SVD, în timp ce cei utilizați pentru reducerea dimensionalității învățării supravegheate sunt de obicei LDA și PCA. În cazul modelelor de învățare supravegheată, caracteristicile nou generate sunt doar introduse în clasificatorul de învățare automată. Rețineți că utilizările descrise aici sunt doar cazuri de utilizare generale și nu singurele condiții în care aceste tehnici pot fi utilizate. Algoritmii de reducere a dimensionalității descriși mai sus sunt pur și simplu metode statistice și sunt utilizați în afara modelelor de învățare automată.

Analiza componentelor principale

Foto: Matrice cu componentele principale identificate

Analiza componentelor principale (PCA) este o metodă statistică care analizează caracteristicile/trăsăturile unui set de date și rezumă caracteristicile care sunt cele mai influente. Caracteristicile setului de date sunt combinate împreună în reprezentări care păstrează majoritatea caracteristicilor datelor, dar sunt răspândite în mai puține dimensiuni. Vă puteți gândi la acest lucru ca „striming” datele de la o reprezentare de dimensiune mai mare la una cu doar câteva dimensiuni.

Ca exemplu de situație în care PCA ar putea fi utilă, gândiți-vă la diferitele moduri în care s-ar putea descrie vinul. Deși este posibil să se descrie vinul folosind multe caracteristici foarte specifice, cum ar fi nivelurile de CO2, nivelurile de aerare etc., astfel de caracteristici specifice pot fi relativ inutile atunci când se încearcă identificarea unui anumit tip de vin. În schimb, ar fi mai prudent să identificăm tipul pe baza unor caracteristici mai generale precum gustul, culoarea și vârsta. PCA poate fi folosit pentru a combina caracteristici mai specifice și pentru a crea caracteristici care sunt mai generale, mai utile și mai puțin susceptibile de a provoca supraadaptare.

PCA se realizează prin determinarea modului în care caracteristicile de intrare variază de la medie unele în raport cu altele, determinând dacă există relații între caracteristici. Pentru a face acest lucru, se creează o matrice covariantă, stabilindu-se o matrice compusă din covarianțele față de perechile posibile ale caracteristicilor setului de date. Aceasta este utilizată pentru a determina corelațiile dintre variabile, cu o covarianță negativă indicând o corelație inversă și o corelație pozitivă indicând o corelație pozitivă.

Componentele principale (cele mai influente) ale setului de date sunt create prin crearea de combinații liniare ale variabilelor inițiale, care se realizează cu ajutorul conceptelor de algebră liniară numite valori proprii și vectori proprii. Combinațiile sunt create astfel încât componentele principale să nu fie corelate între ele. Majoritatea informațiilor conținute în variabilele inițiale sunt comprimate în primele câteva componente principale, ceea ce înseamnă că au fost create noi caracteristici (componentele principale) care conțin informațiile din setul de date original într-un spațiu dimensional mai mic.

Descompunerea unei valori singulare

Foto: De Cmglee – Lucrări proprii, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=67853297

Descompunerea valorii unice (SVD) is folosit pentru a simplifica valorile dintr-o matrice, reducând matricea la părțile sale constitutive și ușurând calculele cu acea matrice. SVD poate fi utilizat atât pentru matrice cu valoare reală, cât și pentru matrice complexe, dar în scopul acestei explicații, va examina modul de descompunere a unei matrice de valori reale.

Să presupunem că avem o matrice compusă din date cu valoare reală și scopul nostru este să reducem numărul de coloane/funcții din matrice, similar cu scopul PCA. La fel ca PCA, SVD va comprima dimensionalitatea matricei, păstrând în același timp cât mai mult posibil din variabilitatea matricei. Dacă dorim să operam pe matricea A, putem reprezenta matricea A ca alte trei matrici numite U, D și V. Matricea A este compusă din elementele x * y originale, în timp ce matricea U este compusă din elementele X * X (este o matrice ortogonală). Matricea V este o matrice ortogonală diferită care conține elemente y * y. Matricea D conține elementele x * y și este o matrice diagonală.

Pentru a descompune valorile pentru matricea A, trebuie să convertim valorile originale ale matricei singulare în valorile diagonale găsite într-o nouă matrice. Când lucrați cu matrici ortogonale, proprietățile lor nu se schimbă dacă sunt înmulțite cu alte numere. Prin urmare, putem aproxima matricea A profitând de această proprietate. Când înmulțim matricele ortogonale împreună cu o transpunere a Matricei V, rezultatul este o matrice echivalentă cu A noastră originală.

Când Matricea a este descompusă în matrice U, D și V, acestea conțin datele găsite în Matricea A. Cu toate acestea, coloanele din stânga matricelor vor deține majoritatea datelor. Putem lua doar aceste primele câteva coloane și avem o reprezentare a Matricei A care are mult mai puține dimensiuni și majoritatea datelor din A.

Analiza liniară discriminantă

 

Stânga: Matrice înainte de LDA, Dreapta: Axa după LDA, acum separabilă

Analiza Discriminantă Liniară (LDA) este un proces care preia date dintr-un grafic multidimensional și îl reproiectează pe un grafic liniar. Vă puteți imagina acest lucru gândindu-vă la un grafic bidimensional plin cu puncte de date aparținând la două clase diferite. Să presupunem că punctele sunt împrăștiate, astfel încât să nu poată fi trasă nicio linie care să separe perfect cele două clase diferite. Pentru a face față acestei situații, punctele găsite în graficul 2D pot fi reduse la un grafic 1D (o linie). Această linie va avea toate punctele de date distribuite peste ea și, sperăm, poate fi împărțită în două secțiuni care reprezintă cea mai bună separare posibilă a datelor.

Când se realizează LDA, există două obiective principale. Primul obiectiv este reducerea la minimum a varianței pentru clase, în timp ce al doilea obiectiv este maximizarea distanței dintre mediile celor două clase. Aceste obiective sunt îndeplinite prin crearea unei noi axe care va exista în graficul 2D. Axa nou creată acționează pentru a separa cele două clase pe baza obiectivelor descrise anterior. După ce axa a fost creată, punctele găsite în graficul 2D sunt plasate de-a lungul axei.

Sunt necesari trei pași pentru a muta punctele originale într-o nouă poziție de-a lungul noii axe. În primul pas, distanța dintre mediile claselor individuale (varianța dintre clase) este utilizată pentru a calcula separabilitatea claselor. În a doua etapă se calculează varianța în cadrul diferitelor clase, realizată prin determinarea distanței dintre eșantion și medie pentru clasa în cauză. În pasul final, este creat spațiul de dimensiuni inferioare care maximizează varianța dintre clase.

Tehnica LDA obține cele mai bune rezultate atunci când mijloacele pentru clasele țintă sunt departe unele de altele. LDA nu poate separa efectiv clasele cu o axă liniară dacă mediile pentru distribuții se suprapun.