From 054e0bd55ceaa14a1c51bd547dc939b609758687 Mon Sep 17 00:00:00 2001
From: DIANE <abderrahim.diane@cefe.cnrs.fr>
Date: Thu, 4 Apr 2024 12:48:50 +0200
Subject: [PATCH] reg metrics update

---
 Class_Mod/PLSR_.py              |  4 +++-
 Class_Mod/Regression_metrics.py | 11 +++++++----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/Class_Mod/PLSR_.py b/Class_Mod/PLSR_.py
index 355b95a..7050ae4 100644
--- a/Class_Mod/PLSR_.py
+++ b/Class_Mod/PLSR_.py
@@ -39,7 +39,6 @@ class PinardPlsr:
         self.yt = pd.DataFrame(self.trained.predict(self.x_test)) # make predictions on test data and assign to Y_preds variable
 
         ################################################################################################################
-
         
 
         ################################################################################################################
@@ -52,10 +51,13 @@ class PinardPlsr:
     def metrics_(self):
         metc = metrics(self.y_train, self.yc)
         metc = metc.evaluate_
+
         metcv = metrics(self.y_train, self.ycv)
         metcv = metcv.evaluate_
+
         mett = metrics( self.y_test, self.yt)
         mett = mett.evaluate_
+        
         met = pd.concat([metc, metcv, mett], axis = 0)
         met.index = ['calib','cv','test']
         return met
diff --git a/Class_Mod/Regression_metrics.py b/Class_Mod/Regression_metrics.py
index 620041c..9e6194a 100644
--- a/Class_Mod/Regression_metrics.py
+++ b/Class_Mod/Regression_metrics.py
@@ -7,14 +7,17 @@ class metrics:
             self.meas = meas.to_numpy()
         else :
             self.meas = meas.ravel()
-            
-        self.pred = pred.to_numpy().ravel()
+        
+        if isinstance(pred, pd.DataFrame):
+            self.pred = pred.to_numpy().ravel()
+        else :
+            self.pred = pred.ravel()
     
     @property
     def evaluate_(self):
            xbar = np.mean(self.meas) # the average of measured values
            e2 = (self.meas - self.pred)**2 # the squared error
-           print(xbar)
+
           # Sum of squared:
            # TOTAL
            sst = np.sum((self.meas-xbar)**2)
@@ -28,7 +31,7 @@ class metrics:
           # Compute statistical metrics
            metr = pd.DataFrame()
            metr['r'] = [np.corrcoef(self.meas.ravel(), self.pred)[0,1]]
-           metr['r2'] = [1-ssr/sst]
+           metr['r2'] = [ssm/sst]
            metr['rmse'] = [np.sqrt(np.mean(e2))]
            metr['mae'] = [np.mean(np.abs(e2))]
            metr['rpd'] = [np.std(self.meas)/np.sqrt(np.mean(e2))]
-- 
GitLab