class_docstr: The config transformer transforms a configuration (model + dataset) into a
  real-valued vector.
class_docstr_tok: ["The","config","transformer","transforms","a","configuration","(","model","+","dataset",")","into","a","real-valued","vector","."]
docstr: Args:
      add_model_type: Whether a one-hot encoding of the model type as well as model
          hyperparameters should be added.
      add_dataset_statistics: Whether simple dataset statistics ought to be added.
      add_seasonal_naive_performance: Whether to add the nCRPS performance of Seasonal Naïve.
          Requires the cacher to be set.
      add_catch_22_features: Whether a dataset's catch22 features ought to be added.
      tracker: An optional tracker to obtain the performance of Seasonal Naïve.
code: def __init__(
      self,
      add_model_features: bool = True,
      add_dataset_statistics: bool = True,
      add_seasonal_naive_performance: bool = False,
      add_catch22_features: bool = False,
      tracker: ModelTracker | None = None,
  ):
      """
      Args:
          add_model_type: Whether a one-hot encoding of the model type as well as model
              hyperparameters should be added.
          add_dataset_statistics: Whether simple dataset statistics ought to be added.
          add_seasonal_naive_performance: Whether to add the nCRPS performance of Seasonal Naïve.
              Requires the cacher to be set.
          add_catch_22_features: Whether a dataset's catch22 features ought to be added.
          tracker: An optional tracker to obtain the performance of Seasonal Naïve.
      """
      assert any(
          [
              add_model_features,
              add_dataset_statistics,
              add_seasonal_naive_performance,
              add_catch22_features,
          ]
      ), "ConfigTransformer must be given at least some group of features."
      assert (
          not add_seasonal_naive_performance or tracker is not None
      ), "Tracker must be set if seasonal naive performance is used."
  
      self.encoders = []
      if add_model_features:
          self.encoders.append(ModelEncoder(transform_full_config=True))
      if add_dataset_statistics:
          self.encoders.append(DatasetStatisticsEncoder())
      if add_seasonal_naive_performance and tracker is not None:
          self.encoders.append(SeasonalNaivePerformanceEncoder(tracker))
      if add_catch22_features:
          self.encoders.append(DatasetCatch22Encoder())
  
      self.pipeline = make_union(*self.encoders)
  
imports: from __future__ import annotations
  from abc import ABC, abstractmethod
  from typing import Any, cast, Dict, List, Optional, Set, Union
  import numpy
  import numpy.typing
  import pandas
  from sklearn.base import TransformerMixin
  from sklearn.feature_extraction import DictVectorizer
  from sklearn.impute import SimpleImputer
  from sklearn.pipeline import make_pipeline, make_union
  from sklearn.preprocessing import MinMaxScaler, PowerTransformer, StandardScaler
  from tsbench.config import Config, EnsembleConfig, MODEL_REGISTRY, ModelConfig, TrainConfig
  from tsbench.config.model.models import SeasonalNaiveModelConfig
  from tsbench.evaluations.tracking import ModelTracker
label_desc: Use image node_id 1 to create a new ConfigTransformer object from inherited base classes: TransformerMixin with example: obj = ConfigTransformer(add_model_features, add_dataset_statistics, add_seasonal_naive_performance, add_catch22_features, tracker)