Supervizat, nesupervizat, prin întărire

Subiect din roadmap-ul Machine Learning · parte din „Introducere în machine learning”

În machine learning, tipul de învățare determină cum modelul „învață” din date. Alegerea corectă între supervizat, nesupervizat și prin întărire este crucială pentru succesul unui proiect real, deoarece dictează arhitectura soluției, calitatea datelor necesare și metricile de evaluare. În practică, majoritatea problemelor de business (fraudă, vânzări) folosesc învățarea supervizată, în timp ce segmentarea clienților folosește cea nesupervizată. Înțelegerea acestor nuanțe te ajută să eviți pierderea timpului cu algoritmi inapropriați.

Concepte cheie

  • Învățare Supervizată: Modelul învață din date etichetate, unde input-ul este asociat cu output-ul corect, fiind ideală pentru predicții și clasificări.
  • Învățare Nesupervizată: Datele nu au etichete; algoritmul caută structuri ascunse, cluster-uri sau anomalii naturale în setul de date brut.
  • Învățarea prin Întărire (RL): Un agent învață prin interacțiune cu un mediu, primind recompense sau penalități pentru acțiuni, nu dintr-un dataset static.
  • Etichetarea Datelor: Procesul critic în învățarea supervizată, care poate fi costisitor și necesită adesea intervenție umană sau generare automată.
  • Funcția de Recompensă: În RL, această funcție ghidează agentul spre comportamentul dorit, definind scopul final al sistemului.
  • Explorare vs. Exploatare: Dilema fundamentală în RL între încercarea unor acțiuni noi (explorare) și utilizarea celor care funcționează deja (exploatare).
  • Generalizarea: Capacitatea modelului de a performa bine pe date necunoscute, nu doar pe cele din timpul antrenamentului.

Exemplu practic

Să presupunem că vrei să construiești un sistem de recomandare pentru un magazin online. Dacă ai istoricul cumpărăturilor cu etichete („a cumpărat”, „nu a cumpărat”), folosești învățare supervizată (clasificare binară). Codul simplu cu scikit-learn ar arăta astfel:

from sklearn.ensemble import RandomForestClassifier
# X = features (istoric, vârstă), y = target (cumpărătură)
model = RandomForestClassifier()
model.fit(X_train, y_train)
predictions = model.predict(X_test)

Dacă nu ai etichete și vrei să grupezi clienții după comportament similar, folosești K-Means (nesupervizat). Pentru un robot care învață să meargă, folosești RL, unde robotul primește +1 punct când stă în picioare și -1 când cade.

Greșeli frecvente

  1. Aplicarea supervizată pe date nesupravegheate: Încercarea de a antrena un model de clasificare fără etichete valide duce la rezultate aleatorii și neinterpretabile.
  2. Ignorarea calității datelor: În învățarea supervizată, „garbage in, garbage out”. Etichetele eronate distorsionează complet modelul.
  3. Confundarea scopurilor RL cu optimizarea clasică: RL nu minimizează direct o eroare statică, ci maximizează recompensa cumulativă pe termen lung, necesitând simulări.
  4. Overfitting la datele de antrenament: Modelul memorează exemplele în loc să învețe reguli generale, eșuând pe date noi.

Întrebări de interviu

  1. Care este diferența principală între învățarea supervizată și cea nesupervizată? Răspuns: Supervizata folosește date etichetate pentru predicție, iar nesupervizata caută tipare în date brute fără etichete.
  2. Când ai folosi învățarea prin întărire în locul unei abordări clasice? Răspuns: Când există un mediu dinamic, interacțiune secvențială și feedback sub formă de recompense/penalizări, nu etichete statice.
  3. Ce problemă rezolvă algoritmul K-Means? Răspuns: Clustering-ul (gruparea) datelor nesupravegheate în K grupuri distincte bazate pe similitudine.

Exercițiu

Alocă 45 de minute pentru a descărca dataset-ul Iris sau Titanic de pe Kaggle. Identifică variabila țintă (target). Scrie un script Python simplu care:

  1. Încarcă datele cu pandas.
  2. Verifică distribuția etichetelor (pentru a confirma că e supervizat).
  3. Antrenează un RandomForestClassifier și evaluează acuratețea pe un test set.
  4. Modifică mental scenariul: cum ai proceda dacă ai avea doar coloanele de caracteristici, fără target? (Descrie pe scurt ce algoritm nesupervizat ai alege).

Resurse gratuite

Alte subiecte din „Introducere în machine learning”