Ugrás a tartalomhoz

random forest

A Wikiszótárból, a nyitott szótárból


Főnév

random forest (tsz. random forests)

  1. (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?

  1. Bootstrap mintavételezés: minden fa egy véletlenszerűen kiválasztott, visszatevéses adathalmazon tanul (bagging).
  2. 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.
  3. Több fa épül, minden más adathalmazon és változóhalmazon
  4. 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 szembenNem igényel normalizálást vagy skálázástKevesebb 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ényLassabb 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