Mi a felügyelt tanulás?
A felügyelt tanulásban (supervised learning) minden tanítómintához tartozik egy előre ismert célérték — a modell ezekből tanul összefüggést, majd ismeretlen adatokra alkalmazza a megtanult mintákat. Ez a gépi tanulás legelterjedtebb formája.
Két fő feladattípusra osztható:
- Regresszió: folyamatos értéket kell előre jelezni. Pl. ház eladási ára a jellemzők alapján.
- Osztályozás: valamelyik kategóriába kell sorolni a bemenetet. Pl. e-mail spam vagy nem spam.
Lineáris regresszió
A lineáris regresszió a legegyszerűbb felügyelt tanulási módszer. Feltételezi, hogy a céljegy és a jellemzők között lineáris kapcsolat áll fenn. Az összefüggést a legkisebb négyzetek módszerével illeszti az adatpontokhoz.
Erőssége az értelmezhetőség: az egyes jellemzők hatása közvetlenül leolvasható az együtthatókból. Korlátja, hogy nemlineáris összefüggéseket nem képes megragadni.
# Lineáris regresszió sklearn-nel
from sklearn.linear_model import LinearRegression
import numpy as np
# Lakásár előrejelzés: alapterület (m²) → ár (millió Ft)
X = np.array([[45], [60], [80], [100], [130]])
y = np.array([18.5, 24.0, 31.5, 42.0, 55.0])
model = LinearRegression()
model.fit(X, y)
pred = model.predict([[90]])
print(f"90 m²-es lakás becsült ára: {pred[0]:.1f} millió Ft")
Logisztikus regresszió
Nevével ellentétben a logisztikus regresszió osztályozásra való. A sigmoid függvényen keresztül egy 0 és 1 közötti valószínűséget ad vissza, amelyből bináris döntés hozható. Bináris osztályozásnál (igen/nem, spam/nem spam) széles körben alkalmazzák, részben mert az eredmény jól érttelmezhető valószínűségként.
Döntési fák
A döntési fa (decision tree) egy fastruktúrájú modell: minden csomópontban egy jellemző szerint ágazik el, a levelekben az osztálycímkék vagy értékek találhatók. Könnyen értelmezhető, és mind osztályozási, mind regressziós feladatokra alkalmas.
Hátránya, hogy mélyen növesztve hajlamos túlillesztésre. Ezt a véletlen erdő (random forest) oldja meg: sok döntési fa szavazásán alapuló együttesmodell (ensemble method), amely általánosabb és robusztusabb eredményt ad.
Magyarországi kontextus: A Budapest AI meetupok és a magyarországi data science konferenciák (pl. a MLConf Europe anyagaiban) a véletlen erdő és a gradient boosting módszerek tűnnek a leggyakrabban használt eszközöknek a hazai üzleti alkalmazásokban — elsősorban pénzügyi kockázatértékelésben és ügyfélszegmentációban.
Support Vector Machine (SVM)
Az SVM egy szeparáló hipersíkot keres az adatban, amely a két osztályt a lehető legnagyobb margóval választja el. Ha az adatok nem lineárisan szeparálhatók, kernel-trükkel magasabb dimenziós térbe transzformálja őket, ahol már megtalálható a szeparáló sík.
Kisebb adathalmazokra és nagy dimenziójú adatokra (pl. szövegbesorolás) különösen hatékony, azonban a paraméterek hangolása (C, gamma, kernel-típus) gondos munkát igényel.
K-nearest neighbors (KNN)
A KNN tanulatlan algoritmus: nem épít explicit modellt, hanem az előrejelzéskor a legközelebbi k szomszéd alapján szavaz. Egyszerű és intuitív, de nagyobb adathalmazokra lassú, mivel minden jósláshoz végig kell nézni az összes tanítópéldát.
Kiértékelés: confusion matrix és ROC-görbe
Osztályozási feladatoknál a tévesztési mátrix (confusion matrix) megmutatja, hány esetben volt helyes és hány esetben téves a modell döntése. A ROC-görbe (Receiver Operating Characteristic) az igaz pozitív arány és a hamis pozitív arány viszonyát mutatja különböző küszöbértékeknél, és az AUC (görbe alatti terület) összefoglalóan jellemzi a modell teljesítményét.
# Döntési fa osztályozó és kiértékelés
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report
clf = DecisionTreeClassifier(max_depth=4, random_state=42)
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
print(classification_report(y_test, y_pred))
Melyik algoritmust válasszuk?
Nincs egyetlen legjobb algoritmus minden feladathoz — ezt fogalmazza meg a „no free lunch" tétel a gépi tanulásban. A választásnál érdemes figyelembe venni az adathalmaz méretét, a jellemzők számát és típusát, az értelmezhetőség iránti igényt, illetve a rendelkezésre álló számítási kapacitást.
Kis adathalmaz és értelmezhetőség igénye esetén logisztikus regresszió vagy döntési fa ajánlott. Nagyobb, komplexebb adatoknál a gradient boosting (XGBoost, LightGBM) és a random forest mutatja a legjobb eredményeket strukturált adatokon.