Aflați Ingineria caracteristicilor pentru știința datelor și ML în 5 minute

Cuprins

Te pregătești să aprofundezi tainele ingineriei caracteristicilor, esențială în învățarea automată și știința datelor? Ai ajuns exact unde trebuie!

Ingineria caracteristicilor reprezintă o abilitate crucială pentru a extrage informații valoroase din date. În acest ghid concis, voi descompune acest proces în elemente simple și ușor de înțeles. Așadar, pornește în această călătorie captivantă spre stăpânirea artei extragerii caracteristicilor!

Ce reprezintă, de fapt, ingineria caracteristicilor?

În momentul în care dezvolți un model de învățare automată pentru o problemă concretă, fie că este de natură comercială, fie experimentală, alimentezi acest model cu date structurate în coloane și rânduri. În terminologia științei datelor și a dezvoltării ML, coloanele sunt denumite atribute sau variabile.

Datele individuale, reprezentate de rânduri sub aceste coloane, sunt cunoscute ca observații sau instanțe. Coloanele sau atributele constituie, în esență, caracteristicile unui set de date brut.

Aceste caracteristici brute, în forma lor inițială, nu sunt nici suficiente, nici optime pentru antrenarea unui model ML eficient. Pentru a diminua „zgomotul” generat de metadatele colectate și pentru a intensifica semnalele unice provenite de la caracteristici, este necesar să transformăm sau să convertim coloanele de metadate în caracteristici funcționale, proces cunoscut sub numele de inginerie a caracteristicilor.

Exemplul 1: Modelare financiară

În exemplul ilustrat mai sus, care prezintă un set de date, coloanele de la A la G reprezintă caracteristici. Valorile sau textul conținut în fiecare coloană, cum ar fi numele, suma depozitului, durata depozitului, ratele dobânzii etc., sunt observații.

În modelarea ML, este adesea necesar să ștergem, să adăugăm, să combinăm sau să transformăm datele pentru a crea caracteristici semnificative și pentru a reduce dimensiunea totală a bazei de date de antrenament a modelului. Aceasta este esența ingineriei caracteristicilor.

În același set de date menționat anterior, caracteristici precum „Durata totală” și „Suma dobânzii” sunt intrări redundante. Acestea nu fac decât să ocupe spațiu inutil și să complice funcționarea modelului ML. Prin urmare, se pot elimina două caracteristici dintr-un total de șapte.

Având în vedere că bazele de date utilizate în modelele ML pot conține mii de coloane și milioane de rânduri, eliminarea a două caracteristici are un impact semnificativ asupra eficienței generale a proiectului.

Exemplul 2: Creator de liste de redare muzicală AI

Uneori, se poate crea o caracteristică complet nouă prin combinarea mai multor caracteristici existente. Imaginează-ți că dezvolți un model AI care generează automat liste de redare cu muzică și melodii adaptate evenimentului, preferințelor, stării de spirit etc.

În acest scop, ai colectat date despre melodii și muzică din diverse surse și ai creat următoarea bază de date:

Baza de date de mai sus conține șapte caracteristici. Însă, având în vedere că obiectivul este antrenarea modelului ML pentru a determina ce melodie sau muzică este potrivită pentru fiecare eveniment, poți asocia caracteristici precum Gen, Evaluare, Ritm, Tempo și Viteză într-o nouă caracteristică numită „Aplicabilitate”.

Acum, fie prin expertiză, fie prin identificarea modelelor, poți combina anumite exemple de caracteristici pentru a determina ce melodie este adecvată pentru fiecare eveniment. De exemplu, observații precum „Jazz”, „4.9”, „X3”, „Y3” și „Z1” comunică modelului ML faptul că melodia „Cras maximus justo et” ar trebui inclusă în lista de redare a utilizatorului dacă acesta caută o melodie pentru relaxare.

Tipuri de caracteristici în învățarea automată

Caracteristici categoriale

Acestea sunt atribute de date care reprezintă categorii sau etichete distincte. Acest tip de caracteristică se utilizează pentru a eticheta seturile de date calitative.

#1. Caracteristici categoriale ordinale

Caracteristicile ordinale prezintă categorii cu o ordine semnificativă. De exemplu, nivelurile de educație, precum Liceul, Licența, Masteratul etc., au o distincție clară în termeni de standarde, însă nu există diferențe cantitative.

#2. Caracteristici nominale categoriale

Caracteristicile nominale sunt categorii fără o ordine inerentă. Exemple ar fi culorile, țările sau tipurile de animale. Aici, există doar diferențe calitative.

Caracteristici de tip matrice

Acest tip de caracteristică reprezintă date organizate sub forma de matrice sau liste. Oamenii de știință de date și dezvoltatorii ML utilizează adesea caracteristicile de tip matrice pentru a gestiona secvențe sau pentru a încorpora date categoriale.

#1. Încorporarea caracteristicilor matricei

Încorporarea tablourilor transformă datele categorice în vectori denși. Este o practică frecventă în procesarea limbajului natural și în sistemele de recomandare.

#2. Caracteristici matrice de tip listă

Matricele de tip listă stochează secvențe de date, cum ar fi listele de articole dintr-o comandă sau istoricul acțiunilor.

Caracteristici numerice

Aceste caracteristici de antrenament ML sunt folosite pentru a efectua operații matematice, întrucât ele reprezintă date cantitative.

#1. Caracteristici numerice de interval

Caracteristicile de interval prezintă intervale consistente între valori, însă nu există un punct zero real. Un exemplu sunt datele de monitorizare a temperaturii. Aici, zero semnifică temperatura de îngheț, însă atributul este încă prezent.

#2. Caracteristici numerice de raport

Caracteristicile de raport prezintă intervale consistente între valori și un punct zero real. Exemple ar fi vârsta, înălțimea și venitul.

Importanța ingineriei caracteristicilor în ML și știința datelor

  • Extragerea eficientă a caracteristicilor îmbunătățește precizia modelului, oferind predicții mai fiabile și mai valoroase pentru luarea deciziilor.
  • Selectarea atentă a caracteristicilor elimină atributele irelevante sau redundante, simplificând modelele și economisind resurse de calcul.
  • Caracteristicile bine concepute dezvăluie tipare în date, ajutând oamenii de știință să înțeleagă relațiile complexe din cadrul setului de date.
  • Adaptarea caracteristicilor la algoritmi specifici poate optimiza performanța modelului prin diferite metode de învățare automată.
  • Caracteristicile bine construite conduc la o antrenare mai rapidă a modelului și la costuri de calcul reduse, eficientizând fluxul de lucru ML.

În continuare, vom explora procesul pas cu pas al ingineriei caracteristicilor.

Procesul pas cu pas al ingineriei caracteristicilor

  • Colectarea datelor: Pasul inițial implică colectarea datelor brute din diverse surse, precum baze de date, fișiere sau API-uri.
  • Curățarea datelor: Odată ce datele sunt obținute, ele trebuie curățate prin identificarea și rectificarea erorilor, inconsecvențelor sau valorilor aberante.
  • Gestionarea valorilor lipsă: valorile lipsă pot afecta negativ structura caracteristicilor modelului ML. Ignorarea acestora va introduce părtinire în model. Prin urmare, trebuie investigat mai profund pentru a completa valorile lipsă sau a le elimina cu atenție, fără a afecta modelul prin părtinire.
  • Codificarea variabilelor categoriale: Variabilele categoriale trebuie convertite într-un format numeric pentru a fi compatibile cu algoritmii de învățare automată.
  • Scalarea și normalizarea: Scalarea asigură că toate caracteristicile numerice sunt aduse la o scară uniformă. Astfel, se previne dominarea modelului de învățare automată de către caracteristici cu valori mari.
  • Selectarea caracteristicilor: Acest pas ajută la identificarea și păstrarea celor mai relevante caracteristici, reducând dimensionalitatea și sporind eficiența modelului.
  • Crearea caracteristicilor: Uneori, se pot crea funcții noi din cele existente pentru a captura informații valoroase.
  • Transformarea caracteristicilor: Tehnicile de transformare, precum logaritmii sau transformările de putere, pot adapta datele în mod optim pentru modelare.

În continuare, vom discuta despre metodele utilizate în ingineria caracteristicilor.

Metode de inginerie a caracteristicilor

#1. Analiza Componentelor Principale (PCA)

PCA simplifică datele complexe prin identificarea unor noi caracteristici necorelate, denumite componente principale. Poate fi folosită pentru a reduce dimensionalitatea și pentru a îmbunătăți performanța modelului.

#2. Caracteristici polinomiale

Crearea de caracteristici polinomiale implică adăugarea puterilor caracteristicilor existente pentru a surprinde relațiile complexe din cadrul datelor. Astfel, modelul poate înțelege modelele neliniare.

#3. Gestionarea valorilor aberante

Valorile aberante sunt puncte de date atipice care pot afecta performanța modelelor. Identificarea și gestionarea valorilor aberante este esențială pentru a preveni obținerea unor rezultate distorsionate.

#4. Transformarea logaritmică

Transformarea logaritmică poate normaliza datele cu distribuție asimetrică, reducând impactul valorilor extreme și adaptând datele pentru modelare.

#5. t-SNE (t-Distributed Stochastic Neighbor Embedding)

t-SNE este utilă pentru vizualizarea datelor cu dimensiuni înalte, reducând dimensionalitatea și evidențiind grupările, păstrând în același timp structura datelor.

În această metodă de extragere a caracteristicilor, punctele de date sunt reprezentate ca puncte într-un spațiu de dimensiuni inferioare, iar punctele similare din spațiul original sunt modelate pentru a fi apropiate în reprezentarea de dimensiuni reduse.

Se diferențiază de alte metode de reducere a dimensionalității prin păstrarea structurii și a distanțelor dintre punctele de date.

#6. Codificarea One-Hot

Codificarea one-hot transformă variabilele categoriale într-un format binar (0 sau 1), generând noi coloane binare pentru fiecare categorie. Astfel, datele categorice devin adecvate pentru algoritmii ML.

#7. Codificarea prin numărare

Codificarea prin numărare înlocuiește valorile categoriale cu numărul de apariții în setul de date, captând informații valoroase din variabilele categoriale.

În această tehnică de inginerie a caracteristicilor, se utilizează frecvența sau numărul de apariții al fiecărei categorii ca o nouă caracteristică numerică, în loc de etichetele de categorie inițiale.

#8. Standardizarea caracteristicilor

Caracteristicile cu valori mari pot domina adesea caracteristicile cu valori mici, introducând părtinire în modelul ML. Standardizarea previne astfel de probleme.

Procesul de standardizare include de obicei următoarele două tehnici comune:

  • Standardizare Z-Score: Această metodă transformă fiecare caracteristică astfel încât să aibă o medie (medie) de 0 și o abatere standard de 1. Se scade media caracteristicii din fiecare punct de date și se împarte rezultatul la abaterea standard.
  • Scalarea Min-Max: Scalarea min-max transformă datele într-un interval specific, de obicei între 0 și 1. Se scade valoarea minimă a caracteristicii din fiecare punct de date și se împarte rezultatul la interval.

#9. Normalizarea

Prin normalizare, caracteristicile numerice sunt scalate la un interval comun, de obicei între 0 și 1. Aceasta păstrează diferențele relative dintre valori și asigură că toate caracteristicile sunt comparabile.

#1. Featuretools

Featuretools este un cadru Python open-source care generează automat caracteristici din seturi de date temporale și relaționale. Poate fi utilizat împreună cu alte instrumente pentru a dezvolta conducte ML eficiente.

Această soluție utilizează Deep Feature Synthesis pentru a automatiza ingineria caracteristicilor și oferă o bibliotecă de funcții de nivel scăzut pentru crearea de funcții. De asemenea, Featuretools oferă un API ideal pentru gestionarea precisă a datelor temporale.

#2. CatBoost

Dacă ești în căutarea unei biblioteci open-source care combină mai mulți arbori de decizie pentru a crea un model predictiv puternic, alege CatBoost. Această soluție oferă rezultate precise cu parametrii impliciti, eliminând necesitatea de a petrece ore întregi ajustând parametrii.

CatBoost permite, de asemenea, utilizarea factorilor non-numerici pentru a îmbunătăți rezultatele antrenamentului și oferă rezultate mai precise și predicții rapide.

#3. Feature-engine

Feature-engine este o bibliotecă Python cu o serie de transformatoare și selectoare de caracteristici, utile pentru modelele ML. Transformatoarele incluse pot fi folosite pentru transformarea variabilelor, crearea de variabile, gestionarea caracteristicilor de date și oră, preprocesare, codificare categorială, limitarea valorilor aberante și imputarea datelor lipsă. De asemenea, este capabilă să recunoască automat variabile numerice, categoriale și de tip datetime.

Resurse pentru învățarea ingineriei caracteristicilor

Cursuri online și cursuri virtuale

#1. Ingineria caracteristicilor pentru învățarea automată în Python: Datacamp

Acest curs Datacamp despre ingineria caracteristicilor îți permite să creezi funcții noi care îmbunătățesc performanța modelului de învățare automată. Vei învăța să realizezi ingineria caracteristicilor și colectarea de date pentru a dezvolta aplicații ML sofisticate.

#2. Ingineria caracteristicilor pentru învățarea automată: Udemy

De la cursul de inginerie a caracteristicilor, vei învăța aspecte precum imputarea, codificarea variabilelor, extragerea caracteristicilor, discretizarea, funcționalitatea datelor și orelor, valorile aberante, etc. Participanții vor învăța, de asemenea, să lucreze cu variabile asimetrice și să gestioneze categorii rare, necunoscute și neobservate.

#3. Ingineria caracteristicilor: Pluralsight

Această cale de învățare Pluralsight include șase cursuri. Aceste cursuri te vor ajuta să înțelegi importanța ingineriei caracteristicilor în fluxul de lucru ML, modalitățile de aplicare a tehnicilor și extragerea caracteristicilor din text și imagini.

#4. Selectarea caracteristicilor pentru învățarea automată: Udemy

Cu ajutorul acestui curs Udemy, participanții pot învăța despre metode de combinare a caracteristicilor, filtrare, wrapper și încorporate, eliminarea recursivă a caracteristicilor și căutare exhaustivă. De asemenea, sunt prezentate tehnici de selecție a caracteristicilor, inclusiv cele cu Python, Lasso și arbori de decizie. Cursul include 5,5 ore de material video la cerere și 22 de articole.

#5. Ingineria caracteristicilor pentru învățarea automată: Great Learning

Acest curs de la Great Learning te va introduce în domeniul ingineriei caracteristicilor, abordând supraeșantionarea și subeșantionarea. În plus, vei putea aplica cunoștințele dobândite prin exerciții practice de reglare a modelului.

#6. Ingineria caracteristicilor: Coursera

Înscrie-te la cursul Coursera pentru a utiliza BigQuery ML, Keras și TensorFlow în realizarea ingineriei caracteristicilor. Acest curs de nivel mediu acoperă, de asemenea, practici avansate de inginerie a caracteristicilor.

Cărți digitale sau tipărite

#1. Ingineria caracteristicilor pentru învățarea automată

Această carte te învață cum să transformi caracteristicile în formate adecvate pentru modelele de învățare automată.

De asemenea, acoperă principiile ingineriei caracteristicilor și aplicarea practică prin intermediul exercițiilor.

#2. Ingineria și selecția caracteristicilor

Prin lectura acestei cărți, vei afla metode de dezvoltare a modelelor predictive în diverse etape.

Vei învăța tehnici de identificare a celor mai bune reprezentări de predictori pentru modelare.

#3. Ingineria caracteristicilor simplificată

Cartea servește ca un ghid pentru îmbunătățirea puterii de predicție a algoritmilor ML.

Te învață să proiectezi și să creezi funcții eficiente pentru aplicațiile bazate pe ML, oferind informații detaliate despre date.

#4. Feature Engineering Bookcamp

Această carte prezintă studii de caz practice pentru a te învăța tehnici de inginerie a caracteristicilor pentru rezultate ML mai bune și gestionarea îmbunătățită a datelor.

Lectura ei te va ajuta să obții rezultate îmbunătățite fără a pierde timp prețios cu reglarea fină a parametrilor ML.

#5. Arta ingineriei caracteristicilor

Această resursă este un element esențial pentru orice om de știință de date sau inginer de învățare automată.

Cartea adoptă o abordare inter-domeniu pentru a discuta despre grafice, texte, serii cronologice, imagini și studii de caz.

Concluzie

Acesta este modul în care se realizează ingineria caracteristicilor. Acum, că ai o înțelegere a definiției, procesului pas cu pas, metodelor și resurselor de învățare, poți aplica aceste cunoștințe în proiectele tale de ML și poți obține succesul dorit!

În continuare, îți recomand să explorezi articolul despre învățarea prin întărire.