decision tree
Főnév
decision tree (tsz. decision trees)
A döntési fa egy hierarchikus adatstruktúra és szabályalapú döntési modell, amelyet elsősorban osztályozási és regressziós problémák megoldására használnak a gépi tanulásban és a mesterséges intelligenciában. Úgy működik, mint egy sor ha-akkor szabály, amelyek végül elvezetnek egy döntéshez.
Olyan, mint egy fa:
- Gyökércsomópont (root): itt kezdődik a döntés
- Belső csomópontok: itt történik az attribútumok (jellemzők) szerinti döntés
- Levélcsomópontok (levelek): ezek az osztályok (pl. „igen”, „nem”, „piros”, „kék”) vagy előrejelzett értékek (számok)
2. Mikor használjuk a döntési fát?
A döntési fa rendkívül sokoldalú és érthető modell. Alkalmas:
- Osztályozásra: pl. “Beteg vagy egészséges?”, “Spammel vagy nem?”
- Regresszióra: pl. “Mi lesz a várható árfolyam?”, “Hány darabot adunk el?”
- Döntéshozatalra: pl. üzleti döntések logikai leképezésére
- Játékstratégiákra: például sakk, kártyajátékok döntései
3. A döntési fa felépítése
Példa: Egy egyszerű döntési fa
Esik az eső? ├── Igen → Van esernyőd? │ ├── Igen → Menj ki! │ └── Nem → Maradj otthon! └── Nem → Menj ki!
Itt minden kérdés egy belső csomópont, a válaszok pedig a levélcsomópontok.
4. Hogyan épül fel egy döntési fa?
A faépítés során az algoritmus a tanuló adatokat elemzi, és olyan jellemzők (attribútumok) szerint „vágja fel” az adatokat, amelyek a legjobban szétválasztják az osztályokat.
A kulcsfogalmak:
- Szeparálhatóság: mennyire jól különböztethetők meg az osztályok az adott jellemző mentén
- Információnyereség (information gain): mennyi információt nyerünk az adott tulajdonság szerinti szétválasztással
- Gini-index, entropia: mértékek az adathalmaz „tisztaságának” értékelésére
5. Például: ID3 algoritmus (osztályozáshoz)
Lépések:
- Számolja ki az entropiát az osztályokra (pl. igen/nem arány)
- Minden jellemző esetén számolja ki az információnyereséget
- Válassza ki azt a jellemzőt, amelyik legnagyobb információnyereséggel jár
- Az új csomópont gyökerén ezt a jellemzőt használja → ágaztatás
- Ismételje a lépéseket rekurzívan az almintákon
6. Döntési fa algoritmusok
Többféle algoritmus létezik a fa felépítésére:
| Algoritmus | Jellemzői |
|---|---|
| ID3 | Entropia és információnyereség alapján |
| C4.5 | ID3 továbbfejlesztett változata; folyamatos értékek, metszés |
| CART | Klasszikus bináris döntési fa; Gini-indexet használ |
| CHAID | Kategóriákon végzett statisztikai tesztelés alapján ágaztat |
| Random Forest | Több döntési fa együttese, ahol a döntés többségi szavazáson alapul |
7. Előnyök és hátrányok
✅ Előnyök:
- Könnyen érthető és értelmezhető (nincs szükség matematikai háttérre)
- Gyors tanulás és gyors előrejelzés
- Nem igényel sok adatátalakítást (pl. normalizálást)
- Kezeli a kategóriákat és számokat is
❌ Hátrányok:
- Túlilleszkedésre (overfitting) hajlamos, főleg nagy mélységű fák esetén
- Nem mindig stabil: egy kis változás az adatban más fát eredményezhet
- Kevésbé pontos mint komplex modellek (pl. neurális hálók), hacsak nem kombinálják (pl. Random Forest, Boosting)
8. Metszés (Pruning)
A túlságosan részletes (mély) döntési fák túlilleszkedhetnek az adatra. Ezért használunk:
- Pre-pruning: leállítjuk az ágaztatást, ha már nem érdemes folytatni
- Post-pruning: utólag visszavágjuk a fát, ahol már túl sok az adatfüggés
Cél: általánosítás javítása, azaz ne csak a tanuló adatra működjön jól, hanem új adatokra is.
9. Regressziós döntési fa
Ha a célváltozó nem kategória, hanem szám, akkor a döntési fa regressziós módban működik. Itt minden levélcsomópont egy előrejelzett számértéket tartalmaz (pl. átlagot), nem osztályt.
10. Példák a használatára
📊 Adatbányászatban
- Ügyfél viselkedésének modellezése (pl. vásárol-e?)
- Hitelképesség elemzése
- Egészségügyi diagnosztika
🤖 Gépi tanulásban
- Adatelőkészítés, jellemző kiválasztás
- Több modell (ensemble) része
🎮 Játékokban
- Játékstratégiák modellezése (pl. sakk döntési fák)
11. Gyakorlati implementáció (Python)
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
X, y = load_iris(return_X_y=True)
clf = DecisionTreeClassifier()
clf.fit(X, y)
# Előrejelzés
print(clf.predict([[5.1, 3.5, 1.4, 0.2]]))
A sklearn.tree modul képes grafikusan is megjeleníteni a döntési fát.
12. Összefoglalás
A döntési fa egy átlátható, fa-struktúrájú modell, amely könnyen tanulható és alkalmazható sokféle feladatra. Használható önmagában vagy más algoritmusokkal kombinálva (pl. Random Forest, Gradient Boosted Trees).
- decision tree - Szótár.net (en-hu)
- decision tree - Sztaki (en-hu)
- decision tree - Merriam–Webster
- decision tree - Cambridge
- decision tree - WordNet
- decision tree - Яндекс (en-ru)
- decision tree - Google (en-hu)
- decision tree - Wikidata
- decision tree - Wikipédia (angol)