class_docstr: The ``ProblemDefinition`` object indicates details on how the models that predict the target are prepared.         The only required specification from a user is the ``target``, which indicates the column within the input         data that the user is trying to predict. Within the ``ProblemDefinition``, the user can specify aspects         about how long the feature-engineering preparation may take, and nuances about training the models.
  
  :param target: The name of the target column; this is the column that will be used as the goal of the prediction.
  :param pct_invalid: Number of data points maximally tolerated as invalid/missing/unknown.         If the data cleaning process exceeds this number, no subsequent steps will be taken.
  :param unbias_target: all classes are automatically weighted inverse to how often they occur
  :param seconds_per_mixer: Number of seconds maximum to spend PER mixer trained in the list of possible mixers.
  :param seconds_per_encoder: Number of seconds maximum to spend when training an encoder that requires data to     learn a representation.
  :param expected_additional_time: Time budget for non-encoder/mixer tasks     (ex: data analysis, pre-processing, model ensembling or model analysis)
  :param time_aim: Time budget (in seconds) to train all needed components for the predictive tasks, including         encoders and models.
  :param target_weights: indicates to the accuracy functions how much to weight every target class.
  :param positive_domain: For numerical taks, force predictor output to be positive (integer or float).
  :param timeseries_settings: TimeseriesSettings object for time-series tasks, refer to its documentation for          available settings.
  :param anomaly_detection: Whether to conduct unsupervised anomaly detection; currently supported only for time-        series.
  :param dtype_dict: Mapping of features to types (see `mindsdb.type_infer` for all possible values). This will     override the automated type inference results.
  :param ignore_features: The names of the columns the user wishes to ignore in the ML pipeline. Any column name         found in this list will be automatically removed from subsequent steps in the ML pipeline.
  :param use_default_analysis: whether default analysis blocks are enabled.
  :param fit_on_all: Whether to fit the model on the held-out validation data. Validation data is strictly         used to evaluate how well a model is doing and is NEVER trained. However, in cases where users anticipate new             incoming data over time, the user may train the model further using the entire dataset.
  :param strict_mode: crash if an `unstable` block (mixer, encoder, etc.) fails to run.
  :param seed_nr: custom seed to use when generating a predictor from this problem definition.
class_docstr_tok: ["The","``","ProblemDefinition","``","object","indicates","details","on","how","the","models","that","predict","the","target","are","prepared",".","The","only","required","specification","from","a","user","is","the","``","target","``",",","which","indicates","the","column","within","the","input","data","that","the","user","is","trying","to","predict",".","Within","the","``","ProblemDefinition","``",",","the","user","can","specify","aspects","about","how","long","the","feature-engineering","preparation","may","take",",","and","nuances","about","training","the","models",".",":","param","target",":","The","name","of","the","target","column",";","this","is","the","column","that","will","be","used","as","the","goal","of","the","prediction",".",":","param","pct_invalid",":","Number","of","data","points","maximally","tolerated","as","invalid\/missing\/unknown",".","If","the","data","cleaning","process","exceeds","this","number",",","no","subsequent","steps","will","be","taken",".",":","param","unbias_target",":","all","classes","are","automatically","weighted","inverse","to","how","often","they","occur",":","param","seconds_per_mixer",":","Number","of","seconds","maximum","to","spend","PER","mixer","trained","in","the","list","of","possible","mixers",".",":","param","seconds_per_encoder",":","Number","of","seconds","maximum","to","spend","when","training","an","encoder","that","requires","data","to","learn","a","representation",".",":","param","expected_additional_time",":","Time","budget","for","non-encoder\/mixer","tasks","(","ex",":","data","analysis",",","pre-processing",",","model","ensembling","or","model","analysis",")",":","param","time_aim",":","Time","budget","(","in","seconds",")","to","train","all","needed","components","for","the","predictive","tasks",",","including","encoders","and","models",".",":","param","target_weights",":","indicates","to","the","accuracy","functions","how","much","to","weight","every","target","class",".",":","param","positive_domain",":","For","numerical","taks",",","force","predictor","output","to","be","positive","(","integer","or","float",")",".",":","param","timeseries_settings",":","TimeseriesSettings","object","for","time-series","tasks",",","refer","to","its","documentation","for","available","settings",".",":","param","anomaly_detection",":","Whether","to","conduct","unsupervised","anomaly","detection",";","currently","supported","only","for","time-","series",".",":","param","dtype_dict",":","Mapping","of","features","to","types","(","see","`","mindsdb.type_infer","`","for","all","possible","values",")",".","This","will","override","the","automated","type","inference","results",".",":","param","ignore_features",":","The","names","of","the","columns","the","user","wishes","to","ignore","in","the","ML","pipeline",".","Any","column","name","found","in","this","list","will","be","automatically","removed","from","subsequent","steps","in","the","ML","pipeline",".",":","param","use_default_analysis",":","whether","default","analysis","blocks","are","enabled",".",":","param","fit_on_all",":","Whether","to","fit","the","model","on","the","held-out","validation","data",".","Validation","data","is","strictly","used","to","evaluate","how","well","a","model","is","doing","and","is","NEVER","trained",".","However",",","in","cases","where","users","anticipate","new","incoming","data","over","time",",","the","user","may","train","the","model","further","using","the","entire","dataset",".",":","param","strict_mode",":","crash","if","an","`","unstable","`","block","(","mixer",",","encoder",",","etc",".",")","fails","to","run",".",":","param","seed_nr",":","custom","seed","to","use","when","generating","a","predictor","from","this","problem","definition","."]
docstr: Creates a ProblemDefinition Object from JSON config file.
  
  :param data:
  
  :returns: A populated ProblemDefinition object.
docstr_tok: ["Creates","a","ProblemDefinition","Object","from","JSON","config","file",".",":","param","data",":",":","returns",":","A","populated","ProblemDefinition","object","."]
code: def from_json(data: str):
      """
      Creates a ProblemDefinition Object from JSON config file.
  
      :param data:
  
      :returns: A populated ProblemDefinition object.
      """
      return ProblemDefinition.from_dict(json.loads(data))
  
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 2 for calling the ProblemDefinition obj's underlying member method code with example usage: obj.from_json(data) and returns: ProblemDefinition