class_docstr: This wrapper splits `train_data` into training and validation sets stored in `train_data` and `val_data` for the wrapped analyses.
  The split is performed for datasets in `args` and passed to all `children` during `fit` call shadowing outer parameters.
  
  This component requires :py:class:`~autogluon.eda.visualization.dataset.ProblemTypeControl` present in the analysis call to set `problem_type`.
  
  Parameters
  ----------
  val_size: float, default = 0.3
      fraction of training set to be assigned as validation set during the split.
  parent: Optional[AbstractAnalysis], default = None
      parent Analysis
  children: Optional[List[AbstractAnalysis]], default None
      wrapped analyses; these will receive sampled `args` during `fit` call
  kwargs
  
  Examples
  --------
  >>> from autogluon.eda.analysis.base import BaseAnalysis
  >>> from autogluon.eda.analysis import Sampler
  >>> import pandas as pd
  >>> import numpy as np
  >>>
  >>> df_train = pd.DataFrame(np.random.randint(0, 100, size=(100, 4)), columns=list("ABCD"))
  >>> analysis = BaseAnalysis(train_data=df_train, label="D", children=[
  >>>         Namespace(namespace="ns_val_split_specified", children=[
  >>>             ProblemTypeControl(),
  >>>             TrainValidationSplit(val_pct=0.4, children=[
  >>>                 # This analysis sees 60/40 split of df_train between train_data and val_data
  >>>                 SomeAnalysis()
  >>>             ])
  >>>         ]),
  >>>         Namespace(namespace="ns_val_split_default", children=[
  >>>             ProblemTypeControl(),
  >>>             TrainValidationSplit(children=[
  >>>                 # This analysis sees 70/30 split (default) of df_train between train_data and val_data
  >>>                 SomeAnalysis()
  >>>             ])
  >>>         ]),
  >>>         Namespace(namespace="ns_no_split", children=[
  >>>                 # This analysis sees only original train_data
  >>>             SomeAnalysis()
  >>>         ]),
  >>>     ],
  >>> )
  >>>
  >>> state = analysis.fit()
  >>>
  
  See Also
  --------
  :py:class:`~autogluon.eda.visualization.dataset.ProblemTypeControl`
class_docstr_tok: ["This","wrapper","splits","`","train_data","`","into","training","and","validation","sets","stored","in","`","train_data","`","and","`","val_data","`","for","the","wrapped","analyses",".","The","split","is","performed","for","datasets","in","`","args","`","and","passed","to","all","`","children","`","during","`","fit","`","call","shadowing","outer","parameters",".","This","component","requires",":","py",":","class",":","`","~autogluon.eda.visualization.dataset.ProblemTypeControl","`","present","in","the","analysis","call","to","set","`","problem_type","`",".","Parameters","--","--","--","--","--","val_size",":","float",",","default","=","0.3","fraction","of","training","set","to","be","assigned","as","validation","set","during","the","split",".","parent",":","Optional","[","AbstractAnalysis","]",",","default","=","None","parent","Analysis","children",":","Optional","[","List","[","AbstractAnalysis","]","]",",","default","None","wrapped","analyses",";","these","will","receive","sampled","`","args","`","during","`","fit","`","call","kwargs","Examples","--","--","--","--",">",">",">","from","autogluon.eda.analysis.base","import","BaseAnalysis",">",">",">","from","autogluon.eda.analysis","import","Sampler",">",">",">","import","pandas","as","pd",">",">",">","import","numpy","as","np",">",">",">",">",">",">","df_train","=","pd.DataFrame","(","np.random.randint","(","0",",","100",",","size=","(","100",",","4",")",")",",","columns=list","(","``","ABCD","''",")",")",">",">",">","analysis","=","BaseAnalysis","(","train_data=df_train",",","label=","''","D","''",",","children=","[",">",">",">","Namespace","(","namespace=","''","ns_val_split_specified","''",",","children=","[",">",">",">","ProblemTypeControl","(",")",",",">",">",">","TrainValidationSplit","(","val_pct=0.4",",","children=","[",">",">",">","#","This","analysis","sees","60\/40","split","of","df_train","between","train_data","and","val_data",">",">",">","SomeAnalysis","(",")",">",">",">","]",")",">",">",">","]",")",",",">",">",">","Namespace","(","namespace=","''","ns_val_split_default","''",",","children=","[",">",">",">","ProblemTypeControl","(",")",",",">",">",">","TrainValidationSplit","(","children=","[",">",">",">","#","This","analysis","sees","70\/30","split","(","default",")","of","df_train","between","train_data","and","val_data",">",">",">","SomeAnalysis","(",")",">",">",">","]",")",">",">",">","]",")",",",">",">",">","Namespace","(","namespace=","''","ns_no_split","''",",","children=","[",">",">",">","#","This","analysis","sees","only","original","train_data",">",">",">","SomeAnalysis","(",")",">",">",">","]",")",",",">",">",">","]",",",">",">",">",")",">",">",">",">",">",">","state","=","analysis.fit","(",")",">",">",">","See","Also","--","--","--","--",":","py",":","class",":","`","~autogluon.eda.visualization.dataset.ProblemTypeControl","`"]
code: def __init__(
      self,
      val_size: float = 0.3,
      parent: Optional[AbstractAnalysis] = None,
      children: Optional[List[AbstractAnalysis]] = None,
      **kwargs,
  ) -> None:
      super().__init__(parent, children, **kwargs)
  
      assert 0 < val_size < 1.0, "val_size must be between 0 and 1"
      self.val_size = val_size
  
imports: from __future__ import annotations
  from typing import Any, Dict, List, Optional, Set, Union
  import numpy
  import pandas
  from autogluon.common.features.infer_types import get_type_group_map_special, get_type_map_raw
  from autogluon.common.features.types import R_BOOL, R_CATEGORY, R_FLOAT, R_INT, R_OBJECT
  from ..state import AnalysisState
  from .base import AbstractAnalysis
  from autogluon.core.constants import BINARY, MULTICLASS, PROBLEM_TYPES_CLASSIFICATION, PROBLEM_TYPES_REGRESSION, REGRESSION
  from autogluon.core.utils import generate_train_test_split_combined, infer_problem_type
label_desc: Use image node_id 1 to create a new TrainValidationSplit object from inherited base classes: AbstractAnalysis with example: obj = TrainValidationSplit(val_size, parent, children)