class_docstr: Estimator for learning linear classifiers by (block) coordinate descent.
  
  The objective functions considered take the form
  
  minimize F(W) = C * L(W) + alpha * R(W),
  
  where L(W) is a loss term and R(W) is a penalty term.
  
  Parameters
  ----------
  loss : str, 'squared_hinge', 'log', 'modified_huber', 'squared'
      The loss function to be used.
  
  penalty : str, 'l2', 'l1', 'l1/l2'
      The penalty to be used.
  
      - l2: ridge
      - l1: lasso
      - l1/l2: group lasso
  
  multiclass : bool
      Whether to use a direct multiclass formulation (True) or one-vs-rest
      (False). Direct formulations are only available for loss='squared_hinge'
      and loss='log'.
  
  C : float
      Weight of the loss term.
  
  alpha : float
      Weight of the penalty term.
  
  max_iter : int
      Maximum number of iterations to perform.
  
  tol : float
      Tolerance of the stopping criterion.
  
  termination : str, 'violation_sum', 'violation_max'
      Stopping criterion to use.
  
  shrinking : bool
      Whether to activate shrinking or not.
  
  max_steps : int or "auto"
      Maximum number of steps to use during the line search. Use max_steps=0
      to use a constant step size instead of the line search. Use
      max_steps="auto" to let CDClassifier choose the best value.
  
  sigma : float
      Constant used in the line search sufficient decrease condition.
  
  beta : float
      Multiplicative constant used in the backtracking line search.
  
  warm_start : bool
      Whether to activate warm-start or not.
  
  debiasing : bool
      Whether to refit the model using l2 penalty (only useful if penalty='l1'
      or penalty='l1/l2').
  
  Cd : float
      Value of `C` when doing debiasing.
  
  warm_debiasing : bool
      Whether to warm-start the model or not when doing debiasing.
  
  selection : str, 'cyclic', 'uniform'
      Strategy to use for selecting coordinates.
  
  permute : bool
      Whether to permute coordinates or not before cycling (only when
      selection='cyclic').
  
  callback : callable
      Callback function.
  
  n_calls : int
      Frequency with which `callback` must be called.
  
  random_state : RandomState or int
      The seed of the pseudo random number generator to use.
  
  verbose : int
      Verbosity level.
  
  n_jobs : int
      Number of CPU's to be used when `multiclass=False` and when
      penalty is a non group-lasso penalty. By default use one CPU.
      If set to -1, use all CPU's
  
  Examples
  --------
  The following example demonstrates how to learn a classification
  model with a multiclass squared hinge loss and an l1/l2 penalty.
  
  >>> from sklearn.datasets import fetch_20newsgroups_vectorized
  >>> from lightning.classification import CDClassifier
  >>> bunch = fetch_20newsgroups_vectorized(subset="all")
  >>> X, y = bunch.data, bunch.target
  >>> clf = CDClassifier(penalty="l1/l2",
                         loss="squared_hinge",
                         multiclass=True,
                         max_iter=20,
                         alpha=1e-4,
                         C=1.0 / X.shape[0],
                         tol=1e-3,
                         random_state=0).fit(X, y)
  >>> accuracy = clf.score(X, y)
  
  References
  ----------
  Block Coordinate Descent Algorithms for Large-scale Sparse Multiclass
  Classification.  Mathieu Blondel, Kazuhiro Seki, and Kuniaki Uehara.
  Machine Learning, May 2013.
class_docstr_tok: ["Estimator","for","learning","linear","classifiers","by","(","block",")","coordinate","descent",".","The","objective","functions","considered","take","the","form","minimize","F","(","W",")","=","C","*","L","(","W",")","+","alpha","*","R","(","W",")",",","where","L","(","W",")","is","a","loss","term","and","R","(","W",")","is","a","penalty","term",".","Parameters","--","--","--","--","--","loss",":","str",",","'squared_hinge","'",",","'log","'",",","'modified_huber","'",",","'squared'","The","loss","function","to","be","used",".","penalty",":","str",",","'l2","'",",","'l1","'",",","'l1\/l2'","The","penalty","to","be","used",".","-","l2",":","ridge","-","l1",":","lasso","-","l1\/l2",":","group","lasso","multiclass",":","bool","Whether","to","use","a","direct","multiclass","formulation","(","True",")","or","one-vs-rest","(","False",")",".","Direct","formulations","are","only","available","for","loss='squared_hinge'","and","loss='log","'",".","C",":","float","Weight","of","the","loss","term",".","alpha",":","float","Weight","of","the","penalty","term",".","max_iter",":","int","Maximum","number","of","iterations","to","perform",".","tol",":","float","Tolerance","of","the","stopping","criterion",".","termination",":","str",",","'violation_sum","'",",","'violation_max'","Stopping","criterion","to","use",".","shrinking",":","bool","Whether","to","activate","shrinking","or","not",".","max_steps",":","int","or","``","auto","''","Maximum","number","of","steps","to","use","during","the","line","search",".","Use","max_steps=0","to","use","a","constant","step","size","instead","of","the","line","search",".","Use","max_steps=","''","auto","''","to","let","CDClassifier","choose","the","best","value",".","sigma",":","float","Constant","used","in","the","line","search","sufficient","decrease","condition",".","beta",":","float","Multiplicative","constant","used","in","the","backtracking","line","search",".","warm_start",":","bool","Whether","to","activate","warm-start","or","not",".","debiasing",":","bool","Whether","to","refit","the","model","using","l2","penalty","(","only","useful","if","penalty='l1'","or","penalty='l1\/l2","'",")",".","Cd",":","float","Value","of","`","C","`","when","doing","debiasing",".","warm_debiasing",":","bool","Whether","to","warm-start","the","model","or","not","when","doing","debiasing",".","selection",":","str",",","'cyclic","'",",","'uniform'","Strategy","to","use","for","selecting","coordinates",".","permute",":","bool","Whether","to","permute","coordinates","or","not","before","cycling","(","only","when","selection='cyclic","'",")",".","callback",":","callable","Callback","function",".","n_calls",":","int","Frequency","with","which","`","callback","`","must","be","called",".","random_state",":","RandomState","or","int","The","seed","of","the","pseudo","random","number","generator","to","use",".","verbose",":","int","Verbosity","level",".","n_jobs",":","int","Number","of","CPU","'s","to","be","used","when","`","multiclass=False","`","and","when","penalty","is","a","non","group-lasso","penalty",".","By","default","use","one","CPU",".","If","set","to","-1",",","use","all","CPU's","Examples","--","--","--","--","The","following","example","demonstrates","how","to","learn","a","classification","model","with","a","multiclass","squared","hinge","loss","and","an","l1\/l2","penalty",".",">",">",">","from","sklearn.datasets","import","fetch_20newsgroups_vectorized",">",">",">","from","lightning.classification","import","CDClassifier",">",">",">","bunch","=","fetch_20newsgroups_vectorized","(","subset=","''","all","''",")",">",">",">","X",",","y","=","bunch.data",",","bunch.target",">",">",">","clf","=","CDClassifier","(","penalty=","''","l1\/l2","''",",","loss=","''","squared_hinge","''",",","multiclass=True",",","max_iter=20",",","alpha=1e-4",",","C=1.0","\/","X.shape","[","0","]",",","tol=1e-3",",","random_state=0",")",".fit","(","X",",","y",")",">",">",">","accuracy","=","clf.score","(","X",",","y",")","References","--","--","--","--","--","Block","Coordinate","Descent","Algorithms","for","Large-scale","Sparse","Multiclass","Classification",".","Mathieu","Blondel",",","Kazuhiro","Seki",",","and","Kuniaki","Uehara",".","Machine","Learning",",","May","2013","."]
code: def __init__(
      self,
      loss="squared_hinge",
      penalty="l2",
      multiclass=False,
      C=1.0,
      alpha=1.0,
      max_iter=50,
      tol=1e-3,
      termination="violation_sum",
      shrinking=True,
      max_steps="auto",
      sigma=0.01,
      beta=0.5,
      warm_start=False,
      debiasing=False,
      Cd=1.0,
      warm_debiasing=False,
      selection="cyclic",
      permute=True,
      callback=None,
      n_calls=100,
      random_state=None,
      verbose=0,
      n_jobs=1,
  ):
      self.C = C
      self.alpha = alpha
      self.loss = loss
      self.penalty = penalty
      self.multiclass = multiclass
      self.max_iter = max_iter
      self.tol = tol
      self.termination = termination
      self.shrinking = shrinking
      self.max_steps = max_steps
      self.sigma = sigma
      self.beta = beta
      self.warm_start = warm_start
      self.debiasing = debiasing
      self.Cd = Cd
      self.warm_debiasing = warm_debiasing
      self.selection = selection
      self.permute = permute
      self.callback = callback
      self.n_calls = n_calls
      self.random_state = random_state
      self.verbose = verbose
      self.coef_ = None
      self.violation_init_ = {}
      self.n_jobs = n_jobs
  
imports: import numpy
  from joblib import Parallel, delayed
  from .base import BaseClassifier
  from .base import BaseRegressor
  from .dataset_fast import get_dataset
  from .primal_cd_fast import _primal_cd
  from .primal_cd_fast import Squared
  from .primal_cd_fast import SmoothHinge
  from .primal_cd_fast import SquaredHinge
  from .primal_cd_fast import ModifiedHuber
  from .primal_cd_fast import Log
label_desc: Use image node_id 1 to create a new CDClassifier object from inherited base classes: _BaseCD, BaseClassifier with example: obj = CDClassifier(loss, penalty, multiclass, C, alpha, max_iter, tol, termination, shrinking, max_steps, sigma, beta, warm_start, debiasing, Cd, warm_debiasing, selection, permute, callback, n_calls, random_state, verbose, n_jobs)