Pour évaluer la performance de votre modèle de régression, vous pouvez utiliser plusieurs métriques,
telles que l'erreur quadratique moyenne (MSE), la racine de l'erreur quadratique moyenne (RMSE) et le
coefficient de détermination (R²). Voici comment vous pouvez ajouter ces évaluations à votre code :
```python
import torch
import torch.nn as nn
import torch.optim as optim
from sklearn.metrics import mean_squared_error, r2_score
# Données d'entrée
X = torch.tensor([
[900, 250, 40, 0, 0],
[900, 250, 80, 0, 0],
[900, 300, 80, 0, 0],
[900, 300, 80, 15, 0],
[900, 300, 80, 15, 1],
[800, 250, 40, 0, 0],
[700, 250, 40, 0, 0],
[600, 250, 40, 0, 0],
[500, 250, 40, 0, 0],
[500, 400, 40, 0, 0],
[500, 400, 100, 0, 0],
[300, 250, 40, 0, 0],
[300, 400, 40, 0, 0],
[300, 400, 100, 15, 3]
], dtype=torch.float32)
# Données de sortie
y = torch.tensor([80, 82, 84, 83, 82, 85, 88, 89, 91, 93, 94, 93, 94, 89], dtype=torch.float32).view(-1, 1)
# Définir le modèle
class RegressionModel(nn.Module):
def __init__(self):
super(RegressionModel, self).__init__()
self.layer1 = nn.Linear(5, 64)
self.layer2 = nn.Linear(64, 32)
self.layer3 = nn.Linear(32, 1)
def forward(self, x):
x = torch.relu(self.layer1(x))
x = torch.relu(self.layer2(x))
x = self.layer3(x)
return x
model = RegressionModel()
# Définir la fonction de perte et l'optimiseur
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.01)
# Entraîner le modèle
for epoch in range(100):
optimizer.zero_grad()
outputs = model(X)
loss = criterion(outputs, y)
loss.backward()
optimizer.step()
# Faire des prédictions
with torch.no_grad():
predictions = model(X)
print("Predictions: ", predictions)
# Évaluation du modèle
predictions_np = predictions.numpy()
y_np = y.numpy()
mse = mean_squared_error(y_np, predictions_np)
rmse = mean_squared_error(y_np, predictions_np, squared=False)
r2 = r2_score(y_np, predictions_np)
print(f"MSE: {mse}")
print(f"RMSE: {rmse}")
print(f"R²: {r2}")
```
Ce code ajoute des calculs pour le MSE, le RMSE et le R² pour évaluer la qualité des prédictions de votre
modèle. Le MSE et le RMSE mesurent l'erreur moyenne entre les valeurs prédites et les valeurs réelles,
tandis que le R² mesure la proportion de la variance des données qui est expliquée par le modèle. Un R²
proche de 1 indique que le modèle explique bien les données.