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:
- Comprendre les mètriques d'avaluació més comunes per a models de classificació i regressió.
- Aplicar aquestes mètriques per avaluar el rendiment dels teus models.
- Interpretar els resultats de les mètriques per prendre decisions informades sobre la millora dels models.
- 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)
- 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ó
- Utilitza el conjunt de dades
Iris
desklearn.datasets
per entrenar un model de classificació. - Calcula la matriu de confusió, la precisió, l'exhaustivitat i l'F1-Score del model.
Exercici 2: Regressió
- Utilitza el conjunt de dades
Boston
desklearn.datasets
per entrenar un model de regressió. - 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
- Què és el Machine Learning?
- Història i evolució del Machine Learning
- Tipus de Machine Learning
- Aplicacions del Machine Learning
Mòdul 2: Fonaments d'Estadística i Probabilitat
- Conceptes bàsics d'estadística
- Distribucions de probabilitat
- Inferència estadística
- Teorema de Bayes
Mòdul 3: Preprocessament de Dades
Mòdul 4: Algoritmes de Machine Learning Supervisat
- Regressió lineal
- Regressió logística
- Arbres de decisió
- Màquines de suport vectorial (SVM)
- K-Veïns més propers (K-NN)
- Xarxes neuronals
Mòdul 5: Algoritmes de Machine Learning No Supervisat
- Clustering: K-means
- Clustering jeràrquic
- Anàlisi de components principals (PCA)
- Anàlisi d'agrupament DBSCAN
Mòdul 6: Avaluació i Validació de Models
Mòdul 7: Tècniques Avançades i Optimització
- Ensemble Learning
- Gradient Boosting
- Xarxes neuronals profundes (Deep Learning)
- Optimització d'hiperparàmetres
Mòdul 8: Implementació i Desplegament de Models
- Frameworks i biblioteques populars
- Implementació de models en producció
- Manteniment i monitoratge de models
- Consideracions ètiques i de privacitat
Mòdul 9: Projectes Pràctics
- Projecte 1: Predicció de preus d'habitatges
- Projecte 2: Classificació d'imatges
- Projecte 3: Anàlisi de sentiments a xarxes socials
- Projecte 4: Detecció de fraus