def fit(self, X, Y, maxit=100, tol=1e-4): """Fit Elastic Net model with coordinate descent""" X = np.asanyarray(X, dtype=np.float64) Y = np.asanyarray(Y, dtype=np.float64) if self.coef_ is None: self.coef_ = np.zeros(X.shape[1], dtype=np.float64) nsamples = X.shape[0] alpha = self.alpha * self.rho * nsamples beta = self.alpha * (1.0 - self.rho) * nsamples self.coef_, self.dual_gap_, self.eps_ = \ enet_coordinate_descent(self.coef_, alpha, beta, X, Y, maxit, 10, tol) if self.dual_gap_ > self.eps_: warnings.warn('Objective did not converge, you might want to increase the number of interations')
if self.dual_gap_ > self.eps_: warnings.warn('Objective did not converge, you might want to increase the number of interations') # return self for chaining fit and predict calls return self >>>>>>> remote if self.coef_ is None: self.coef_ = np.zeros(X.shape[1], dtype=np.float64) nsamples = X.shape[0] alpha = self.alpha * self.rho * nsamples beta = self.alpha * (1.0 - self.rho) * nsamples self.coef_, self.dual_gap_, self.eps_ = \ enet_coordinate_descent(self.coef_, alpha, beta, X, Y, maxit, 10, self.tol) if self.dual_gap_ > self.eps_: warnings.warn('Objective did not converge, you might want to increase the number of interations') <<<<<<< HEAD ======= def __init__(self, alpha=1.0, rho=0.5, w0=None): super(ElasticNet, self).__init__(w0) self.alpha = alpha self.rho = rho def fit(self, X, Y, maxit=100, tol=1e-4): """Fit Elastic Net model with coordinate descent""" X = np.asanyarray(X, dtype=np.float64) Y = np.asanyarray(Y, dtype=np.float64)