Sobes.tech
Middle — Senior

Hogyan használjuk a keresztvalidációt egy modell értékelésére?

sobes.tech MI

Válasz az MI-től

A keresztvalidáció egy olyan módszer a gépi tanulási modell minőségének értékelésére, amely segít ellenőrizni, hogy a modell mennyire fog jól működni új adatokon. A fő ötlet az, hogy az eredeti adathalmazt több részre (folds) osztjuk, a modellt néhány részen tanítjuk, és a többi részen teszteljük.

A leggyakoribb változat a k-fold keresztvalidáció:

  1. Oszd fel az adatokat k egyenlő részre.
  2. Minden k rész esetében:
    • Tanítsd a modellt a többi k-1 részen.
    • Teszteld a modellt az aktuális részen (validációs készlet).
  3. Az összes k iteráció metrikáinak átlaga megbízhatóbb értékelést ad a modell minőségéről.

Ez segít elkerülni a túlillesztést, és objektívebb értékelést nyújt, mint egyszerűen az edzés- és tesztkészletek felosztása.

Python példával scikit-learn használatával:

from sklearn.model_selection import cross_val_score
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris

iris = load_iris()
X, y = iris.data, iris.target
model = RandomForestClassifier()
scores = cross_val_score(model, X, y, cv=5)  # 5-féle keresztvalidáció
print(f"Átlagos pontosság: {scores.mean():.2f}")