class_docstr: Multi-task ElasticNet model trained with L1/L2 mixed-norm as regularizer
  
  The optimization objective for MultiTaskElasticNet is::
  
      (1 / (2 * n_samples)) * ||Y - XW||^Fro_2
      + alpha * l1_ratio * ||W||_21
      + 0.5 * alpha * (1 - l1_ratio) * ||W||_Fro^2
  
  Where::
  
      ||W||_21 = \sum_i \sqrt{\sum_j w_{ij}^2}
  
  i.e. the sum of norm of each row.
  
  Read more in the :ref:`User Guide <multi_task_elastic_net>`.
  
  Parameters
  ----------
  alpha : float, optional
      Constant that multiplies the L1/L2 term. Defaults to 1.0
  
  l1_ratio : float
      The ElasticNet mixing parameter, with 0 < l1_ratio <= 1.
      For l1_ratio = 0 the penalty is an L1/L2 penalty. For l1_ratio = 1 it
      is an L1 penalty.
      For ``0 < l1_ratio < 1``, the penalty is a combination of L1/L2 and L2.
  
  fit_intercept : boolean
      whether to calculate the intercept for this model. If set
      to false, no intercept will be used in calculations
      (e.g. data is expected to be already centered).
  
  normalize : boolean, optional, default False
      If ``True``, the regressors X will be normalized before regression.
      This parameter is ignored when ``fit_intercept`` is set to ``False``.
      When the regressors are normalized, note that this makes the
      hyperparameters learnt more robust and almost independent of the number
      of samples. The same property is not valid for standardized data.
      However, if you wish to standardize, please use
      :class:`preprocessing.StandardScaler` before calling ``fit`` on an estimator
      with ``normalize=False``.
  
  copy_X : boolean, optional, default True
      If ``True``, X will be copied; else, it may be overwritten.
  
  max_iter : int, optional
      The maximum number of iterations
  
  tol : float, optional
      The tolerance for the optimization: if the updates are
      smaller than ``tol``, the optimization code checks the
      dual gap for optimality and continues until it is smaller
      than ``tol``.
  
  warm_start : bool, optional
      When set to ``True``, reuse the solution of the previous call to fit as
      initialization, otherwise, just erase the previous solution.
  
  selection : str, default 'cyclic'
      If set to 'random', a random coefficient is updated every iteration
      rather than looping over features sequentially by default. This
      (setting to 'random') often leads to significantly faster convergence
      especially when tol is higher than 1e-4.
  
  random_state : int, RandomState instance, or None (default)
      The seed of the pseudo random number generator that selects
      a random feature to update. Useful only when selection is set to
      'random'.
  
  Attributes
  ----------
  intercept_ : array, shape (n_tasks,)
      Independent term in decision function.
  
  coef_ : array, shape (n_tasks, n_features)
      Parameter vector (W in the cost function formula). If a 1D y is         passed in at fit (non multi-task usage), ``coef_`` is then a 1D array
  
  n_iter_ : int
      number of iterations run by the coordinate descent solver to reach
      the specified tolerance.
  
  Examples
  --------
  >>> from sklearn import linear_model
  >>> clf = linear_model.MultiTaskElasticNet(alpha=0.1)
  >>> clf.fit([[0,0], [1, 1], [2, 2]], [[0, 0], [1, 1], [2, 2]])
  ... #doctest: +NORMALIZE_WHITESPACE
  MultiTaskElasticNet(alpha=0.1, copy_X=True, fit_intercept=True,
          l1_ratio=0.5, max_iter=1000, normalize=False, random_state=None,
          selection='cyclic', tol=0.0001, warm_start=False)
  >>> print(clf.coef_)
  [[ 0.45663524  0.45612256]
   [ 0.45663524  0.45612256]]
  >>> print(clf.intercept_)
  [ 0.0872422  0.0872422]
  
  See also
  --------
  ElasticNet, MultiTaskLasso
  
  Notes
  -----
  The algorithm used to fit the model is coordinate descent.
  
  To avoid unnecessary memory duplication the X argument of the fit method
  should be directly passed as a Fortran-contiguous numpy array.
class_docstr_tok: ["Multi-task","ElasticNet","model","trained","with","L1\/L2","mixed-norm","as","regularizer","The","optimization","objective","for","MultiTaskElasticNet","is",":",":","(","1","\/","(","2","*","n_samples",")",")","*","||Y","-","XW||^Fro_2","+","alpha","*","l1_ratio","*","||W||_21","+","0.5","*","alpha","*","(","1","-","l1_ratio",")","*","||W||_Fro^2","Where",":",":","||W||_21","=","\\sum_i","\\sqrt","{","\\sum_j","w_","{","ij","}","^2","}","i.e",".","the","sum","of","norm","of","each","row",".","Read","more","in","the",":","ref",":","`","User","Guide","<","multi_task_elastic_net",">","`",".","Parameters","--","--","--","--","--","alpha",":","float",",","optional","Constant","that","multiplies","the","L1\/L2","term",".","Defaults","to","1.0","l1_ratio",":","float","The","ElasticNet","mixing","parameter",",","with","0","<","l1_ratio","<","=","1",".","For","l1_ratio","=","0","the","penalty","is","an","L1\/L2","penalty",".","For","l1_ratio","=","1","it","is","an","L1","penalty",".","For","``","0","<","l1_ratio","<","1","``",",","the","penalty","is","a","combination","of","L1\/L2","and","L2",".","fit_intercept",":","boolean","whether","to","calculate","the","intercept","for","this","model",".","If","set","to","false",",","no","intercept","will","be","used","in","calculations","(","e.g",".","data","is","expected","to","be","already","centered",")",".","normalize",":","boolean",",","optional",",","default","False","If","``","True","``",",","the","regressors","X","will","be","normalized","before","regression",".","This","parameter","is","ignored","when","``","fit_intercept","``","is","set","to","``","False","``",".","When","the","regressors","are","normalized",",","note","that","this","makes","the","hyperparameters","learnt","more","robust","and","almost","independent","of","the","number","of","samples",".","The","same","property","is","not","valid","for","standardized","data",".","However",",","if","you","wish","to","standardize",",","please","use",":","class",":","`","preprocessing.StandardScaler","`","before","calling","``","fit","``","on","an","estimator","with","``","normalize=False","``",".","copy_X",":","boolean",",","optional",",","default","True","If","``","True","``",",","X","will","be","copied",";","else",",","it","may","be","overwritten",".","max_iter",":","int",",","optional","The","maximum","number","of","iterations","tol",":","float",",","optional","The","tolerance","for","the","optimization",":","if","the","updates","are","smaller","than","``","tol","``",",","the","optimization","code","checks","the","dual","gap","for","optimality","and","continues","until","it","is","smaller","than","``","tol","``",".","warm_start",":","bool",",","optional","When","set","to","``","True","``",",","reuse","the","solution","of","the","previous","call","to","fit","as","initialization",",","otherwise",",","just","erase","the","previous","solution",".","selection",":","str",",","default","'cyclic'","If","set","to","'random","'",",","a","random","coefficient","is","updated","every","iteration","rather","than","looping","over","features","sequentially","by","default",".","This","(","setting","to","'random","'",")","often","leads","to","significantly","faster","convergence","especially","when","tol","is","higher","than","1e-4",".","random_state",":","int",",","RandomState","instance",",","or","None","(","default",")","The","seed","of","the","pseudo","random","number","generator","that","selects","a","random","feature","to","update",".","Useful","only","when","selection","is","set","to","'random","'",".","Attributes","--","--","--","--","--","intercept_",":","array",",","shape","(","n_tasks",",",")","Independent","term","in","decision","function",".","coef_",":","array",",","shape","(","n_tasks",",","n_features",")","Parameter","vector","(","W","in","the","cost","function","formula",")",".","If","a","1D","y","is","passed","in","at","fit","(","non","multi-task","usage",")",",","``","coef_","``","is","then","a","1D","array","n_iter_",":","int","number","of","iterations","run","by","the","coordinate","descent","solver","to","reach","the","specified","tolerance",".","Examples","--","--","--","--",">",">",">","from","sklearn","import","linear_model",">",">",">","clf","=","linear_model.MultiTaskElasticNet","(","alpha=0.1",")",">",">",">","clf.fit","(","[","[","0,0","]",",","[","1",",","1","]",",","[","2",",","2","]","]",",","[","[","0",",","0","]",",","[","1",",","1","]",",","[","2",",","2","]","]",")","...","#","doctest",":","+NORMALIZE_WHITESPACE","MultiTaskElasticNet","(","alpha=0.1",",","copy_X=True",",","fit_intercept=True",",","l1_ratio=0.5",",","max_iter=1000",",","normalize=False",",","random_state=None",",","selection='cyclic","'",",","tol=0.0001",",","warm_start=False",")",">",">",">","print","(","clf.coef_",")","[","[","0.45663524","0.45612256","]","[","0.45663524","0.45612256","]","]",">",">",">","print","(","clf.intercept_",")","[","0.0872422","0.0872422","]","See","also","--","--","--","--","ElasticNet",",","MultiTaskLasso","Notes","--","--","-","The","algorithm","used","to","fit","the","model","is","coordinate","descent",".","To","avoid","unnecessary","memory","duplication","the","X","argument","of","the","fit","method","should","be","directly","passed","as","a","Fortran-contiguous","numpy","array","."]
code: def __init__(
      self,
      alpha=1.0,
      l1_ratio=0.5,
      fit_intercept=True,
      normalize=False,
      copy_X=True,
      max_iter=1000,
      tol=1e-4,
      warm_start=False,
      random_state=None,
      selection="cyclic",
  ):
      self.l1_ratio = l1_ratio
      self.alpha = alpha
      self.coef_ = None
      self.fit_intercept = fit_intercept
      self.normalize = normalize
      self.max_iter = max_iter
      self.copy_X = copy_X
      self.tol = tol
      self.warm_start = warm_start
      self.random_state = random_state
      self.selection = selection
  
imports: import sys
  import warnings
  from abc import ABCMeta, abstractmethod
  import numpy
  from scipy import sparse
  from .base import LinearModel, _pre_fit
  from ..base import RegressorMixin
  from .base import _preprocess_data
  from ..utils import check_array, check_X_y, deprecated
  from ..utils.validation import check_random_state
  from ..model_selection import check_cv
  from ..externals.joblib import Parallel, delayed
  from ..externals import six
  from ..externals.six.moves import xrange
  from ..utils.extmath import safe_sparse_dot
  from ..utils.validation import check_is_fitted
  from ..utils.validation import column_or_1d
  from ..exceptions import ConvergenceWarning
  from .None import cd_fast
label_desc: Use image node_id 1 to create a new MultiTaskElasticNet object from inherited base classes: Lasso with example: obj = MultiTaskElasticNet(alpha, l1_ratio, fit_intercept, normalize, copy_X, max_iter, tol, warm_start, random_state, selection)