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