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 +