class_docstr: The features of an observation.
  
  These include both the arm parameters and the features of the
  observation found in the Data object: trial index, times,
  and random split. This object is meant to contain everything needed to
  represent this observation in a model feature space. It is essentially a
  row of Data joined with the arm parameters.
  
  An ObservationFeatures object would typically have a corresponding
  ObservationData object that provides the observed outcomes.
  
  Attributes:
      parameters: arm parameters
      trial_index: trial index
      start_time: batch start time
      end_time: batch end time
      random_split: random split
class_docstr_tok: ["The","features","of","an","observation",".","These","include","both","the","arm","parameters","and","the","features","of","the","observation","found","in","the","Data","object",":","trial","index",",","times",",","and","random","split",".","This","object","is","meant","to","contain","everything","needed","to","represent","this","observation","in","a","model","feature","space",".","It","is","essentially","a","row","of","Data","joined","with","the","arm","parameters",".","An","ObservationFeatures","object","would","typically","have","a","corresponding","ObservationData","object","that","provides","the","observed","outcomes",".","Attributes",":","parameters",":","arm","parameters","trial_index",":","trial","index","start_time",":","batch","start","time","end_time",":","batch","end","time","random_split",":","random","split"]
code: def __init__(
      self,
      parameters: TParameterization,
      trial_index: Optional[int] = None,
      start_time: Optional[pd.Timestamp] = None,
      end_time: Optional[pd.Timestamp] = None,
      random_split: Optional[int] = None,
      metadata: TCandidateMetadata = None,
  ) -> None:
      self.parameters = parameters
      self.trial_index = trial_index
      self.start_time = start_time
      self.end_time = end_time
      self.random_split = random_split
      self.metadata = metadata
  
imports: from __future__ import annotations
  import json
  import warnings
  from copy import deepcopy
  from typing import Dict, Iterable, List, Optional, Set, Tuple
  import ax.core.experiment
  import numpy
  import pandas
  from ax.core.arm import Arm
  from ax.core.batch_trial import BatchTrial
  from ax.core.data import Data
  from ax.core.map_data import MapData
  from ax.core.types import TCandidateMetadata, TParameterization
  from ax.utils.common.base import Base
  from ax.utils.common.constants import Keys
  from ax.utils.common.typeutils import not_none
label_desc: Use image node_id 1 to create a new ObservationFeatures object from inherited base classes: Base with example: obj = ObservationFeatures(parameters, trial_index, start_time, end_time, random_split, metadata)