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