Salta el contingut

Selecció i avaluació de models

Marc de decisió per seleccionar un model

Escollir el model adequat és una de les habilitats centrals d'un professional d'IA. No existeix un model universalment millor (teorema No Free Lunch): cada model té fortaleses i debilitats que cal contrastar amb les característiques del problema.

Preguntes clau per a la selecció:

graph TD
    P[Problema] --> Q1{Tenim dades etiquetades?}
    Q1 -->|Sí| Q2{La sortida és contínua\no discreta?}
    Q1 -->|No| Q3{Volem descobrir\nestructura?}
    Q2 -->|Contínua| REG[Regressió\nLinear, RF, XGBoost]
    Q2 -->|Discreta| CLA[Classificació\nSVM, RF, XGBoost, DL]
    Q3 -->|Sí| CLU[Clustering\nK-Means, DBSCAN]
    Q3 -->|No - control| RL[Reforç\nQ-Learning, PPO]
    Q1 -->|Interacció amb entorn| RL

Criteris de selecció

Criteri Descripció Impacte en la decisió
Mida del dataset Pocs exemples → models simples; molts → DL Regressió lineal amb 100 exemples; DL amb milions
Interpretabilitat Cal explicar la decisió? (mèdic, jurídic) Arbres de decisió > xarxes neuronals
Temps d'inferència Cal resposta en temps real (<10ms)? Models lleugers, no LLMs grans
Recursos computacionals GPU disponible? DL requereix GPU; RF funciona en CPU
Tipus de dades Tabular, imatge, text, sèrie temporal Tabular → XGBoost; Imatge → CNN; Text → Transformer
Llindar d'error Quin cost té una predicció errònia? Alta precisió en diagnòstic; alt recall en detecció de frau

Criteris generals d'avaluació

Mètriques de classificació: - Accuracy: proporció d'exemples correctament classificats (enganyosa amb classes desequilibrades) - Precision: dels positius predits, quants eren realment positius - Recall (Sensibilitat): dels positius reals, quants hem detectat - F1-Score: mitjana harmònica de precision i recall - AUC-ROC: àrea sota la corba ROC (capacitat de discriminació)

Mètriques de regressió: - MAE (Mean Absolute Error): error mig en unitats originals - RMSE (Root Mean Square Error): penalitza més els errors grans - : proporció de variança explicada (1 = perfecte, 0 = igual que la mitjana)

Validació creuada (Cross-Validation):

from sklearn.model_selection import cross_val_score
from sklearn.ensemble import GradientBoostingClassifier

model = GradientBoostingClassifier()
scores = cross_val_score(model, X, y, cv=5, scoring='f1_macro')
print(f"F1 mitjà: {scores.mean():.3f} ± {scores.std():.3f}")

Trampes habituals en l'avaluació

  • Data leakage: informació del test contamina l'entrenament
  • Overfitting: el model memòria el conjunt d'entrenament però no generalitza
  • Mètriques inadequades: usar accuracy en problemes amb classes molt desequilibrades (99% negatiu, 1% positiu)
  • Comparació sense baseline: sempre compara el model amb una solució trivial (predictor de la classe majoritària, mitjana)

Miniactivitat — AC5071/02/05

Donat un problema de detecció de càncer de mama (maligne / benigne), amb un 15% de casos malignes: a) Quina mètrica prioritzaries: precision o recall? Per qué? b) Un model A té accuracy 95% i recall 10%. Un model B té accuracy 85% i recall 80%. Quin tries i per qué? c) Quin seria el "baseline trivial" per a aquest problema i quina accuracy tindria?

Exercici pràctic del bloc

AC5071/02/06 — Comparativa de models per a un cas real

Tria un dels datasets públics de Kaggle o UCI ML Repository (p. ex. Heart Disease, Titanic o Wine Quality) i:

  1. Aplica almenys 3 models de classificació diferent (p. ex. Logistic Regression, Random Forest, XGBoost)
  2. Avalua'ls amb cross-validation 5-fold i calcula F1-score i AUC-ROC
  3. Crea una taula comparativa amb els resultats
  4. Justifica quin model triaries per a producció i per qué (no necessàriament el de major accuracy)
  5. Identifica si el dataset té problemes de classe desequilibrada i com ho tractaries

Format d'entrega: Jupyter Notebook a GitHub, amb nom ac507102_06_comparativa_models_nom_cognom.ipynb.