class_docstr: Group Lasso scikit-learn estimator based on Celer solver
  
  The optimization objective for the Group Lasso is::
  
  (1 / (2 * n_samples)) * ||y - X w||^2_2 + alpha * \sum_g weights_g ||w_g||_2
  
  where `w_g` are the regression coefficients of group number `g`.
  
  Parameters
  ----------
  groups : int | list of ints | list of lists of ints.
      Partition of features used in the penalty on `w`.
      If an int is passed, groups are contiguous blocks of features, of size
      `groups`.
      If a list of ints is passed, groups are assumed to be contiguous,
      group number `g` being of size `groups[g]`.
      If a list of lists of ints is passed, `groups[g]` contains the
      feature indices of the group number `g`.
  
  alpha : float, optional
      Constant that multiplies the penalty term. Defaults to 1.0.
  
  max_iter : int, optional
      The maximum number of iterations (subproblem definitions)
  
  max_epochs : int
      Maximum number of BCD epochs on each subproblem.
  
  p0 : int
      First working set size.
  
  verbose : bool or integer
      Amount of verbosity.
  
  tol : float, optional
      Stopping criterion for the optimization: the solver runs until the
      duality gap is smaller than ``tol * norm(y) ** 2 / len(y)`` or the
      maximum number of iteration is reached.
  
  prune : bool, optional (default=True)
      Whether or not to use pruning when growing working sets.
  
  fit_intercept : bool, optional (default=True)
      Whether or not to fit an intercept.
  
  weights : array, shape (n_groups,), optional (default=None)
      Strictly positive weights used in the L2 penalty part of the
      GroupLasso objective. If None, weights equal to 1 are used.
  
  warm_start : bool, optional (default=False)
      When set to True, reuse the solution of the previous call to fit as
      initialization, otherwise, just erase the previous solution.
  
  Attributes
  ----------
  coef_ : array, shape (n_features,)
      parameter vector (w in the cost function formula)
  
  sparse_coef_ : scipy.sparse matrix, shape (n_features, 1)
      ``sparse_coef_`` is a readonly property derived from ``coef_``
  
  intercept_ : float
      constant term in decision function.
  
  n_iter_ : int
      Number of subproblems solved by Celer to reach the specified tolerance.
  
  Examples
  --------
  >>> from celer import GroupLasso
  >>> clf = GroupLasso(alpha=0.5, groups=[[0, 1], [2]])
  >>> clf.fit([[0, 0, 1], [1, -1, 2], [2, 0, -1]], [1, 1, -1])
  GroupLasso(alpha=0.5, fit_intercept=True,
  groups=[[0, 1], [2]], max_epochs=50000, max_iter=100,
  p0=10, prune=True, tol=0.0001, verbose=0, warm_start=False)
  >>> print(clf.coef_)
  [-0.         -0.          0.39285714]
  >>> print(clf.intercept_)
  0.07142857142857145
  
  See also
  --------
  celer_path
  GroupLassoCV
  
  References
  ----------
  .. [1] M. Massias, A. Gramfort, J. Salmon
    "Celer: a Fast Solver for the Lasso wit Dual Extrapolation", ICML 2018,
    http://proceedings.mlr.press/v80/massias18a.html
  
  .. [2] M. Massias, S. Vaiter, A. Gramfort, J. Salmon
    "Dual extrapolation for sparse Generalized Linear Models", JMLR 2020,
    https://arxiv.org/abs/1907.05830
class_docstr_tok: ["Group","Lasso","scikit-learn","estimator","based","on","Celer","solver","The","optimization","objective","for","the","Group","Lasso","is",":",":","(","1","\/","(","2","*","n_samples",")",")","*","||y","-","X","w||^2_2","+","alpha","*","\\sum_g","weights_g","||w_g||_2","where","`","w_g","`","are","the","regression","coefficients","of","group","number","`","g","`",".","Parameters","--","--","--","--","--","groups",":","int","|","list","of","ints","|","list","of","lists","of","ints",".","Partition","of","features","used","in","the","penalty","on","`","w","`",".","If","an","int","is","passed",",","groups","are","contiguous","blocks","of","features",",","of","size","`","groups","`",".","If","a","list","of","ints","is","passed",",","groups","are","assumed","to","be","contiguous",",","group","number","`","g","`","being","of","size","`","groups","[","g","]","`",".","If","a","list","of","lists","of","ints","is","passed",",","`","groups","[","g","]","`","contains","the","feature","indices","of","the","group","number","`","g","`",".","alpha",":","float",",","optional","Constant","that","multiplies","the","penalty","term",".","Defaults","to","1.0.","max_iter",":","int",",","optional","The","maximum","number","of","iterations","(","subproblem","definitions",")","max_epochs",":","int","Maximum","number","of","BCD","epochs","on","each","subproblem",".","p0",":","int","First","working","set","size",".","verbose",":","bool","or","integer","Amount","of","verbosity",".","tol",":","float",",","optional","Stopping","criterion","for","the","optimization",":","the","solver","runs","until","the","duality","gap","is","smaller","than","``","tol","*","norm","(","y",")","*","*","2","\/","len","(","y",")","``","or","the","maximum","number","of","iteration","is","reached",".","prune",":","bool",",","optional","(","default=True",")","Whether","or","not","to","use","pruning","when","growing","working","sets",".","fit_intercept",":","bool",",","optional","(","default=True",")","Whether","or","not","to","fit","an","intercept",".","weights",":","array",",","shape","(","n_groups",",",")",",","optional","(","default=None",")","Strictly","positive","weights","used","in","the","L2","penalty","part","of","the","GroupLasso","objective",".","If","None",",","weights","equal","to","1","are","used",".","warm_start",":","bool",",","optional","(","default=False",")","When","set","to","True",",","reuse","the","solution","of","the","previous","call","to","fit","as","initialization",",","otherwise",",","just","erase","the","previous","solution",".","Attributes","--","--","--","--","--","coef_",":","array",",","shape","(","n_features",",",")","parameter","vector","(","w","in","the","cost","function","formula",")","sparse_coef_",":","scipy.sparse","matrix",",","shape","(","n_features",",","1",")","``","sparse_coef_","``","is","a","readonly","property","derived","from","``","coef_","``","intercept_",":","float","constant","term","in","decision","function",".","n_iter_",":","int","Number","of","subproblems","solved","by","Celer","to","reach","the","specified","tolerance",".","Examples","--","--","--","--",">",">",">","from","celer","import","GroupLasso",">",">",">","clf","=","GroupLasso","(","alpha=0.5",",","groups=","[","[","0",",","1","]",",","[","2","]","]",")",">",">",">","clf.fit","(","[","[","0",",","0",",","1","]",",","[","1",",","-1",",","2","]",",","[","2",",","0",",","-1","]","]",",","[","1",",","1",",","-1","]",")","GroupLasso","(","alpha=0.5",",","fit_intercept=True",",","groups=","[","[","0",",","1","]",",","[","2","]","]",",","max_epochs=50000",",","max_iter=100",",","p0=10",",","prune=True",",","tol=0.0001",",","verbose=0",",","warm_start=False",")",">",">",">","print","(","clf.coef_",")","[","-0",".","-0",".","0.39285714","]",">",">",">","print","(","clf.intercept_",")","0.07142857142857145","See","also","--","--","--","--","celer_path","GroupLassoCV","References","--","--","--","--","--","..","[","1","]","M.","Massias",",","A.","Gramfort",",","J.","Salmon","``","Celer",":","a","Fast","Solver","for","the","Lasso","wit","Dual","Extrapolation","''",",","ICML","2018",",","http",":","\/\/proceedings.mlr.press\/v80\/massias18a.html","..","[","2","]","M.","Massias",",","S.","Vaiter",",","A.","Gramfort",",","J.","Salmon","``","Dual","extrapolation","for","sparse","Generalized","Linear","Models","''",",","JMLR","2020",",","https",":","\/\/arxiv.org\/abs\/1907.05830"]
code: def __init__(
      self,
      groups=1,
      alpha=1.0,
      max_iter=100,
      max_epochs=50000,
      p0=10,
      verbose=0,
      tol=1e-4,
      prune=True,
      fit_intercept=True,
      weights=None,
      warm_start=False,
  ):
      super(GroupLasso, self).__init__(
          alpha=alpha,
          tol=tol,
          max_iter=max_iter,
          fit_intercept=fit_intercept,
          warm_start=warm_start,
      )
      self.groups = groups
      self.verbose = verbose
      self.max_epochs = max_epochs
      self.p0 = p0
      self.prune = prune
      self.weights = weights
  
imports: import numbers
  import numpy
  from sklearn.base import RegressorMixin, MultiOutputMixin
  from sklearn.utils.validation import check_X_y
  from sklearn.utils.multiclass import check_classification_targets
  from sklearn.linear_model import ElasticNet, Lasso, LogisticRegression, MultiTaskLasso
  from sklearn.linear_model._coordinate_descent import LinearModelCV
  from sklearn.linear_model._base import _preprocess_data
  from sklearn.preprocessing import LabelEncoder
  from sklearn.multiclass import OneVsRestClassifier
  from .homotopy import celer_path, mtl_path
label_desc: Use image node_id 1 to create a new GroupLasso object from inherited base classes: Lasso_sklearn with example: obj = GroupLasso(groups, alpha, max_iter, max_epochs, p0, verbose, tol, prune, fit_intercept, weights, warm_start)