Source code for ieeg.decoding.metrics

import numpy as np


# %% R-squared (R2)

[docs] def get_R2(y_test, y_test_pred): """ Function to get R2 Parameters ---------- y_test - the true outputs (a matrix of size number of examples x number of outputs) y_test_pred - the predicted outputs (a matrix of size number of examples x number of outputs) Returns ------- R2_array: An array of R2s for each output """ # Initialize a list that will contain the R2s for all the outputs R2_list = [] for i in range(y_test.shape[1]): # Loop through outputs # Compute R2 for each output y_mean = np.mean(y_test[:, i]) R2 = 1 - np.sum((y_test_pred[:, i] - y_test[:, i]) ** 2) / np.sum( (y_test[:, i] - y_mean) ** 2) R2_list.append(R2) # Append R2 of this output to the list R2_array = np.array(R2_list) return R2_array # Return an array of R2s
# %% Pearson's correlation (rho)
[docs] def get_rho(y_test, y_test_pred): """ Function to get Pearson's correlation (rho) Parameters ---------- y_test - the true outputs (a matrix of size number of examples x number of outputs) y_test_pred - the predicted outputs (a matrix of size number of examples x number of outputs) Returns ------- rho_array: An array of rho's for each output """ # Initialize a list that will contain the rhos for all the outputs rho_list = [] for i in range(y_test.shape[1]): # Loop through outputs # Compute rho for each output y_mean = np.mean(y_test[:, i]) rho = np.corrcoef(y_test[:, i].T, y_test_pred[:, i].T)[0, 1] rho_list.append(rho) # Append rho of this output to the list rho_array = np.array(rho_list) return rho_array # Return the array of rhos