from benchopt.base import BaseSolver from benchopt.util import safe_import with safe_import() as solver_import: from cyanure import Regression class Solver(BaseSolver): name = 'Cyanure' install_cmd = 'pip' requirements = ['cyanure-mkl'] requirements_import = ['cyanure'] def set_objective(self, X, y, lmbd): self.X, self.y, self.lmbd = X, y, lmbd n_samples = self.X.shape[0] self.solver = Regression(loss='square', penalty='l1', fit_intercept=False) self.solver_parameter = dict(lambd=self.lmbd / n_samples, solver='auto', tol=1e-12, verbose=False) def run(self, n_iter): self.solver.fit(self.X, self.y, max_epochs=n_iter,
import os import numpy as np from benchopt.base import BaseDataset from benchopt.config import get_global_setting from benchopt.util import safe_import with safe_import(): # Dependencies of download_libsvm are scikit-learn, download and tqdm from benchopt.utils.datasets.libsvm import download_libsvm from scipy import sparse DATA_DIR = get_global_setting('data_dir') class Dataset(BaseDataset): # TODO call the dataset log1p_train to harmonize with libsvm naming? name = "finance" install_cmd = 'pip' requirements = ['scikit-learn', 'scipy', 'download', 'tqdm'] requirements_import = ['sklearn', 'scipy', 'download', 'tqdm'] def get_data(self): X_path = os.path.join(DATA_DIR, self.name, "X.npz") y_path = os.path.join(DATA_DIR, self.name, "y.npy") try: X = sparse.load_npz(X_path) y = np.load(y_path)