docstr: ...Test LogisticRegression warm start
          
docstr_tok: ["...","Test","LogisticRegression","warm","start"]
code: def test_LogisticRegression_warm_start(self):
      """...Test LogisticRegression warm start"""
      sto_seed = 179312
      X, y = Test.get_train_data()
  
      fit_intercepts = [True, False]
      cases = itertools.product(solvers, fit_intercepts)
  
      for solver, fit_intercept in cases:
          solver_kwargs = {
              "solver": solver,
              "max_iter": 2,
              "fit_intercept": fit_intercept,
              "warm_start": True,
              "tol": 0,
          }
  
          if solver == "sdca":
              msg = "^SDCA cannot be warm started$"
              with self.assertRaisesRegex(ValueError, msg):
                  LogisticRegression(**solver_kwargs)
  
          else:
              if solver in ["sgd", "svrg"]:
                  solver_kwargs["random_state"] = sto_seed
  
              if solver == "sgd":
                  solver_kwargs["step"] = 0.3
  
              learner = LogisticRegression(**solver_kwargs)
  
              learner.fit(X, y)
              if fit_intercept:
                  coeffs_1 = np.hstack(
                      (learner.weights, learner.intercept)
                  )
              else:
                  coeffs_1 = learner.weights
  
              learner.fit(X, y)
              if fit_intercept:
                  coeffs_2 = np.hstack(
                      (learner.weights, learner.intercept)
                  )
              else:
                  coeffs_2 = learner.weights
  
              # Thanks to warm start objective should have decreased
              self.assertLess(
                  learner._solver_obj.objective(coeffs_2),
                  learner._solver_obj.objective(coeffs_1),
              )
  
imports: import itertools
  import unittest
  import numpy
  from sklearn.metrics import roc_auc_score
  from tick.base.inference import InferenceTest
  from tick.linear_model import SimuLogReg, LogisticRegression
  from tick.simulation import weights_sparse_gauss
  from tick.preprocessing.features_binarizer import FeaturesBinarizer
  from tick.prox import ProxZero, ProxL1, ProxL2Sq, ProxElasticNet, ProxTV, ProxBinarsity
label_desc: Use image node_id 4 for calling the Test obj's underlying member method code with example usage: obj.test_LogisticRegression_warm_start() without return types