Exemple #1
0
    def fit_models_LassoCV(self, X, Y, bands=None):
        """ Try to fit models to training period time series """
        if bands is None:
            bands = self.fit_indices

        models = []

        for b in bands:
            # lasso = LassoCV(n_alphas=100)
            # lasso = LassoLarsCV(masx_n_alphas=100)
            lasso = LassoLarsIC(criterion='bic')
            lasso = lasso.fit(X, Y[b, :])
            lasso.nobs = Y[b, :].size
            lasso.coef = np.copy(lasso.coef_)
            lasso.coef[0] += lasso.intercept_
            lasso.fittedvalues = lasso.predict(X)
            lasso.rss = np.sum((Y[b, :] - lasso.fittedvalues) ** 2)
            lasso.rmse = math.sqrt(lasso.rss / lasso.nobs)

            models.append(lasso)

        return np.array(models)