class_docstr: Local Search Algorithm.
  
  This algorithm expects to start with a very good hyperparameter
  configuration. It changes one hyperparameter at a time to see if better
  results can be obtained.
  
  Args:
      seed_configuration (dict): hyperparameter configuration to start with.
      perturbation_factors (Union[tuple,list]): continuous parameters will be
          multiplied by these.
      repeat_trials (int): number of times that identical configurations are
          repeated to test for random fluctuations.
class_docstr_tok: ["Local","Search","Algorithm",".","This","algorithm","expects","to","start","with","a","very","good","hyperparameter","configuration",".","It","changes","one","hyperparameter","at","a","time","to","see","if","better","results","can","be","obtained",".","Args",":","seed_configuration","(","dict",")",":","hyperparameter","configuration","to","start","with",".","perturbation_factors","(","Union","[","tuple",",","list","]",")",":","continuous","parameters","will","be","multiplied","by","these",".","repeat_trials","(","int",")",":","number","of","times","that","identical","configurations","are","repeated","to","test","for","random","fluctuations","."]
code: def __init__(
      self,
      seed_configuration,
      perturbation_factors=(0.8, 1.2),
      repeat_trials=1,
  ):
      self.seed_configuration = seed_configuration
      self.count = 0
      self.submitted = []
      self.perturbation_factors = perturbation_factors
      self.next_trial = []
      self.repeat_trials = repeat_trials
  
imports: import os
  import random
  import numpy
  import logging
  import sherpa
  import pandas
  import sklearn.gaussian_process
  from sherpa.core import Choice, Continuous, Discrete, Ordinal, AlgorithmState
  from sherpa.core import rng
  import sklearn.model_selection
  import collections
label_desc: Use image node_id 1 to create a new LocalSearch object from inherited base classes: Algorithm with example: obj = LocalSearch(seed_configuration, perturbation_factors, repeat_trials)