class_docstr: The JsonAI Class allows users to construct flexible JSON config to specify their ML pipeline. JSON-AI follows a     recipe of how to pre-process data, construct features, and train on the target column. To do so, the following     specifications are required internally.
  
  :param encoders: A dictionary of the form: `column_name -> encoder module`
  :param dtype_dict: A dictionary of the form: `column_name -> data type`
  :param dependency_dict: A dictionary of the form: `column_name -> list of columns it depends on`
  :param model: The ensemble and its submodels
  :param problem_definition: The ``ProblemDefinition`` criteria.
  :param identifiers: A dictionary of column names and respective data types that are likely identifiers/IDs within the data. Through the default cleaning process, these are ignored.
  :param cleaner: The Cleaner object represents the pre-processing step on a dataframe. The user can specify custom subroutines, if they choose, on how to handle preprocessing. Alternatively, "None" suggests the default approach in ``dataprep_ml.cleaners``.
  :param splitter: The Splitter object is the method in which the input data is split into training/validation/testing data. For more details, refer to the `dataprep_ml` package documentation.
  :param analyzer: The Analyzer object is used to evaluate how well a model performed on the predictive task.
  :param explainer: The Explainer object deploys explainability tools of interest on a model to indicate how well a model generalizes its predictions.
  :param imputers: A list of objects that will impute missing data on each column. They are called inside the cleaner.
  :param analysis_blocks: The blocks that get used in both analysis and inference inside the analyzer and explainer blocks.
  :param timeseries_transformer: Procedure used to transform any timeseries task dataframe into the format that lightwood expects for the rest of the pipeline.  
  :param timeseries_analyzer: Procedure that extracts key insights from any timeseries in the data (e.g. measurement frequency, target distribution, etc).
  :param accuracy_functions: A list of performance metrics used to evaluate the best mixers.
class_docstr_tok: ["The","JsonAI","Class","allows","users","to","construct","flexible","JSON","config","to","specify","their","ML","pipeline",".","JSON-AI","follows","a","recipe","of","how","to","pre-process","data",",","construct","features",",","and","train","on","the","target","column",".","To","do","so",",","the","following","specifications","are","required","internally",".",":","param","encoders",":","A","dictionary","of","the","form",":","`","column_name","-",">","encoder","module","`",":","param","dtype_dict",":","A","dictionary","of","the","form",":","`","column_name","-",">","data","type","`",":","param","dependency_dict",":","A","dictionary","of","the","form",":","`","column_name","-",">","list","of","columns","it","depends","on","`",":","param","model",":","The","ensemble","and","its","submodels",":","param","problem_definition",":","The","``","ProblemDefinition","``","criteria",".",":","param","identifiers",":","A","dictionary","of","column","names","and","respective","data","types","that","are","likely","identifiers\/IDs","within","the","data",".","Through","the","default","cleaning","process",",","these","are","ignored",".",":","param","cleaner",":","The","Cleaner","object","represents","the","pre-processing","step","on","a","dataframe",".","The","user","can","specify","custom","subroutines",",","if","they","choose",",","on","how","to","handle","preprocessing",".","Alternatively",",","``","None","''","suggests","the","default","approach","in","``","dataprep_ml.cleaners","``",".",":","param","splitter",":","The","Splitter","object","is","the","method","in","which","the","input","data","is","split","into","training\/validation\/testing","data",".","For","more","details",",","refer","to","the","`","dataprep_ml","`","package","documentation",".",":","param","analyzer",":","The","Analyzer","object","is","used","to","evaluate","how","well","a","model","performed","on","the","predictive","task",".",":","param","explainer",":","The","Explainer","object","deploys","explainability","tools","of","interest","on","a","model","to","indicate","how","well","a","model","generalizes","its","predictions",".",":","param","imputers",":","A","list","of","objects","that","will","impute","missing","data","on","each","column",".","They","are","called","inside","the","cleaner",".",":","param","analysis_blocks",":","The","blocks","that","get","used","in","both","analysis","and","inference","inside","the","analyzer","and","explainer","blocks",".",":","param","timeseries_transformer",":","Procedure","used","to","transform","any","timeseries","task","dataframe","into","the","format","that","lightwood","expects","for","the","rest","of","the","pipeline",".",":","param","timeseries_analyzer",":","Procedure","that","extracts","key","insights","from","any","timeseries","in","the","data","(","e.g",".","measurement","frequency",",","target","distribution",",","etc",")",".",":","param","accuracy_functions",":","A","list","of","performance","metrics","used","to","evaluate","the","best","mixers","."]
docstr: Creates JSON config to represent the necessary modules within the ML pipeline specified from the JSON-AI object.
  
  :returns: A JSON config that has the necessary components of the ML pipeline for a given dataset.
docstr_tok: ["Creates","JSON","config","to","represent","the","necessary","modules","within","the","ML","pipeline","specified","from","the","JSON-AI","object",".",":","returns",":","A","JSON","config","that","has","the","necessary","components","of","the","ML","pipeline","for","a","given","dataset","."]
code: def to_json(self) -> Dict[str, Json]:
      """
      Creates JSON config to represent the necessary modules within the ML pipeline specified from the JSON-AI object.
  
      :returns: A JSON config that has the necessary components of the ML pipeline for a given dataset.
      """
      return json.dumps(self.to_dict(), indent=4)
  
imports: from typing import Dict, List, Optional, Union
  import sys
  from type_infer.dtype import dtype
  from dataclasses import dataclass
  from lightwood.helpers.log import log
  from dataclasses_json import dataclass_json
  from dataclasses_json.core import _asdict, Json
  import json
label_desc: Use image node_id 4 for calling the JsonAI obj's underlying member method code with example usage: obj.to_json() and returns: json