# Post-Learning¶

kxy.regression.post_learning.regression_bias(f_x, z, linear_scale=True, space='dual', categorical_encoding='two-split')

Quantifies the bias in a regression model as the mutual information between a category variable and model predictions.

Parameters
Returns

b – The mutual information $$m$$ or $$1-e^{-2m}$$ if linear_scale=True.

Return type

float

Theoretical Foundation

Section b) Quantifying Bias in Models.

kxy.regression.post_learning.regression_model_explanation_analysis(x_c, f_x, x_d=None, space='dual', categorical_encoding='two-split')

Runs the model explanation analysis on a trained regression model.

Parameters
• x_c ((n,d) np.array) – Continuous inputs.

• f_x ((n,) np.array) – Labels predicted by the model and corresponding to inputs x_c and x_d.

• x_d ((n, d) np.array or None (default), optional) – Discrete inputs.

• space (str, 'primal' | 'dual') – The space in which the maximum entropy problem is solved. When space='primal', the maximum entropy problem is solved in the original observation space, under Pearson covariance constraints, leading to the Gaussian copula. When space='dual', the maximum entropy problem is solved in the copula-uniform dual space, under Spearman rank correlation constraints.

• categorical_encoding (str, 'one-hot' | 'two-split' (default)) – The encoding method to use to represent categorical variables. See kxy.api.core.utils.one_hot_encoding and kxy.api.core.utils.two_split_encoding.

Returns

• a (pandas.DataFrame) – Dataframe with columns:

• 'Variable': The variable index starting from 0 at the leftmost column of x_c and ending at the rightmost column of x_d.

• 'Selection Order': The order in which the associated variable was selected, starting at 1 for the most important variable.

• 'Univariate Explained R^2': The $$R^2$$ between predicted labels and this variable.

• 'Running Explained R^2': The $$R^2$$ between predicted labels and all variables selected so far, including this one.

• 'Marginal Explained R^2': The increase in $$R^2$$ between predicted labels and all variables selected so far that is due to adding this variable in the selection scheme.

• .. admonition:: Theoretical Foundation – Section a) Model Explanation.

kxy.regression.post_learning.regression_model_improvability_analysis(x_c, y_p, y, x_d=None, space='dual', categorical_encoding='two-split')

Runs the model improvability analysis on a trained regression model.

Parameters
• x_c ((n,d) np.array) – Continuous inputs.

• y_p ((n,) np.array) – Labels predicted by the model and corresponding to inputs x_c and x_d.

• y ((n,) np.array) – True labels.

• x_d ((n, d) np.array or None (default), optional) – Discrete inputs.

• space (str, 'primal' | 'dual') – The space in which the maximum entropy problem is solved. When space='primal', the maximum entropy problem is solved in the original observation space, under Pearson covariance constraints, leading to the Gaussian copula. When space='dual', the maximum entropy problem is solved in the copula-uniform dual space, under Spearman rank correlation constraints.

• categorical_encoding (str, 'one-hot' | 'two-split' (default)) – The encoding method to use to represent categorical variables. See kxy.api.core.utils.one_hot_encoding and kxy.api.core.utils.two_split_encoding.

Returns

• a (pandas.DataFrame) – Dataframe with columns:

• 'Lost R^2': The amount by which the trained model’s $$R^2$$ can still be improved without resorting to additional inputs, simply through better modeling.

• 'Lost Log-Likelihood Per Sample': The amount by which the trained model’s true log-likelihood per sample can still be increased without resorting to additional inputs, simply through better modeling.

• 'Excess RMSE': The amount by which the trained model’s RMSE can still be reduced without resorting to additional inputs, simply through better modeling.

• .. admonition:: Theoretical Foundation – Section 3 - Model Improvability.