diff --git a/Class_Mod/Regression_metrics.py b/Class_Mod/Regression_metrics.py
new file mode 100644
index 0000000000000000000000000000000000000000..748ad34736c1f0d82f89564abe07f8f91597aa01
--- /dev/null
+++ b/Class_Mod/Regression_metrics.py
@@ -0,0 +1,108 @@
+from Packages import *
+
+def metrics(train, cv=None, test = None):
+
+    C = pd.DataFrame()
+    CV = pd.DataFrame()
+    T = pd.DataFrame()
+
+    if train is not None and cv is not None and test is not None:
+
+        C["r"] = [np.corrcoef(train[0], train[1])[0, 1]]
+        C["r2"] = [r2_score(train[0], train[1])]
+        C["rmse"] = [np.sqrt(mean_squared_error(train[0], train[1]))]
+        C["mae"] = [mean_absolute_error(train[0], train[1])]
+        C.index = ['perf']
+        METRICS = C
+
+        CV["r"] = [np.corrcoef(cv[0], cv[1])[0, 1]]
+        CV["r2"] = [r2_score(cv[0], cv[1])]
+        CV["rmse"] = [np.sqrt(mean_squared_error(cv[0], cv[1]))]
+        CV["mae"] = [mean_absolute_error(cv[0], cv[1])]
+        CV.index = ['perf']
+
+        T["r"] = [np.corrcoef(test[0], test[1])[0, 1]]
+        T["r2"] = [r2_score(test[0], test[1])]
+        T["rmse"] = [np.sqrt(mean_squared_error(test[0], test[1]))]
+        T["mae"] = [mean_absolute_error(test[0], test[1])]
+        T.index = ['perf']
+
+        METRICS = pd.concat([C, CV, T], axis=1)
+
+    elif train is not None and cv is not None and test is None:
+
+        C["r"] = [np.corrcoef(train[0], train[1])[0, 1]]
+        C["r2"] = [r2_score(train[0], train[1])]
+        C["rmse"] = [np.sqrt(mean_squared_error(train[0], train[1]))]
+        C["mae"] = [mean_absolute_error(train[0], train[1])]
+        C.index = ['perf']
+
+        CV["r"] = [np.corrcoef(cv[0], cv[1])[0, 1]]
+        CV["r2"] = [r2_score(cv[0], cv[1])]
+        CV["rmse"] = [np.sqrt(mean_squared_error(cv[0], cv[1]))]
+        CV["mae"] = [mean_absolute_error(cv[0], cv[1])]
+        CV.index = ['perf']
+
+        METRICS = pd.concat([C, CV], axis=1)
+
+    elif train is not None and cv is None and test is not None:
+
+        C["r"] = [np.corrcoef(train[0], train[1])[0, 1]]
+        C["r2"] = [r2_score(train[0], train[1])]
+        C["rmse"] = [np.sqrt(mean_squared_error(train[0], train[1]))]
+        C["mae"] = [mean_absolute_error(train[0], train[1])]
+        C.index = ['perf']
+
+        T["r"] = [np.corrcoef(test[0], test[1])[0, 1]]
+        T["r2"] = [r2_score(test[0], test[1])]
+        T["rmse"] = [np.sqrt(mean_squared_error(test[0], test[1]))]
+        T["mae"] = [mean_absolute_error(test[0], test[1])]
+        T.index = ['perf']
+        METRICS = pd.concat([C, T], axis=1)
+
+    elif train is None and cv is not None and test is not None:
+
+        CV["r"] = [np.corrcoef(cv[0], cv[1])[0, 1]]
+        CV["r2"] = [r2_score(cv[0], cv[1])]
+        CV["rmse"] = [np.sqrt(mean_squared_error(cv[0], cv[1]))]
+        CV["mae"] = [mean_absolute_error(cv[0], cv[1])]
+        CV.index = ['perf']
+
+        T["r"] = [np.corrcoef(test[0], test[1])[0, 1]]
+        T["r2"] = [r2_score(test[0], test[1])]
+        T["rmse"] = [np.sqrt(mean_squared_error(test[0], test[1]))]
+        T["mae"] = [mean_absolute_error(test[0], test[1])]
+        T.index = ['perf']
+
+        METRICS = pd.concat([CV, T], axis=1)
+
+    elif train is not None and cv is None and test is None:
+        C["r"] = [np.corrcoef(train[0], train[1])[0, 1]]
+        C["r2"] = [r2_score(train[0], train[1])]
+        C["rmse"] = [np.sqrt(mean_squared_error(train[0], train[1]))]
+        C["mae"] = [mean_absolute_error(train[0], train[1])]
+        C.index = ['perf']
+        METRICS = C
+
+    if train is None and cv is not None and test is None:
+
+        CV["r"] = [np.corrcoef(cv[0], cv[1])[0, 1]]
+        CV["r2"] = [r2_score(cv[0], cv[1])]
+        CV["rmse"] = [np.sqrt(mean_squared_error(cv[0], cv[1]))]
+        CV["mae"] = [mean_absolute_error(cv[0], cv[1])]
+        CV.index = ['perf']
+
+        METRICS = CV
+
+    if train is None and cv is None and test is not None:
+
+        T["r"] = [np.corrcoef(test[0], test[1])[0, 1]]
+        T["r2"] = [r2_score(test[0], test[1])]
+        T["rmse"] = [np.sqrt(mean_squared_error(test[0], test[1]))]
+        T["mae"] = [mean_absolute_error(test[0], test[1])]
+        T.index = ['perf']
+
+        METRICS = T
+
+    return METRICS
+