'Akaike information criterion for the current model on the input X.
Parameters
X : array of shape (n_samples, n_dimensions)
Returns
aic : float
The lower the better.'

def aic(self, X):

    return ((((-2) * self.score(X)) * X.shape[0]) + (2 * self._n_parameters()))
