En aquest tema, explorarem les diferents mètriques utilitzades per avaluar el rendiment dels models de Machine Learning. Les mètriques d'avaluació són essencials per comprendre com de bé (o malament) està funcionant un model i per comparar diferents models entre si.

Objectius d'aprenentatge

Al final d'aquest tema, hauràs de ser capaç de:

  1. Comprendre les mètriques d'avaluació més comunes per a models de classificació i regressió.
  2. Aplicar aquestes mètriques per avaluar el rendiment dels teus models.
  3. Interpretar els resultats de les mètriques per prendre decisions informades sobre la millora dels models.

  1. Mètriques per a Models de Classificació

1.1. Matriu de Confusió

La matriu de confusió és una eina que permet visualitzar el rendiment d'un algorisme de classificació. Es tracta d'una taula que mostra les prediccions correctes i incorrectes fetes pel model comparades amb les classificacions reals.

Actual/Predicció Positiu (P) Negatiu (N)
Positiu (P) TP (True Positive) FN (False Negative)
Negatiu (N) FP (False Positive) TN (True Negative)

1.2. Precisió, Sensibilitat i Especificitat

  • Precisió (Accuracy): Proporció de prediccions correctes (tant positives com negatives) respecte al total de casos. \[ \text{Precisió} = \frac{TP + TN}{TP + TN + FP + FN} \]

  • Sensibilitat (Recall o True Positive Rate): Proporció de positius reals correctament identificats. \[ \text{Sensibilitat} = \frac{TP}{TP + FN} \]

  • Especificitat (True Negative Rate): Proporció de negatius reals correctament identificats. \[ \text{Especificitat} = \frac{TN}{TN + FP} \]

1.3. Precisió i Exhaustivitat

  • Precisió (Precision): Proporció de prediccions positives correctes respecte al total de prediccions positives. \[ \text{Precisió} = \frac{TP}{TP + FP} \]

  • Exhaustivitat (Recall): Ja definit anteriorment com a Sensibilitat.

1.4. F1-Score

L'F1-Score és la mitjana harmònica de la Precisió i l'Exhaustivitat. És útil quan es vol un equilibri entre aquestes dues mètriques. \[ F1 = 2 \cdot \frac{\text{Precisió} \cdot \text{Exhaustivitat}}{\text{Precisió} + \text{Exhaustivitat}} \]

Exemple de Codi

from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score, f1_score

# Suposem que tenim les següents etiquetes reals i prediccions
y_true = [1, 0, 1, 1, 0, 1, 0, 0, 1, 0]
y_pred = [1, 0, 1, 0, 0, 1, 0, 0, 1, 1]

# Matriu de confusió
cm = confusion_matrix(y_true, y_pred)
print("Matriu de Confusió:\n", cm)

# Precisió
accuracy = accuracy_score(y_true, y_pred)
print("Precisió:", accuracy)

# Precisió (Precision)
precision = precision_score(y_true, y_pred)
print("Precisió (Precision):", precision)

# Exhaustivitat (Recall)
recall = recall_score(y_true, y_pred)
print("Exhaustivitat (Recall):", recall)

# F1-Score
f1 = f1_score(y_true, y_pred)
print("F1-Score:", f1)

  1. Mètriques per a Models de Regressió

2.1. Error Quadràtic Mitjà (MSE)

L'Error Quadràtic Mitjà (Mean Squared Error) mesura la mitjana dels quadrats dels errors, és a dir, la diferència entre els valors predits i els valors reals. \[ MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 \]

2.2. Error Absolut Mitjà (MAE)

L'Error Absolut Mitjà (Mean Absolute Error) mesura la mitjana dels valors absoluts dels errors. \[ MAE = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| \]

2.3. R² (Coeficient de Determinació)

El coeficient de determinació (R²) mesura la proporció de la variància en la variable dependent que és predictible a partir de la variable independent. \[ R^2 = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y}i)^2}{\sum{i=1}^{n} (y_i - \bar{y})^2} \]

Exemple de Codi

from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score

# Suposem que tenim les següents etiquetes reals i prediccions
y_true = [3.0, -0.5, 2.0, 7.0]
y_pred = [2.5, 0.0, 2.0, 8.0]

# MSE
mse = mean_squared_error(y_true, y_pred)
print("MSE:", mse)

# MAE
mae = mean_absolute_error(y_true, y_pred)
print("MAE:", mae)

# R²
r2 = r2_score(y_true, y_pred)
print("R²:", r2)

Exercicis Pràctics

Exercici 1: Classificació

  1. Utilitza el conjunt de dades Iris de sklearn.datasets per entrenar un model de classificació.
  2. Calcula la matriu de confusió, la precisió, l'exhaustivitat i l'F1-Score del model.

Exercici 2: Regressió

  1. Utilitza el conjunt de dades Boston de sklearn.datasets per entrenar un model de regressió.
  2. Calcula el MSE, el MAE i el R² del model.

Solucions

Solució Exercici 1

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix, precision_score, recall_score, f1_score

# Carregar dades
iris = load_iris()
X = iris.data
y = iris.target

# Dividir dades
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# Entrenar model
model = RandomForestClassifier()
model.fit(X_train, y_train)

# Prediccions
y_pred = model.predict(X_test)

# Mètriques
cm = confusion_matrix(y_test, y_pred)
precision = precision_score(y_test, y_pred, average='macro')
recall = recall_score(y_test, y_pred, average='macro')
f1 = f1_score(y_test, y_pred, average='macro')

print("Matriu de Confusió:\n", cm)
print("Precisió (Precision):", precision)
print("Exhaustivitat (Recall):", recall)
print("F1-Score:", f1)

Solució Exercici 2

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score

# Carregar dades
boston = load_boston()
X = boston.data
y = boston.target

# Dividir dades
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# Entrenar model
model = LinearRegression()
model.fit(X_train, y_train)

# Prediccions
y_pred = model.predict(X_test)

# Mètriques
mse = mean_squared_error(y_test, y_pred)
mae = mean_absolute_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

print("MSE:", mse)
print("MAE:", mae)
print("R²:", r2)

Conclusió

En aquesta secció, hem après sobre les diferents mètriques d'avaluació per a models de classificació i regressió. Hem vist com calcular aquestes mètriques i com interpretar els seus resultats per avaluar el rendiment dels nostres models. Aquestes mètriques són fonamentals per comprendre la qualitat dels models i per prendre decisions informades sobre com millorar-los.

Curs de Machine Learning

Mòdul 1: Introducció al Machine Learning

Mòdul 2: Fonaments d'Estadística i Probabilitat

Mòdul 3: Preprocessament de Dades

Mòdul 4: Algoritmes de Machine Learning Supervisat

Mòdul 5: Algoritmes de Machine Learning No Supervisat

Mòdul 6: Avaluació i Validació de Models

Mòdul 7: Tècniques Avançades i Optimització

Mòdul 8: Implementació i Desplegament de Models

Mòdul 9: Projectes Pràctics

Mòdul 10: Recursos Addicionals

© Copyright 2024. Tots els drets reservats