Top 6 tehnici utilizate în ingineria caracteristicilor [învățare automată]
Publicat: 2021-03-12Cuprins
Introducere
Ingineria caracteristicilor este unul dintre cele mai importante aspecte ale oricărui proiect de știință a datelor. Ingineria caracteristicilor se referă la tehnicile utilizate pentru extragerea și rafinarea caracteristicilor din datele brute. Tehnicile de inginerie a caracteristicilor sunt utilizate pentru a crea date de intrare adecvate pentru model și pentru a îmbunătăți performanța modelului.
Modelele sunt antrenate și construite pe caracteristicile pe care le derivăm din datele brute pentru a oferi rezultatul necesar. Se poate întâmpla ca datele pe care le avem să nu fie suficient de bune pentru ca modelul să învețe ceva din ele. Dacă suntem capabili să derivăm caracteristicile care găsesc soluția la problema noastră de bază, s-ar dovedi a fi o bună reprezentare a datelor. Mai bună este reprezentarea datelor, mai bună va fi potrivirea modelului și rezultate mai bune vor fi prezentate de model.
Fluxul de lucru al oricărui proiect de știință a datelor este mai degrabă un proces iterativ decât un proces unic. În majoritatea proiectelor de știință a datelor, un model de bază este creat după crearea și rafinarea caracteristicilor din datele brute. La obținerea rezultatelor modelului de bază, unele caracteristici existente pot fi modificate și unele caracteristici noi sunt, de asemenea, derivate din date pentru a optimiza rezultatele modelului.
Inginerie caracteristică
Tehnicile utilizate în procesul de inginerie a caracteristicilor pot furniza rezultate în același mod pentru toți algoritmii și seturile de date. Unele dintre tehnicile comune utilizate în procesul de inginerie a caracteristicilor sunt următoarele:
1. Transformarea valorii
Valorile caracteristicilor pot fi transformate într-o altă metrică prin utilizarea unor parametri precum funcția logaritmică, funcția rădăcină, funcția exponențială etc. Există unele limitări pentru aceste funcții și este posibil să nu fie utilizate pentru toate tipurile de seturi de date. De exemplu, transformarea rădăcină sau transformarea logaritmică nu pot fi aplicate caracteristicilor care conțin valori negative.
Una dintre cele mai frecvent utilizate funcții este funcția logaritmică. Funcția logaritmică poate ajuta la reducerea asimetriei datelor care pot fi denaturate către un capăt. Transformarea jurnalului tinde să normalizeze datele, ceea ce reduce efectul valorilor aberante asupra performanței modelului.
De asemenea, ajută la reducerea mărimii valorilor dintr-o caracteristică. Acest lucru este util atunci când folosim niște algoritmi care consideră caracteristicile cu valori mai mari ca fiind de o importanță mai mare decât celelalte.
2. Imputarea datelor
Imputarea datelor se referă la completarea valorilor lipsă dintr-un set de date cu o anumită valoare statistică. Această tehnică este importantă deoarece unii algoritmi nu funcționează asupra valorilor lipsă, ceea ce fie ne limitează să folosim alți algoritmi, fie impută aceste valori lipsă. Este de preferat să îl utilizați dacă procentul de valori lipsă într-o caracteristică este mai mic (în jur de 5 până la 10%), altfel ar duce la o mai mare distorsiune în distribuția datelor. Există diferite metode de a face acest lucru pentru caracteristicile numerice și categoriale.
Putem imputa valorile lipsă în caracteristicile numerice cu valori arbitrare într-un interval specificat sau cu măsuri statistice cum ar fi media, mediana etc. Aceste imputări trebuie făcute cu atenție deoarece măsurile statistice sunt predispuse la valori aberante care ar degrada mai degrabă performanța modelului. . Pentru caracteristicile categoriale, putem imputa valorile lipsă cu o categorie suplimentară care lipsește din setul de date sau pur și simplu le putem imputa ca lipsă dacă categoria este necunoscută.
Primul necesită un bun simț al cunoașterii domeniului pentru a putea găsi categoria corectă, în timp ce al doilea este mai mult o alternativă pentru generalizare. De asemenea, putem folosi modul pentru a imputa caracteristicile categoriale. Imputarea datelor cu modul poate duce, de asemenea, la suprareprezentarea celei mai frecvente etichete dacă valorile lipsă sunt prea mari ca număr.
Alăturați-vă cursurilor de inteligență artificială online de la cele mai bune universități din lume – masterat, programe executive postuniversitare și program de certificat avansat în ML și AI pentru a vă accelera cariera.
3. Codificare categorială
Una dintre cerințele multor algoritmi este ca datele de intrare să fie de natură numerică. Aceasta se dovedește a fi o constrângere pentru utilizarea caracteristicilor categoriale în astfel de algoritmi. Pentru a reprezenta caracteristicile categoriale ca numere, trebuie să realizăm codificarea categorială. Unele dintre metodele de transformare a caracteristicilor categoriale în numere sunt următoarele:
1. Codificare one-hot: – Codificare one-hot creează o nouă caracteristică care ia o valoare (fie 0, fie 1) pentru fiecare etichetă dintr-o caracteristică categorială. Această nouă caracteristică indică dacă acea etichetă a categoriei este prezentă pentru fiecare observație. De exemplu, să presupunem că există 4 etichete într-o caracteristică categorială, apoi, la aplicarea unei codări fierbinți, ar crea 4 caracteristici booleene.
Aceeași cantitate de informații poate fi extrasă și cu 3 caracteristici, ca și cum toate caracteristicile ar conține 0, atunci valoarea caracteristicii categoriale ar fi a 4-a etichetă. Aplicarea acestei metode mărește spațiul de caracteristici dacă există multe caracteristici categorice cu un număr mare de etichete în setul de date.
2. Codificarea frecvenței: – Această metodă calculează numărul sau procentul fiecărei etichete din caracteristica categorială și o mapează cu aceeași etichetă. Această metodă nu extinde spațiul de caracteristici al setului de date. Un dezavantaj al acestei metode este că, dacă cele două sau mai multe etichete au același număr în setul de date, ar da hărții același număr pentru toate etichetele. Acest lucru ar duce la pierderea de informații esențiale.
3. Codificare ordinală: – Cunoscută și ca codificare Label, această metodă mapează valorile distincte ale unei caracteristici categoriale cu un număr care variază de la 0 la n-1, n fiind numărul distinct de etichete din caracteristică. Această metodă nu mărește spațiul de caracteristici al setului de date. Dar creează o relație ordinală în cadrul etichetelor dintr-o caracteristică.
4. Gestionarea valorilor aberante
Valorile aberante sunt punctele de date ale căror valori sunt foarte diferite de restul lotului. Pentru a gestiona aceste valori aberante, trebuie să le detectăm mai întâi. Le putem detecta folosind vizualizări precum box-plot și scatter-plot în Python sau putem folosi intervalul interquartile (IQR). Intervalul intercuartil este diferența dintre primul trimestru (percentila 25) și trimestrul al treilea (percentila 75).
Valorile care nu se încadrează în intervalul (Q1 – 1,5*IQR) și (Q3 + 1,5*IQR) sunt denumite valori aberante. După detectarea valorii aberante, le putem gestiona eliminându-le din setul de date, aplicând o anumită transformare, tratându-le ca valori lipsă pentru a le imputa folosind o metodă, etc.
5. Scalarea caracteristicilor
Scalarea caracteristicilor este utilizată pentru a modifica valorile caracteristicilor și pentru a le aduce într-un interval. Este important să aplicăm acest proces dacă folosim algoritmi precum SVM, regresie liniară, KNN etc. care sunt sensibili la mărimea valorilor. Pentru a scala caracteristicile, putem efectua standardizare, normalizare, scalare min-max. Normalizarea redimensionează valorile unui interval de caracteristici de la -1 la 1. Este raportul dintre scăderea fiecărei observații și media la scăderea valorii maxime și minime a acelei caracteristici. adică [X – medie(X)]/[max(X) – min(X)].
În scalarea min-max, folosește valoarea minimă a caracteristicii în loc de medie. Această metodă este foarte sensibilă la valori aberante, deoarece ia în considerare doar valorile finale ale caracteristicii. Standardizarea redimensionează valorile unei caracteristici de la 0 la 1. Nu normalizează distribuția datelor, în timp ce metoda anterioară o va face.
6. Gestionarea variabilelor de dată și oră
Ne întâlnim cu multe variabile care indică data și ora în diferite formate. Putem obține mai multe caracteristici din dată, cum ar fi luna, ziua săptămânii/lunii, anul, weekendul sau nu, diferența dintre date etc. Acest lucru ne poate permite să extragem informații mai perspicace din setul de date. Din funcțiile de timp, putem extrage și informații precum ore, minute, secunde etc.
Un lucru pe care majoritatea oamenilor îl ratează este că toate variabilele de dată și oră sunt caracteristici ciclice. De exemplu, să presupunem că trebuie să verificăm ce zi dintre miercuri (3) și sâmbătă (7) este mai aproape de duminică (fiind un 1). Acum știm că sâmbăta este mai aproape, dar în termeni numerici, va fi o zi de miercuri deoarece distanța dintre 3 și 1 este mai mică decât cea de 7 și 1. Același lucru se poate aplica și când formatul de oră este în format de 24 de ore.
Pentru a rezolva această problemă, putem exprima aceste variabile ca o reprezentare a funcției sin și cos. Pentru caracteristica „minut”, putem aplica funcția sin și cos folosind NumPy pentru a o reprezenta în natură ciclică, după cum urmează:
minute_feature_sin = np.sin(df['minute_feature']*(2*π/60))
minute_feature_cos = np.cos(df['minute_feature']*(2*π/60))
(Notă: Împărțirea la 60 pentru că într-o oră sunt 60 de minute. Dacă vrei să o faci luni de zile, împarte la 12 și așa mai departe)
Prin trasarea acestor caracteristici pe un grafic de dispersie, veți observa că aceste caracteristici prezintă o relație ciclică între ele.
Citește și: Idei și subiecte pentru proiecte de învățare automată
Concluzie
Articolul s-a concentrat pe importanța ingineriei caracteristicilor alături de citarea unor tehnici comune utilizate în procesul de inginerie a caracteristicilor. Depinde de algoritm și de datele disponibile să se decidă care tehnici din toate cele enumerate mai sus ar oferi informații mai bune.
Dar aceasta este într-adevăr o captură dificilă și nu este sigur de presupus, deoarece seturile de date pot fi diferite, iar algoritmii utilizați pentru date pot varia, de asemenea. Cea mai bună abordare este să urmați o abordare incrementală și să țineți o evidență a modelelor care au fost construite împreună cu rezultatele lor, mai degrabă decât să efectuați ingineria caracteristicilor în mod imprudent.
Dacă sunteți interesat să aflați mai multe despre învățarea automată, consultați Programul Executive PG de la IIIT-B și upGrad în Învățare automată și IA, care este conceput pentru profesioniști care lucrează și oferă peste 450 de ore de formare riguroasă, peste 30 de studii de caz și sarcini, IIIT -B Statut de absolvenți, peste 5 proiecte practice practice și asistență pentru locuri de muncă cu firme de top.
Care sunt dezavantajele utilizării tehnicii de imputare a datelor bazate pe mediană?
Când se utilizează imputarea medie, legăturile și corelațiile dintre variabile nu sunt păstrate. Dar imputarea mediei menține media datelor observate. Ca rezultat, chiar dacă toate datele ar lipsi la întâmplare, estimarea medie ar rămâne imparțială. Varianta variabilelor imputate este redusă utilizând imputarea medie. Imputarea medie reduce erorile standard, făcând inexacte majoritatea testelor de ipoteză și a calculelor intervalului de încredere. Astfel, erorile de tip I sunt făcute inconștient.
De ce este necesară extragerea caracteristicilor?
Extragerea caracteristicilor este utilizată pentru a localiza cea mai mică și mai informativă colecție de caracteristici (modele distincte) pentru a îmbunătăți eficacitatea clasificatorului. Extragerea caracteristicilor ajută la reducerea datelor inutile într-o colecție de date, astfel încât accentul să fie pus doar pe informațiile și caracteristicile relevante. În cele din urmă, reducerea datelor facilitează ca mașina să dezvolte modelul cu mai puțin efort, precum și accelerează procesele de învățare și generalizare în procesul de învățare automată. Cea mai importantă aplicație a ingineriei caracteristicilor este în clasificarea semnalelor biomedicale, unde extracția caracteristicilor este un element important, deoarece dacă caracteristicile nu sunt alese cu grijă, performanța clasificării ar putea avea de suferit.
Există dezavantaje ale utilizării tehnicii de extragere a caracteristicilor?
Extragerea caracteristicilor a venit cu câteva funcții noi care nu pot fi citite sau înțelese de oamenii obișnuiți. Scalabilitatea este o altă provocare cu care se confruntă în timpul extragerii caracteristicilor. Dacă seturile de date sunt mari, unele tehnici de extragere a caracteristicilor nu vor putea fi executate. Abordările complexe de extracție a caracteristicilor neliniare, în special, ar fi imposibil de implementat. Majoritatea tehnicilor se bazează pe o anumită formă de aproximare pentru a gestiona problema de selecție a caracteristicilor în mod eficient, care în anumite situații este incapabilă să abordeze problema precisă.