random forest
Megjelenés
Főnév
random forest (tsz. random forests)
- (informatika, mesterséges intelligencia) Random Forest – magyarul: véletlen erdő – egy összetett gépi tanulási algoritmus, amely a döntési fák (decision trees) együtteséből áll, és az egyik legismertebb ensemble learning (együttes tanulás) technika. Célja, hogy sok gyenge döntési fát kombinálva erős, robusztus és pontos predikciót nyújtson.
🌳 1. Alapötlet
A Random Forest több döntési fát hoz létre különböző adatmintákon és jellemzőhalmazokon, majd az összes fa eredményét kombinálja (pl. többségi szavazás vagy átlagolás).
- Osztályozásnál: többségi szavazás
- Regressziónál: átlagolás
🧩 2. Hogyan működik?
- Bootstrap mintavételezés: minden fa egy véletlenszerűen kiválasztott, visszatevéses adathalmazon tanul (bagging).
- Véletlen jellemzőválasztás: minden faépítési lépésnél csak az adatok egy részét vizsgálja a leghasznosabb split kiválasztásához.
- Több fa épül, minden más adathalmazon és változóhalmazon
- Predikció: a fák eredményét kombináljuk:
- Osztályozás: szavazással
- Regresszió: átlagolással
📊 3. Előnyök
✅ Pontosság: jellemzően jobb, mint egyetlen döntési fa ✅ Robusztus zajos adatokkal szemben ✅ Nem igényel normalizálást vagy skálázást ✅ Kevesebb túltanulás (overfitting), mint egy sima döntési fa esetén ✅ Fontossági mutatókat ad a változókhoz (feature importance)
⚠️ 4. Hátrányok
❌ Kevésbé értelmezhető, mint egyetlen döntési fa ❌ Nagyobb memóriaigény ❌ Lassabb predikció, ha sok fa van
🧮 5. Paraméterek (scikit-learn-ben)
| Paraméter | Jelentés |
|---|---|
n_estimators |
A fák száma |
max_depth |
Fa mélységének korlátozása |
max_features |
Hány jellemzőt használhat egy splitnél |
bootstrap |
Bootstrap mintavételezést használ-e |
random_state |
Reprodukálhatóság beállítása |
🐍 6. Python példa (osztályozás)
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
print("Pontosság:", model.score(X_test, y_test))
🔍 7. Változók fontossága
import matplotlib.pyplot as plt
importances = model.feature_importances_
plt.bar(range(len(importances)), importances)
plt.title("Változók fontossága")
plt.show()
🎯 8. Alkalmazások
- 🌾 Mezőgazdaság: növénybetegségek előrejelzése
- 🏥 Egészségügy: betegségek osztályozása
- 🏠 Ingatlan: árbecslés, vásárlási minták
- 📊 Pénzügy: hitelminősítés, csalásdetekció
- 📷 Képfeldolgozás: objektumosztályozás
🧾 9. Összefoglalás
A Random Forest:
- Egy összetett, ensemble-alapú algoritmus, amely sok döntési fa segítségével jósol
- Pontos, megbízható, kevésbé hajlamos túltanulásra
- Kiváló kiindulási modell klasszifikációs és regressziós feladatokra
- random forest - Szótár.net (en-hu)
- random forest - Sztaki (en-hu)
- random forest - Merriam–Webster
- random forest - Cambridge
- random forest - WordNet
- random forest - Яндекс (en-ru)
- random forest - Google (en-hu)
- random forest - Wikidata
- random forest - Wikipédia (angol)