def runPrintResults(X, y, alpha, name): print(name+":\n=========") if (alpha is not None): X_new = np.divide(X, alpha) else: X_new = X enetCV = ElasticNetCV(l1_ratio=0.8, fit_intercept=False) # cv=nCV, max_iter=5000 # enetCV = LassoCV(fit_intercept=False) # cv=nCV, max_iter=5000 enetCV.fit(X_new, y) y_pred_enet = enetCV.predict(X_new) r2_score_enet = r2_score(y, y_pred_enet) print("R2= ", r2_score_enet) if (alpha is not None): enetCV_coef = np.divide(enetCV.coef_, alpha) else: enetCV_coef = enetCV.coef_ print("Best Alpha: {}".format(enetCV.alpha_)) # print("coefs_: {}".format(enetCV.coef_)) print("coefs_/alpha: {}".format(enetCV_coef)) return enetCV.alpha_, enetCV_coef
class ElasticNetCVImpl(): def __init__(self, l1_ratio=0.5, eps=0.001, n_alphas=100, alphas=None, fit_intercept=True, normalize=False, precompute='auto', max_iter=1000, tol=0.0001, cv=3, copy_X=True, verbose=0, n_jobs=None, positive=False, random_state=None, selection='cyclic'): self._hyperparams = { 'l1_ratio': l1_ratio, 'eps': eps, 'n_alphas': n_alphas, 'alphas': alphas, 'fit_intercept': fit_intercept, 'normalize': normalize, 'precompute': precompute, 'max_iter': max_iter, 'tol': tol, 'cv': cv, 'copy_X': copy_X, 'verbose': verbose, 'n_jobs': n_jobs, 'positive': positive, 'random_state': random_state, 'selection': selection} def fit(self, X, y=None): self._sklearn_model = SKLModel(**self._hyperparams) if (y is not None): self._sklearn_model.fit(X, y) else: self._sklearn_model.fit(X) return self def predict(self, X): return self._sklearn_model.predict(X)
def runPrintResults(X, y, alpha, name): print(name + ":\n=========") if (alpha is not None): X_new = np.divide(X, alpha) else: X_new = X enetCV = ElasticNetCV(l1_ratio=0.8, fit_intercept=False) # cv=nCV, max_iter=5000 # enetCV = LassoCV(fit_intercept=False) # cv=nCV, max_iter=5000 enetCV.fit(X_new, y) y_pred_enet = enetCV.predict(X_new) r2_score_enet = r2_score(y, y_pred_enet) print("R2= ", r2_score_enet) if (alpha is not None): enetCV_coef = np.divide(enetCV.coef_, alpha) else: enetCV_coef = enetCV.coef_ print("Best Alpha: {}".format(enetCV.alpha_)) # print("coefs_: {}".format(enetCV.coef_)) print("coefs_/alpha: {}".format(enetCV_coef)) return enetCV.alpha_, enetCV_coef