Pregătirea datelor pentru învățarea automată: un ghid pas cu pas

Publicat: 2023-07-07

Cu ani în urmă, când Spotify lucra la motorul său de recomandare, s-a confruntat cu provocări legate de calitatea datelor utilizate pentru antrenarea algoritmilor de învățare automată (ML). Dacă nu ar fi decis să se întoarcă la etapa de pregătire a datelor și să investească efort suplimentar în curățarea, normalizarea și transformarea datelor lor, sunt șanse ca experiența noastră de ascultare să nu fie la fel de plăcută.

Pregătirea minuțioasă a datelor pentru ML a permis platformei de streaming să antreneze un motor ML puternic care prezice cu precizie preferințele de ascultare ale utilizatorilor și oferă recomandări muzicale extrem de personalizate. Spotify a evitat o greșeală esențială pe care companiile o fac atunci când vine vorba de pregătirea datelor pentru ML – neinvestind suficient efort sau sărind peste faza.

Multe companii presupun că introducerea unor volume mari de date într-un motor ML este suficientă pentru a genera predicții precise. Adevărul este că poate duce la o serie de probleme, de exemplu, părtinire algoritmică sau scalabilitate limitată.

Succesul ML depinde în mare măsură de date. Și tristul dat este: toate seturile de date sunt defecte. De aceea, pregătirea datelor este crucială pentru ML. Ajută la excluderea inexactităților și părtinirii inerente datelor brute, astfel încât modelul ML rezultat să genereze predicții mai fiabile și mai precise.

În această postare pe blog, evidențiem importanța pregătirii datelor pentru ML și împărtășim abordarea noastră privind colectarea, curățarea și transformarea datelor. Deci, dacă sunteți nou în ML și doriți să vă asigurați că inițiativa dvs. se va dovedi un succes, continuați să citiți.

Cum să pregătiți datele pentru învățarea automată

Primul pas către adoptarea cu succes a ML este formularea clară a problemei dvs. de afaceri. Nu numai că asigură că modelul ML pe care îl construiți este aliniat cu nevoile dvs. de afaceri, dar vă permite și să economisiți timp și bani în pregătirea datelor care ar putea să nu fie relevante.

În plus, o declarație clară a problemei face modelul ML explicabil (adică utilizatorii înțeleg modul în care ia decizii). Este deosebit de important în sectoare precum sănătatea și finanțele, unde ML are un impact major asupra vieții oamenilor.

Cu problema afacerii rezolvată, este timpul să începem munca de date.

În general, procesul de pregătire a datelor pentru ML poate fi împărțit în următoarele etape.

  1. Colectare de date
  2. Curățarea datelor
  3. Transformarea datelor
  4. Divizarea datelor

Să aruncăm o privire mai atentă la fiecare.

Colectare de date

Pregătirea datelor pentru ML începe cu colectarea datelor. În timpul etapei de colectare a datelor, culegeți date pentru antrenament și ajustarea viitorului model ML. Făcând acest lucru, țineți cont de tipul, volumul și calitatea datelor: acești factori vor determina cea mai bună strategie de pregătire a datelor.

Învățarea automată folosește trei tipuri de date: structurate, nestructurate și semi-structurate.

  • Datele structurate sunt organizate într-un mod specific, de obicei într-un format de tabel sau foaie de calcul. Exemplele de date structurate acoperă gama de informații colectate din baze de date sau sisteme tranzacționale.
  • Datele nestructurate includ imagini, videoclipuri, înregistrări audio și alte informații care nu urmează modelele convenționale de date.
  • Datele semi-structurate nu urmează un format de model de date tabelar. Cu toate acestea, nu este complet dezorganizat, deoarece conține unele elemente structurale, cum ar fi etichete sau metadate, care îl fac mai ușor de interpretat. Exemplele includ date în formate XML sau JSON.

Structura datelor determină abordarea optimă pentru pregătirea lor pentru ML. Datele structurate, de exemplu, pot fi ușor organizate în tabele și curățate prin deduplicare, completarea valorilor lipsă sau standardizarea formatelor de date. În schimb, extragerea caracteristicilor relevante din date nestructurate necesită tehnici mai complexe, cum ar fi procesarea limbajului natural sau viziunea computerizată.

Abordarea optimă a pregătirii datelor pentru ML este, de asemenea, afectată de volumul datelor de antrenament. Un set mare de date poate necesita eșantionare, care implică selectarea unui subset de date pentru a antrena un model din cauza limitărilor de calcul. Unul mai mic, la rândul său, poate solicita oamenilor de știință să facă pași suplimentari pentru a genera mai multe date pe baza punctelor de date existente (mai multe despre acestea mai jos.)

Calitatea datelor colectate este, de asemenea, crucială. Utilizarea datelor inexacte sau părtinitoare poate afecta rezultatul ML, ceea ce poate avea consecințe semnificative, în special în domenii precum finanțele, asistența medicală și justiția penală. Există tehnici care permit corectarea datelor pentru erori și părtiniri. Cu toate acestea, este posibil să nu funcționeze pe un set de date care este în mod inerent denaturat. Odată ce știți ce face datele „bune”, trebuie să decideți cum să le colectați și unde să le găsiți. Există mai multe strategii pentru asta.

  • Colectarea datelor din surse interne: dacă aveți informații stocate în depozitul de date al companiei, le puteți folosi pentru antrenarea algoritmilor ML. Aceste date pot include tranzacții de vânzări, interacțiuni cu clienții, date de pe platformele de rețele sociale și date din alte surse.
  • Colectarea datelor din surse externe: puteți apela la surse de date disponibile public, cum ar fi portaluri de date guvernamentale, depozite de date academice și comunități de partajare a datelor, cum ar fi Kaggle, Depozitul UCI Machine Learning sau Google Dataset Search.
  • Web scraping: Această tehnică implică extragerea datelor de pe site-uri web folosind instrumente automate. Această abordare poate fi utilă pentru colectarea de date din surse care nu sunt accesibile prin alte mijloace, cum ar fi recenzii despre produse, articole de știri și rețelele sociale.
  • Sondaje: această abordare poate fi utilizată pentru a colecta anumite puncte de date de la un anumit public țintă. Este util în special pentru colectarea de informații despre preferințele sau comportamentul utilizatorului.

Uneori, însă, aceste strategii nu oferă suficiente date. Când se întâmplă acest lucru, puteți compensa lipsa punctelor de date cu aceste tehnici.

  • Mărirea datelor: Acest lucru vă permite să generați mai multe date din mostrele existente transformându-le într-o varietate de moduri, de exemplu, prin rotire, translație sau scalare.
  • Învățare activă: acest lucru vă permite să selectați cel mai informativ eșantion de date pentru etichetare de către un expert uman.
  • Transfer de învățare: Aceasta implică utilizarea algoritmilor ML pre-antrenați aplicați pentru rezolvarea unei sarcini conexe ca punct de plecare pentru antrenarea unui nou model ML, urmată de ajustarea fină a noului model pe date noi.
  • Partajarea în colaborare a datelor: Aceasta implică colaborarea cu alți cercetători și organizații pentru a colecta și a partaja date pentru un obiectiv comun.

Curățarea datelor

Următorul pas de făcut pentru a pregăti datele pentru ML este curățarea acestora. Curățarea datelor implică găsirea și corectarea erorilor, inconsecvențelor și valorilor lipsă. Există mai multe abordări ale curățării datelor.

Gestionarea datelor lipsă

Lipsa valorilor este o problemă comună în ML. Poate fi gestionat prin imputare (gândiți-vă: completarea valorilor lipsă cu date estimate sau estimate), interpolare (obținerea valorilor lipsă din punctele de date din jur) sau ștergere (pur și simplu eliminarea rândurilor sau coloanelor cu valori lipsă dintr-un set de date).

Manipularea Outliers

Valorile aberante sunt puncte de date care diferă semnificativ de restul setului de date. Valorile aberante pot apărea din cauza erorilor de măsurare, a erorilor de introducere a datelor sau pur și simplu pentru că reprezintă observații neobișnuite sau extreme. Într-un set de date de salarii ale angajaților, de exemplu, o valoare anormală poate fi un angajat care câștigă semnificativ mai mult sau mai puțin decât alții. Valorile aberante pot fi gestionate prin eliminarea, transformarea lor pentru a le reduce impactul, winsorizing (gândiți-vă: înlocuirea valorilor extreme cu cele mai apropiate valori care se află în intervalul normal de distribuție) sau tratarea lor ca o clasă separată de date.

Eliminarea duplicatelor

Un alt pas în procesul de pregătire a datelor pentru ML este eliminarea duplicatelor. Duplicatele nu numai că deformează predicțiile ML, ci și risipă spațiu de stocare și măresc timpul de procesare, în special în seturile de date mari. Pentru a elimina duplicatele, oamenii de știință din date recurg la o varietate de tehnici de identificare duplicat (de exemplu, potrivire exactă, potrivire neclară, hashing sau legare a înregistrărilor). Odată identificate, acestea pot fi fie abandonate, fie îmbinate. Cu toate acestea, în seturile de date dezechilibrate, duplicatele pot fi de fapt binevenite pentru realizarea unei distribuții normale.

Manipularea datelor irelevante

Datele irelevante se referă la datele care nu sunt utile sau aplicabile pentru rezolvarea unei probleme. Gestionarea datelor irelevante poate ajuta la reducerea zgomotului și la îmbunătățirea preciziei predicțiilor. Pentru a identifica datele irelevante, echipele de date pot recurge la tehnici precum analiza componentelor principale, analiza corelației sau pur și simplu se pot baza pe cunoștințele lor de domeniu. Odată identificate, astfel de puncte de date sunt eliminate din setul de date relevant.

Gestionarea datelor incorecte

Pregătirea datelor pentru învățarea automată trebuie să includă și gestionarea datelor incorecte și eronate. Tehnicile obișnuite de tratare a unor astfel de date includ transformarea datelor (modificarea datelor, astfel încât să îndeplinească criteriile stabilite) sau eliminarea totală a punctelor de date incorecte.

Gestionarea datelor dezechilibrate

Un set de date dezechilibrat este un set de date în care numărul de puncte de date dintr-o clasă este semnificativ mai mic decât numărul de puncte de date dintr-o altă clasă. Acest lucru poate duce la un model părtinitor care acordă prioritate clasei majoritare, ignorând în același timp clasa minoritară. Pentru a rezolva problema, echipele de date pot recurge la tehnici precum reeșantionarea (fie supraeșantionarea clasei minoritare, fie subeșantionarea clasei majoritare pentru a echilibra distribuția datelor), generarea de date sintetice (generarea de puncte de date suplimentare pentru clasa minoritară în mod sintetic), costul -învățare sensibilă (atribuirea unei ponderi mai mari clasei minoritare în timpul antrenamentului) și învățarea ansamblului (combinând mai multe modele antrenate pe diferite subseturi de date folosind algoritmi diferiți).

Aceste activități ajută la asigurarea faptului că datele de instruire sunt exacte, complete și consecvente. Deși este o mare realizare, nu este suficient să produci un model ML de încredere. Așadar, următorul pas pe parcursul pregătirii datelor pentru ML implică asigurarea faptului că punctele de date din setul de date de antrenament sunt conforme cu reguli și standarde specifice. Și acea etapă a procesului de gestionare a datelor este denumită transformarea datelor.

Transformarea datelor

În timpul etapei de transformare a datelor, convertiți datele brute într-un format potrivit pentru algoritmii ML. Aceasta, la rândul său, asigură performanțe algoritmice și precizie mai ridicate.

Experții noștri în pregătirea datelor pentru ML numesc următoarele tehnici comune de transformare a datelor.

Scalare

Într-un set de date, diferite caracteristici pot utiliza diferite unități de măsură. De exemplu, un set de date imobiliare poate include informații despre numărul de camere din fiecare proprietate (cuprinzând între unu și zece) și prețul (cuprinzând între 50.000 USD și 1.000.000 USD). Fără scalare, este o provocare să echilibrezi importanța ambelor caracteristici. Algoritmul ar putea acorda prea multă importanță caracteristicii cu valori mai mari - în acest caz, prețul - și nu suficientă caracteristicii cu valori aparent mai mici. Scalare ajută la rezolvarea acestei probleme prin transformarea tuturor punctelor de date într-un mod care le face să se încadreze într-un interval specificat, de obicei, între 0 și 1. Acum puteți compara diferite variabile în mod egal.

Normalizare

O altă tehnică utilizată în pregătirea datelor pentru ML este normalizarea. Este similar cu scalarea. Cu toate acestea, în timp ce scalarea modifică intervalul unui set de date, normalizarea îi schimbă distribuția.

Codificare

Datele categorice au un număr limitat de valori, de exemplu, culori, modele de mașini sau specii de animale. Deoarece algoritmii ML funcționează în mod obișnuit cu date numerice, datele categorice trebuie să fie codificate pentru a fi utilizate ca intrare. Prin urmare, codificarea înseamnă conversia datelor categorice într-un format numeric. Există mai multe tehnici de codare din care să alegeți, inclusiv codificare one-hot, codificare ordinală și codificare etichetă.

Discretizarea

Discretizarea este o abordare a pregătirii datelor pentru ML care permite transformarea variabilelor continue, cum ar fi timpul, temperatura sau greutatea, în unele discrete. Luați în considerare un set de date care conține informații despre înălțimea oamenilor. Înălțimea fiecărei persoane poate fi măsurată ca o variabilă continuă în picioare sau centimetri. Cu toate acestea, pentru anumiți algoritmi ML, ar putea fi necesară discretizarea acestor date în categorii, cum ar fi „scurt”, „mediu” și „înalt”. Exact asta face discretizarea. Ajută la simplificarea setului de date de antrenament și la reducerea complexității problemei. Abordările comune ale discretizării se referă la discretizarea bazată pe clustering și pe baza arborelui de decizie.

Reducerea dimensionalității

Reducerea dimensionalității înseamnă limitarea numărului de caracteristici sau variabile dintr-un set de date și păstrarea doar a informațiilor relevante pentru rezolvarea unei probleme. Luați în considerare, de exemplu, un set de date care conține informații despre istoricul achizițiilor clienților. Acesta prezintă datele de cumpărare, articolele cumpărate, prețurile articolelor și locația în care au avut loc achizițiile. Reducerea dimensionalității acestui set de date, omitem toate caracteristicile, cu excepția celor mai importante, de exemplu, un articol achiziționat și prețul acestuia. Reducerea dimensionalității poate fi realizată cu o varietate de tehnici, unele dintre ele fiind analiza componentelor principale, analiza discriminantă liniară și încorporarea stocastică t-distribuită a vecinilor.

Transformarea jurnalului

Un alt mod de pregătire a datelor pentru ML, transformarea jurnalului se referă la aplicarea unei funcții logaritmice la valorile unei variabile dintr-un set de date. Este adesea folosit atunci când datele de antrenament sunt foarte denaturate sau au o gamă largă de valori. Aplicarea unei funcții logaritmice poate ajuta la o distribuție mai simetrică a datelor.

Vorbind de transformarea datelor, ar trebui să menționăm și ingineria caracteristicilor. Deși este o formă de transformare a datelor, ingineria caracteristicilor este mai mult decât o tehnică sau un pas în procesul de pregătire a datelor pentru ML. Acesta reprezintă selectarea, transformarea și crearea de caracteristici într-un set de date. Ingineria caracteristicilor implică o combinație de tehnici statistice, matematice și de calcul, inclusiv utilizarea modelelor ML, pentru a crea caracteristici care captează cele mai relevante informații din date.

De obicei, este un proces iterativ care necesită testarea și evaluarea diferitelor tehnici și combinații de caracteristici pentru a veni cu cea mai bună abordare pentru rezolvarea unei probleme.

Divizarea datelor

Următorul pas în procesul de pregătire a datelor pentru ML implică împărțirea tuturor datelor adunate în subseturi - un proces cunoscut sub numele de împărțire a datelor. De obicei, datele sunt împărțite într-un set de date de instruire, validare și testare.

  • Un set de date de antrenament este folosit pentru a preda efectiv un model ML să recunoască modele și relații dintre variabilele de intrare și țintă. Acest set de date este de obicei cel mai mare.
  • Un set de date de validare este un subset de date care este utilizat pentru a evalua performanța unui model în timpul antrenamentului. Ajută la reglarea fină a modelului prin ajustarea hiperparametrilor (gândiți-vă la: parametrii procesului de antrenament care sunt setați manual înainte de antrenament, cum ar fi rata de învățare, puterea de regularizare sau numărul de straturi ascunse). Setul de date de validare ajută, de asemenea, la prevenirea supraadaptării datelor de antrenament.
  • Un set de date de testare este un subset de date care este utilizat pentru a evalua performanța unui model antrenat. Scopul său este de a evalua acuratețea modelului pe date noi, nevăzute. Setul de date de testare este utilizat o singură dată - după ce modelul a fost antrenat și ajustat fin pe seturile de date de instruire și validare.

Prin împărțirea datelor, putem evalua cât de bine funcționează un model ML pe date pe care nu le-a văzut până acum. Fără împărțire, sunt șanse ca modelul să aibă rezultate slabe pe datele noi. Acest lucru se poate întâmpla deoarece modelul poate să fi memorat punctele de date în loc să învețe modele și să le generalizeze la date noi.

Există mai multe abordări ale împărțirii datelor, iar alegerea celei optime depinde de problema rezolvată și de proprietățile setului de date. Experții noștri în pregătirea datelor pentru ML spun că deseori necesită unele experimente din partea echipei de date pentru a determina cea mai eficientă strategie de împărțire. Următoarele sunt cele mai comune strategii.

  • Eșantionarea aleatorie: cu această strategie, datele sunt împărțite aleatoriu. Această abordare este adesea aplicată la seturi mari de date reprezentative pentru populația modelată. Alternativ, este utilizat atunci când nu există relații cunoscute într-un set de date, ceea ce poate necesita o abordare mai specializată.
  • Eșantionarea stratificată: în această strategie, datele sunt împărțite în subseturi pe baza etichetelor de clasă sau a altor caracteristici, urmate de eșantionarea aleatorie a acestor subseturi. Această strategie se aplică seturilor de date dezechilibrate, cu numărul de valori dintr-o clasă depășind semnificativ numărul de valori din celelalte. În acest caz, eșantionarea stratificată ajută la asigurarea faptului că seturile de date de instruire și testare au o distribuție similară a valorilor din fiecare clasă.
  • Eșantionarea bazată pe timp: această strategie este utilizată în cazul în care datele colectate până la un anumit moment în timp formează un set de date de antrenament, în timp ce datele colectate după punctul de referință sunt formate într-un set de date de testare. Această abordare este utilizată atunci când datele au fost colectate pe o perioadă lungă de timp - de exemplu, în seturi de date financiare sau medicale, deoarece permite să ne asigurăm că modelul poate face predicții precise asupra datelor viitoare.
  • Validare încrucișată: cu această strategie, datele sunt împărțite în mai multe subseturi sau pliuri. Unele pliuri sunt folosite pentru a antrena modelul, în timp ce restul sunt folosite pentru evaluarea performanței. Procesul se repetă de mai multe ori, fiecare pliu servind ca date de testare cel puțin o dată. Există mai multe tehnici de validare încrucișată, de exemplu, validarea încrucișată în k-fold și validarea încrucișată cu excludere. Validarea încrucișată oferă de obicei o estimare mai precisă a performanței unui model decât evaluarea pe un singur set de date de testare.

Într-o notă finală

Pregătirea corectă a datelor pentru ML este esențială pentru dezvoltarea unor soluții de învățare automată precise și fiabile. La ITRex, înțelegem provocările pregătirii datelor și importanța de a avea un set de date de calitate pentru un proces ML de succes.

Dacă doriți să maximizați potențialul datelor dvs. prin ML, contactați echipa ITRex. Experții noștri vă vor oferi asistență în colectarea, curățarea și transformarea datelor dvs.


Acest articol a fost publicat inițial pe site-ul web itrex.