class_docstr: The Elastic Ensemble (EE).
  
  EE as described in [1].
  
  Overview:
  
  - Input n series length m
  - EE is an ensemble of elastic nearest neighbor classifiers
  
  Parameters
  ----------
  distance_measures : list of strings, optional (default="all")
    A list of strings identifying which distance measures to include. Valid values
    are one or more of: euclidean, dtw, wdtw, ddtw, dwdtw, lcss, erp, msm
  proportion_of_param_options : float, optional (default=1)
    The proportion of the parameter grid space to search optional.
  proportion_train_in_param_finding : float, optional (default=1)
    The proportion of the train set to use in the parameter search optional.
  proportion_train_for_test : float, optional (default=1)
    The proportion of the train set to use in classifying new cases optional.
  n_jobs : int, optional (default=1)
    The number of jobs to run in parallel for both `fit` and `predict`.
    ``-1`` means using all processors.
  random_state : int, default=0
    The random seed.
  verbose : int, default=0
    If ``>0``, then prints out debug information.
  
  Attributes
  ----------
  estimators_ : list
    A list storing all classifiers
  train_accs_by_classifier : ndarray
    Store the train accuracies of the classifiers
  
  Notes
  -----
  ..[1] Jason Lines and Anthony Bagnall,
        "Time Series Classification with Ensembles of Elastic Distance Measures",
            Data Mining and Knowledge Discovery, 29(3), 2015.
  https://link.springer.com/article/10.1007/s10618-014-0361-2
  
  Examples
  --------
  >>> from sktime.classification.distance_based import ElasticEnsemble
  >>> from sktime.datasets import load_unit_test  # doctest: +SKIP
  >>> X_train, y_train = load_unit_test(split="train")  # doctest: +SKIP
  >>> X_test, y_test = load_unit_test(split="test")  # doctest: +SKIP
  >>> clf = ElasticEnsemble(
  ...     proportion_of_param_options=0.1,
  ...     proportion_train_for_test=0.1,
  ...     distance_measures = ["dtw","ddtw"],
  ...     majority_vote=True,
  ... )  # doctest: +SKIP
  >>> clf.fit(X_train, y_train)  # doctest: +SKIP
  ElasticEnsemble(...)
  >>> y_pred = clf.predict(X_test)  # doctest: +SKIP
class_docstr_tok: ["The","Elastic","Ensemble","(","EE",")",".","EE","as","described","in","[","1","]",".","Overview",":","-","Input","n","series","length","m","-","EE","is","an","ensemble","of","elastic","nearest","neighbor","classifiers","Parameters","--","--","--","--","--","distance_measures",":","list","of","strings",",","optional","(","default=","''","all","''",")","A","list","of","strings","identifying","which","distance","measures","to","include",".","Valid","values","are","one","or","more","of",":","euclidean",",","dtw",",","wdtw",",","ddtw",",","dwdtw",",","lcss",",","erp",",","msm","proportion_of_param_options",":","float",",","optional","(","default=1",")","The","proportion","of","the","parameter","grid","space","to","search","optional",".","proportion_train_in_param_finding",":","float",",","optional","(","default=1",")","The","proportion","of","the","train","set","to","use","in","the","parameter","search","optional",".","proportion_train_for_test",":","float",",","optional","(","default=1",")","The","proportion","of","the","train","set","to","use","in","classifying","new","cases","optional",".","n_jobs",":","int",",","optional","(","default=1",")","The","number","of","jobs","to","run","in","parallel","for","both","`","fit","`","and","`","predict","`",".","``","-1","``","means","using","all","processors",".","random_state",":","int",",","default=0","The","random","seed",".","verbose",":","int",",","default=0","If","``",">","0","``",",","then","prints","out","debug","information",".","Attributes","--","--","--","--","--","estimators_",":","list","A","list","storing","all","classifiers","train_accs_by_classifier",":","ndarray","Store","the","train","accuracies","of","the","classifiers","Notes","--","--","-","..","[","1","]","Jason","Lines","and","Anthony","Bagnall",",","``","Time","Series","Classification","with","Ensembles","of","Elastic","Distance","Measures","''",",","Data","Mining","and","Knowledge","Discovery",",","29","(","3",")",",","2015.","https",":","\/\/link.springer.com\/article\/10.1007\/s10618-014-0361-2","Examples","--","--","--","--",">",">",">","from","sktime.classification.distance_based","import","ElasticEnsemble",">",">",">","from","sktime.datasets","import","load_unit_test","#","doctest",":","+SKIP",">",">",">","X_train",",","y_train","=","load_unit_test","(","split=","''","train","''",")","#","doctest",":","+SKIP",">",">",">","X_test",",","y_test","=","load_unit_test","(","split=","''","test","''",")","#","doctest",":","+SKIP",">",">",">","clf","=","ElasticEnsemble","(","...","proportion_of_param_options=0.1",",","...","proportion_train_for_test=0.1",",","...","distance_measures","=","[","``","dtw","''",",","''","ddtw","''","]",",","...","majority_vote=True",",","...",")","#","doctest",":","+SKIP",">",">",">","clf.fit","(","X_train",",","y_train",")","#","doctest",":","+SKIP","ElasticEnsemble","(","...",")",">",">",">","y_pred","=","clf.predict","(","X_test",")","#","doctest",":","+SKIP"]
code: def _get_100_param_options(
      distance_measure, train_x=None, data_dim_to_use=0
  ):
      def get_inclusive(min_val, max_val, num_vals):
          inc = (max_val - min_val) / (num_vals - 1)
          return np.arange(min_val, max_val + inc / 2, inc)
  
      if distance_measure == "dtw" or distance_measure == "ddtw":
          return {
              "distance_params": [
                  {"window": x / 100} for x in range(0, 100)
              ]
          }
      elif distance_measure == "wdtw" or distance_measure == "wddtw":
          return {
              "distance_params": [{"g": x / 100} for x in range(0, 100)]
          }
      elif distance_measure == "lcss":
          train_std = np.std(train_x)
          epsilons = get_inclusive(train_std * 0.2, train_std, 10)
          deltas = get_inclusive(0, 0.25, 10)
          a = list(product(epsilons, deltas))
          return {
              "distance_params": [
                  {"epsilon": a[x][0], "window": a[x][1]}
                  for x in range(0, len(a))
              ]
          }
      elif distance_measure == "erp":
          train_std = np.std(train_x)
          band_sizes = get_inclusive(0, 0.25, 10)
          g_vals = get_inclusive(train_std * 0.2, train_std, 10)
          b_and_g = list(product(band_sizes, g_vals))
          return {
              "distance_params": [
                  {"window": b_and_g[x][0], "g": b_and_g[x][1]}
                  for x in range(0, len(b_and_g))
              ]
          }
      elif distance_measure == "msm":
          a = get_inclusive(0.01, 0.1, 25)
          b = get_inclusive(0.1, 1, 26)
          c = get_inclusive(1, 10, 26)
          d = get_inclusive(10, 100, 26)
          return {
              "distance_params": [
                  {"c": x}
                  for x in np.concatenate([a, b[1:], c[1:], d[1:]])
              ]
          }
      # elif distance_measure == twe_distance
      else:
          raise NotImplementedError(
              "EE does not currently support: " + str(distance_measure)
          )
  
file_path: sktime/sktime/classification/distance_based/_elastic_ensemble.py
imports: import time
  from itertools import product
  import numpy
  import pandas
  from sklearn.metrics import accuracy_score
  from sklearn.model_selection import GridSearchCV, LeaveOneOut, RandomizedSearchCV, StratifiedShuffleSplit, cross_val_predict
  from sktime.classification.base import BaseClassifier
  from sktime.classification.distance_based._time_series_neighbors import KNeighborsTimeSeriesClassifier
  from sktime.datatypes._panel._convert import from_nested_to_3d_numpy
  from sktime.transformations.panel.summarize import DerivativeSlopeTransformer
label_desc: Use image node_id 6 for calling the ElasticEnsemble obj's underlying member method code with example usage: obj._get_100_param_options(distance_measure, train_x, data_dim_to_use) and returns: np, dict, dict, dict, dict, dict