Sobes.tech
Middle — Senior

Come utilizzare la validazione incrociata per valutare un modello?

sobes.tech AI

Risposta dell'AI

La validazione incrociata è un metodo di valutazione della qualità di un modello di apprendimento automatico che aiuta a verificare quanto bene il modello funzionerà su nuovi dati. L’idea principale è dividere il set di dati originale in più parti (folds), addestrare il modello su alcune parti e testarlo sulle altre.

La variante più comune è la validazione incrociata k-fold:

  1. Dividere i dati in k parti uguali.
  2. Per ciascuna delle k parti:
    • Addestrare il modello sulle altre k-1 parti.
    • Testare il modello sulla parte corrente (set di validazione).
  3. La media delle metriche di tutte le k iterazioni fornisce una valutazione più affidabile della qualità del modello.

Questo aiuta a evitare il sovraccarico e a ottenere una valutazione più oggettiva rispetto a una semplice divisione in set di addestramento e test.

Esempio in Python con scikit-learn:

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)  # validazione incrociata a 5 fold
print(f"Precisione media: {scores.mean():.2f}")