Acest articol oferă o analiză aprofundată a învățării automate și a ciclului de viață end-to-end al creării modelelor ML. Suntem cu toții conștienți de ceea ce pot face modelele de învățare automată și sunt capabile de unele dintre cele populare sunt prezicerea acțiunilor, filtrarea e-mailurilor spam și tranzacționarea pe bursă, pentru a numi câteva... Pentru a începe să lucrați la astfel de declarații de problemă, există un ciclu de viață pentru care se ocupă de toate secțiunile de lucru pe care trebuie să le faceți pentru a rula un model de învățare automată, de la date până la implementare.

Principalele secțiuni care se ocupă de învățarea automată end-to-end sunt următoarele:

I. Declarația problemei

II. Date + EDA

III. Curățarea datelor

IV. Instruire și testare

V. Desfăşurare

I. Declarația problemei

Deși există multe enunțuri de problemă în lumea reală, nu toate pot fi rezolvate folosind tehnici de învățare automată, unele pot fi rezolvate folosind tehnologii software simple sau complexe fără a utiliza niciun cod de învățare automată. Unii dintre factorii atunci când luați în considerare enunțul problemei:

A. Problemele de învățare automată au, de obicei, nevoie de multe date cu care să se antrenezepentru a produce o precizie și rezultate deosebite atunci când sunt testate. Dacă o anumită declarație de problemă nu conține multe date legate de problemă, modelele pot produce o precizie scăzută sau pot duce la „probleme de potrivire”.

II. Date + Analiza Explorativă a Datelor (EDA)

A doua secțiune cuprinde două părți principale și anume date și EDA. După cum sa discutat mai sus, orice model de învățare automată are nevoie de o mulțime de date de calitate pentru a se antrena. Colectarea datelor pentru modelul dvs. este cunoscută sub numele de colectare de date

Colectarea datelor:datele reprezintă o colecție de fapte. datele pot fi de orice tip, adică rânduri și coloane (tabele), JSON, imagini, videoclipuri, text, audio etc... În general, modelele ML tratează informații tabelare numite formal fișiere .csvdar pot exista cazurile în care trebuie să utilizați o formă nestructurată de date, cum ar fi fișierele JSON eliminate de pe site-uri web, date din baze de date folosind interogări etc... Vom discuta despre cum să colectăm date în articolele viitoare.

EDA: poate cea mai importantă parte a învățării automate end-to-end. După ce am colectat datele din diverse surse și metode, acum avem o grămadă de rânduri și coloane de care să ne ocupăm (pentru discuții ulterioare vom considera datele ca fișiere .csv, adică date tabulare). EDA este împărțit în două părți:

1. Analiza univariată

2. Analiza bivariată

După cum sugerează și numele, aceste analize sunt efectuate pe o singură caracteristică/coloană (sau) două sau mai multe caracteristici/coloane combinate.

În analiza univariată, fiecare coloană este analizată pentru a vedea dacă coloana conține valori lipsă, tip necorespunzător de date, valori aberante etc... Orice tip de date este împărțit în două categorii, adică categoriale și numerice. În tipurile de date categorice, datele vorbesc despre categoria în care se află datele, de ex. Bărbat/Femeie, nota A/B/C, țara (SUA/IN/GB), poziția (CEO/CFO), etc... Instrumentele de vizualizare precum Matplot oferă o perspectivă mult mai mare decât doar analiza datelor. Folosind diagrame precum countplot, piechart, histplot etc... putem vizualiza aceste coloane și afla mai multe despre ele cu precizie.

În Analiza bivariată,două sau mai multe coloane sunt analizate împreună, cum ar fi experiența vs salariu, pentru a obține o mai bună înțelegere a acestor coloane și a modului în care sunt„corelate”una cu cealaltă. Cunoașterea relației dintre caracteristici este foarte importantă în acest proces, deoarece ne ajută în procesul de selecție a caracteristicilor. folosind grafice precum scatter, box plot, histplot, etc... putem vizualiza aceste coloane.

Vom discuta în detaliu despre EDA în articolele viitoare.

III. Curățarea datelor

Poate cel mai mult timp pentru orice analist de date/om de știință care se ocupă de date în timp real.Niciun set de date nu este perfect(ce linie filmoasă 😉) Fiecare set de date are unele imperfecțiuni, cum ar fi valori lipsă, valori aberante etc... Trimiterea datelor curate într-un model de învățare automată este foarte necesară. Regula de aur în ML este:

Intră gunoiul... Gunoiul afară..adică. dacă trimiteți date curățate la un model Ml mediu, acesta funcționează mult mai bine decât un model ml bun cu date necurățate.

Unele dintre curățările comune de date pe care trebuie să le efectuați sunt:

a. Valoare lipsă: este necesară gestionarea valorilor lipsă, deoarece un model ML se poate încurca atunci când sunt prezente valori lipsă. Gestionarea valorilor lipsă se poate face în mai multe moduri. Unele dintre modalitățile populare de a trata sunt (i) eliminați întreaga coloană și (ii) folosițiimputerele din sckit-learn.

b. Eliminați coloanele și duplicatele:După efectuarea EDA pe setul de date, puteți comunica că există câteva coloane care nu au nicio semnificație în model, astfel de coloane pot fi eliminate din setul de date. de ex. ID-ul unui angajat, ID-ul comenzii în Amazon, etc... Unele rânduri pot fi duplicate din cauza unei erori de introducere a datelor, aceste rânduri trebuie eliminate deoarece dublează doar datele dvs., ceea ce duce la performanța scăzută a modelului.

c. Incorecte și irelevante: Unele dintre date pot fi incorecte, de exemplu, pentru valori -ve pentru prețul mașinii pe care trebuie să le gestionați independent. Pentru datele categorice, trebuie să petreceți timp analizând valoarea unică dintr-o coloană, de ex. coloana de culoare conține albastru, albastru, albastru, albastru etc... din punct de vedere tehnic, toate sunt caracteristici diferite pentru modelul ML, dar practic toate sunt aceleași caracteristici.

d. Date categorice:modelele ML sunt în general alimentate cu date numerice. Modelele Ml nu înțeleg importanța categorică a valorilor, prin urmare, trebuie să le convertiți în clase numerice de ex. culoarea albastru și roșu pot fi convertite în clasele numerice 1,2, respectiv. Există multe tehnici de codare, cum ar fio codificare la cald, codificare etichetă, codificare binară, codificare țintă, codificare ordinală etc...

În această etapă, se recomandă, de asemenea, la ce algoritm veți lucra, deoarece algoritmii bazați pe arbore nu au nevoie de detectare sau scalare a valorii aberante.

e. Detectare valori aberante:Valori abere sunt punctele de date din setul dvs. de date care se află la o distanță anormală de alte valori din eșantion(aflați mai multe aici).Orice valorile aberante care sunt detectate trebuie eliminate din setul de date.Nu sunt necesare pentru algoritmii bazați pe arbore.

f. Selectarea caracteristicilor:Numai un anumit subset al celor mai informative variabile sunt utilizate și introduse în model. Acest lucru ajută modelul să funcționeze mai precis și poate avea costuri de calcul mai mici și viteză îmbunătățită. Tehnica pe care trebuie să le selectați caracteristicile pentru un model bun constă în cunoașterea domeniului de declarație a problemei, experiență, încercare și eroare.

g. Scalare caracteristică:Acesta este ultimul pas al procesării datelor care se ocupă cu scalarea datelor la aceeași scară. Algoritmii bazați pe distanță se pot confrunta cu o problemă în care valorile coloanei sunt foarte mari pentru a calcula distanțe, de ex. (vârstă, salariu) distanțele pot fi foarte mari, deoarece la o vârstă de 35 de ani, salariul poate fi de 35L sau cam așa ceva. Acest lucru poate fi obținut folosind tehnici de standardizare și normalizare. Nu este necesar pentru algoritmii bazați pe arbore.

Ordinea în care urmează să fie efectuate metodele de mai sus nu este sigură și se poate modifica în consecință în ceea ce privește enunțul problemei. Vom afla mai multe în detaliu despre fiecare metodă în articolele viitoare.

IV. Instruire și testare

După efectuarea metodelor de mai sus pentru a obține date curățate, acum datele trebuie introduse în modelele de învățare automată. Înainte de antrenament, trebuie să efectuați câțiva pași importanți:

a. Divizarea de validare:Înainte de a introduce datele în model, datele sunt, în general, împărțite în 2 părți, adică date de antrenament și date de validare (uneori și set de testare). Un model ML învață folosind doar datele de antrenament. Setul de validare este utilizat pentru a evalua performanța modelului, oferind cât de precise sunt predicțiile asupra setului de date. Pot fi aplicate tehnici mai avansate, cum ar fi „k-fold cross-validation”.

b. Modelare:În prezentarea generală, modelele ML pot fi clasificate în 2 categorii și anume (i) Învățare supravegheată și (ii) Învățare nesupravegheată. Înînvățarea supravegheată datele de intrare și de ieșire sunt prezente în setul de date. Putem efectua operații cum ar fi regresia și clasificarea în care ieșirea este numerică și, respectiv, categorială. În învățarea nesupravegheată,în setul de date sunt date numai datele de intrare. Putem efectua operații precum gruparea, reducerea dimensionalității, reducerea anomaliilor etc... Informații aprofundate și intuiție matematică asupra diferitelor modele pot fi găsite în diverse articole.

c. Rezultate și reglare:După antrenamentul și validarea setului de date, veți obține acuratețea modelului antrenat. în general, un model de ml bun este considerat a avea o precizie de aproximativ 95% fără probleme de potrivire.

O precauție importantă pe care ar trebui să o aveți în timp ce modelați estecompromisul bias-variance. (Aflați mai multe aici)

V. Implementare

Uau, am efectuat o mulțime de operațiuni pentru a crea un model ML bun și precis. Acum faceți un alt pas înainte și implementați modelul dvs. ML și utilizați-l pentru a vă rezolva problema, de ex. pentru detectarea spam-ului, detectarea fraudei cu cardul de credit, tranzacționarea acțiunilor etc... Există multe modalități de a vă implementa modelele ml în aplicația dvs., cum ar fi. fișiere pl (pickle), API rapid, TensorFlow lite pentru aplicații mobile, etc...

Sper că vă place articolul 😉 Urmărește-mă pe Medium și LinkedIn pentru mai multe articole despre ML.