:py:mod:`abacusai.api_class.model`
==================================

.. py:module:: abacusai.api_class.model


Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   abacusai.api_class.model.TrainingConfig
   abacusai.api_class.model.PersonalizationTrainingConfig
   abacusai.api_class.model.ForecastingTrainingConfig
   abacusai.api_class.model.NamedEntityExtractionTrainingConfig
   abacusai.api_class.model.NaturalLanguageSearchTrainingConfig
   abacusai.api_class.model.SentenceBoundaryDetectionTrainingConfig
   abacusai.api_class.model.SentimentDetectionTrainingConfig
   abacusai.api_class.model.DocumentClassificationTrainingConfig
   abacusai.api_class.model.DocumentSummarizationTrainingConfig
   abacusai.api_class.model.DocumentVisualizationTrainingConfig
   abacusai.api_class.model.ClusteringTrainingConfig
   abacusai.api_class.model.ClusteringTimeseriesTrainingConfig
   abacusai.api_class.model.CumulativeForecastingTrainingConfig
   abacusai.api_class.model.AnomalyDetectionTrainingConfig
   abacusai.api_class.model.ThemeAnalysisTrainingConfig
   abacusai.api_class.model.AIAgentTrainingConfig
   abacusai.api_class.model.CustomTrainedModelTrainingConfig
   abacusai.api_class.model._TrainingConfigFactory




.. py:class:: TrainingConfig

   Bases: :py:obj:`abacusai.api_class.abstract.ApiClass`

   Helper class that provides a standard way to create an ABC using
   inheritance.

   .. py:attribute:: _upper_snake_case_keys
      :type: bool

      

   .. py:attribute:: _support_kwargs
      :type: bool

      

   .. py:attribute:: kwargs
      :type: dict

      

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      


.. py:class:: PersonalizationTrainingConfig

   Bases: :py:obj:`TrainingConfig`

   Training config for the PERSONALIZATION problem type
   :param problem_type: PERSONALIZATION
   :type problem_type: ProblemType
   :param objective: Ranking scheme used to select final best model.
   :type objective: PersonalizationObjective
   :param sort_objective: Ranking scheme used to sort models on the metrics page.
   :type sort_objective: PersonalizationObjective
   :param training_mode: whether to train in production or experimental mode.
   :type training_mode: PersonalizationTrainingMode
   :param target_action_types: List of action types to use as targets for training.
   :type target_action_types: List[str]
   :param target_action_weights: Dictionary of action types to weights for training.
   :type target_action_weights: Dict[str, float]
   :param session_event_types: List of event types to treat as occurrences of sessions.
   :type session_event_types: List[str]
   :param test_split: Percent of dataset to use for test data. We support using a range between 6% to 20% of your dataset to use as test data.
   :type test_split: int
   :param recent_days_for_training: Limit training data to a certain latest number of days.
   :type recent_days_for_training: int
   :param training_start_date: Only consider training interaction data after this date. Specified in the timezone of the dataset.
   :type training_start_date: datetime
   :param test_on_user_split: Use user splits instead of using time splits, when validating and testing the model.
   :type test_on_user_split: bool
   :param test_split_on_last_k_items: Use last k items instead of global timestamp splits, when validating and testing the model.
   :type test_split_on_last_k_items: bool
   :param test_last_items_length: Number of items to leave out for each user when using leave k out folds.
   :type test_last_items_length: int
   :param test_window_length_hours: Duration (in hours) of most recent time window to use when validating and testing the model.
   :type test_window_length_hours: int
   :param explicit_time_split: Sets an explicit time-based test boundary.
   :type explicit_time_split: bool
   :param test_row_indicator: Column indicating which rows to use for training (TRAIN), validation (VAL) and testing (TEST).
   :type test_row_indicator: str
   :param full_data_retraining: Train models separately with all the data.
   :type full_data_retraining: bool
   :param sequential_training: Train a mode sequentially through time.
   :type sequential_training: bool
   :param data_split_feature_group_table_name: Specify the table name of the feature group to export training data with the fold column.
   :type data_split_feature_group_table_name: str
   :param dropout_rate: Dropout rate for neural network.
   :type dropout_rate: int
   :param batch_size: Batch size for neural network.
   :type batch_size: BatchSize
   :param disable_transformer: Disable training the transformer algorithm.
   :type disable_transformer: bool
   :param disable_gpu: Disable training on GPU.
   :type disable_gpu: boo
   :param filter_history: Do not recommend items the user has already interacted with.
   :type filter_history: bool
   :param explore_lookback_hours: Number of hours since creation time that an item is eligible for explore fraction.
   :type explore_lookback_hours: int
   :param max_history_length: Maximum length of user-item history to include user in training examples.
   :type max_history_length: int
   :param compute_rerank_metrics: Compute metrics based on rerank results.
   :type compute_rerank_metrics: bool
   :param item_id_dropout: Fraction of item_id values to randomly dropout during training.
   :type item_id_dropout: float
   :param add_time_features: Include interaction time as a feature.
   :type add_time_features: bool
   :param disable_timestamp_scalar_features: Exclude timestamp scalar features.
   :type disable_timestamp_scalar_features: bool
   :param compute_session_metrics: Evaluate models based on how well they are able to predict the next session of interactions.
   :type compute_session_metrics: bool
   :param max_user_history_len_percentile: Filter out users with history length above this percentile.
   :type max_user_history_len_percentile: int
   :param downsample_item_popularity_percentile: Downsample items more popular than this percentile.
   :type downsample_item_popularity_percentile: float

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      

   .. py:attribute:: objective
      :type: abacusai.api_class.enums.PersonalizationObjective

      

   .. py:attribute:: sort_objective
      :type: abacusai.api_class.enums.PersonalizationObjective

      

   .. py:attribute:: training_mode
      :type: abacusai.api_class.enums.PersonalizationTrainingMode

      

   .. py:attribute:: target_action_types
      :type: List[str]

      

   .. py:attribute:: target_action_weights
      :type: Dict[str, float]

      

   .. py:attribute:: session_event_types
      :type: List[str]

      

   .. py:attribute:: test_split
      :type: int

      

   .. py:attribute:: recent_days_for_training
      :type: int

      

   .. py:attribute:: training_start_date
      :type: datetime.datetime

      

   .. py:attribute:: test_on_user_split
      :type: bool

      

   .. py:attribute:: test_split_on_last_k_items
      :type: bool

      

   .. py:attribute:: test_last_items_length
      :type: int

      

   .. py:attribute:: test_window_length_hours
      :type: int

      

   .. py:attribute:: explicit_time_split
      :type: bool

      

   .. py:attribute:: test_row_indicator
      :type: str

      

   .. py:attribute:: full_data_retraining
      :type: bool

      

   .. py:attribute:: sequential_training
      :type: bool

      

   .. py:attribute:: data_split_feature_group_table_name
      :type: str

      

   .. py:attribute:: dropout_rate
      :type: int

      

   .. py:attribute:: batch_size
      :type: abacusai.api_class.enums.BatchSize

      

   .. py:attribute:: disable_transformer
      :type: bool

      

   .. py:attribute:: disable_gpu
      :type: bool

      

   .. py:attribute:: filter_history
      :type: bool

      

   .. py:attribute:: explore_lookback_hours
      :type: int

      

   .. py:attribute:: max_history_length
      :type: int

      

   .. py:attribute:: compute_rerank_metrics
      :type: bool

      

   .. py:attribute:: item_id_dropout
      :type: float

      

   .. py:attribute:: add_time_features
      :type: bool

      

   .. py:attribute:: disable_timestamp_scalar_features
      :type: bool

      

   .. py:attribute:: compute_session_metrics
      :type: bool

      

   .. py:attribute:: max_user_history_len_percentile
      :type: int

      

   .. py:attribute:: downsample_item_popularity_percentile
      :type: float

      


.. py:class:: ForecastingTrainingConfig

   Bases: :py:obj:`TrainingConfig`

   Training config for the FORECASTING problem type
   :param problem_type: FORECASTING
   :type problem_type: ProblemType
   :param prediction_length: How many timesteps in the future to predict.
   :type prediction_length: int
   :param objective: Ranking scheme used to select final best model.
   :type objective: ForecastingObjective
   :param sort_objective: Ranking scheme used to sort models on the metrics page.
   :type sort_objective: ForecastingObjective
   :param forecast_frequency: Forecast frequency.
   :type forecast_frequency: ForecastingFrequency
   :param probability_quantiles: Prediction quantiles.
   :type probability_quantiles: list[float]
   :param force_prediction_length: Force length of test window to be the same as prediction length.
   :type force_prediction_length: int
   :param filter_items: Filter items with small history and volume.
   :type filter_items: bool
   :param enable_feature_selection: Enable feature selection.
   :type enable_feature_selection: bool
   :param enable_cold_start: Enable cold start forecasting by training/predicting for zero history items.
   :type enable_cold_start: bool
   :param enable_multiple_backtests: Whether to enable multiple backtesting or not.
   :type enable_multiple_backtests: bool
   :param num_backtesting_windows: Total backtesting windows to use for the training.
   :type num_backtesting_windows: int
   :param backtesting_window_step_size: Use this step size to shift backtesting windows for model training.
   :type backtesting_window_step_size: int
   :param full_data_retraining: Train models separately with all the data.
   :type full_data_retraining: bool
   :param additional_forecast_keys: List[str]: List of categoricals in timeseries that can act as multi-identifier.
   :param experimentation_mode: Selecting Thorough Experimentation will take longer to train.
   :type experimentation_mode: ExperimentationMode
   :param type_of_split: Type of data splitting into train/test.
   :type type_of_split: ForecastingDataSplitType
   :param test_by_item: Partition train/test data by item rather than time if true.
   :type test_by_item: bool
   :param test_start: Limit training data to dates before the given test start.
   :type test_start: datetime
   :param test_split: Percent of dataset to use for test data. We support using a range between 5% to 20% of your dataset to use as test data.
   :type test_split: int
   :param loss_function: Loss function for training neural network.
   :type loss_function: ForecastingLossFunction
   :param underprediction_weight: Weight for underpredictions
   :type underprediction_weight: float
   :param disable_networks_without_analytic_quantiles: Disable neural networks, which quantile functions do not have analytic expressions (e.g, mixture models)
   :type disable_networks_without_analytic_quantiles: bool
   :param initial_learning_rate: Initial learning rate.
   :type initial_learning_rate: float
   :param l2_regularization_factor: L2 regularization factor.
   :type l2_regularization_factor: float
   :param dropout_rate: Dropout percentage rate.
   :type dropout_rate: int
   :param recurrent_layers: Number of recurrent layers to stack in network.
   :type recurrent_layers: int
   :param recurrent_units: Number of units in each recurrent layer.
   :type recurrent_units: int
   :param convolutional_layers: Number of convolutional layers to stack on top of recurrent layers in network.
   :type convolutional_layers: int
   :param convolution_filters: Number of filters in each convolution.
   :type convolution_filters: int
   :param local_scaling_mode: Options to make NN inputs stationary in high dynamic range datasets.
   :type local_scaling_mode: ForecastingLocalScaling
   :param zero_predictor: Include subnetwork to classify points where target equals zero.
   :type zero_predictor: bool
   :param skip_missing: Make the RNN ignore missing entries rather instead of processing them.
   :type skip_missing: bool
   :param batch_size: Batch size.
   :type batch_size: ForecastingBatchSize
   :param batch_renormalization: Enable batch renormalization between layers.
   :type batch_renormalization: bool
   :param history_length: While training, how much history to consider.
   :type history_length: int
   :param prediction_step_size: Number of future periods to include in objective for each training sample.
   :type prediction_step_size: int
   :param training_point_overlap: Amount of overlap to allow between training samples.
   :type training_point_overlap: float
   :param max_scale_context: Maximum context to use for local scaling.
   :type max_scale_context: int
   :param quantiles_extension_method: Quantile extension method
   :type quantiles_extension_method: ForecastingQuanitlesExtensionMethod
   :param number_of_samples: Number of samples for ancestral simulation
   :type number_of_samples: int
   :param symmetrize_quantiles: Force symmetric quantiles (like in Gaussian distribution)
   :type symmetrize_quantiles: bool
   :param use_log_transforms: Apply logarithmic transformations to input data.
   :type use_log_transforms: bool
   :param smooth_history: Smooth (low pass filter) the timeseries.
   :type smooth_history: float
   :param skip_local_scale_target: Skip using per training/prediction window target scaling.
   :type skip_local_scale_target: bool
   :param timeseries_weight_column: If set, we use the values in this column from timeseries data to assign time dependent item weights during training and evaluation.
   :type timeseries_weight_column: str
   :param item_attributes_weight_column: If set, we use the values in this column from item attributes data to assign weights to items during training and evaluation.
   :type item_attributes_weight_column: str
   :param use_timeseries_weights_in_objective: If True, we include weights from column set as "TIMESERIES WEIGHT COLUMN" in objective functions.
   :type use_timeseries_weights_in_objective: bool
   :param use_item_weights_in_objective: If True, we include weights from column set as "ITEM ATTRIBUTES WEIGHT COLUMN" in objective functions.
   :type use_item_weights_in_objective: bool
   :param skip_timeseries_weight_scaling: If True, we will avoid normalizing the weights.
   :type skip_timeseries_weight_scaling: bool
   :param timeseries_loss_weight_column: Use value in this column to weight the loss while training.
   :type timeseries_loss_weight_column: str
   :param use_item_id: Include a feature to indicate the item being forecast.
   :type use_item_id: bool
   :param use_all_item_totals: Include as input total target across items.
   :type use_all_item_totals: bool
   :param handle_zeros_as_missing_values: If True, handle zero values in demand as missing data.
   :type handle_zeros_as_missing_values: bool
   :param datetime_holiday_calendars: Holiday calendars to augment training with.
   :type datetime_holiday_calendars: list[HolidayCalendars]
   :param fill_missing_values: Strategy for filling in missing values.
   :type fill_missing_values: list[dict]
   :param enable_clustering: Enable clustering in forecasting.
   :type enable_clustering: bool
   :param data_split_feature_group_table_name: Specify the table name of the feature group to export training data with the fold column.
   :type data_split_feature_group_table_name: str
   :param custom_loss_functions: Registered custom losses available for selection.
   :type custom_loss_functions: list[str]
   :param custom_metrics: Registered custom metrics available for selection.
   :type custom_metrics: list[str]

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      

   .. py:attribute:: prediction_length
      :type: int

      

   .. py:attribute:: objective
      :type: abacusai.api_class.enums.ForecastingObjective

      

   .. py:attribute:: sort_objective
      :type: abacusai.api_class.enums.ForecastingObjective

      

   .. py:attribute:: forecast_frequency
      :type: abacusai.api_class.enums.ForecastingFrequency

      

   .. py:attribute:: probability_quantiles
      :type: List[float]

      

   .. py:attribute:: force_prediction_length
      :type: bool

      

   .. py:attribute:: filter_items
      :type: bool

      

   .. py:attribute:: enable_feature_selection
      :type: bool

      

   .. py:attribute:: enable_cold_start
      :type: bool

      

   .. py:attribute:: enable_multiple_backtests
      :type: bool

      

   .. py:attribute:: num_backtesting_windows
      :type: int

      

   .. py:attribute:: backtesting_window_step_size
      :type: int

      

   .. py:attribute:: full_data_retraining
      :type: bool

      

   .. py:attribute:: additional_forecast_keys
      :type: List[str]

      

   .. py:attribute:: experimentation_mode
      :type: abacusai.api_class.enums.ExperimentationMode

      

   .. py:attribute:: type_of_split
      :type: abacusai.api_class.enums.ForecastingDataSplitType

      

   .. py:attribute:: test_by_item
      :type: bool

      

   .. py:attribute:: test_start
      :type: datetime.datetime

      

   .. py:attribute:: test_split
      :type: int

      

   .. py:attribute:: loss_function
      :type: abacusai.api_class.enums.ForecastingLossFunction

      

   .. py:attribute:: underprediction_weight
      :type: float

      

   .. py:attribute:: disable_networks_without_analytic_quantiles
      :type: bool

      

   .. py:attribute:: initial_learning_rate
      :type: float

      

   .. py:attribute:: l2_regularization_factor
      :type: float

      

   .. py:attribute:: dropout_rate
      :type: int

      

   .. py:attribute:: recurrent_layers
      :type: int

      

   .. py:attribute:: recurrent_units
      :type: int

      

   .. py:attribute:: convolutional_layers
      :type: int

      

   .. py:attribute:: convolution_filters
      :type: int

      

   .. py:attribute:: local_scaling_mode
      :type: abacusai.api_class.enums.ForecastingLocalScaling

      

   .. py:attribute:: zero_predictor
      :type: bool

      

   .. py:attribute:: skip_missing
      :type: bool

      

   .. py:attribute:: batch_size
      :type: abacusai.api_class.enums.BatchSize

      

   .. py:attribute:: batch_renormalization
      :type: bool

      

   .. py:attribute:: history_length
      :type: int

      

   .. py:attribute:: prediction_step_size
      :type: int

      

   .. py:attribute:: training_point_overlap
      :type: float

      

   .. py:attribute:: max_scale_context
      :type: int

      

   .. py:attribute:: quantiles_extension_method
      :type: abacusai.api_class.enums.ForecastingQuanitlesExtensionMethod

      

   .. py:attribute:: number_of_samples
      :type: int

      

   .. py:attribute:: symmetrize_quantiles
      :type: bool

      

   .. py:attribute:: use_log_transforms
      :type: bool

      

   .. py:attribute:: smooth_history
      :type: float

      

   .. py:attribute:: skip_local_scale_target
      :type: bool

      

   .. py:attribute:: timeseries_weight_column
      :type: str

      

   .. py:attribute:: item_attributes_weight_column
      :type: str

      

   .. py:attribute:: use_timeseries_weights_in_objective
      :type: bool

      

   .. py:attribute:: use_item_weights_in_objective
      :type: bool

      

   .. py:attribute:: skip_timeseries_weight_scaling
      :type: bool

      

   .. py:attribute:: timeseries_loss_weight_column
      :type: str

      

   .. py:attribute:: use_item_id
      :type: bool

      

   .. py:attribute:: use_all_item_totals
      :type: bool

      

   .. py:attribute:: handle_zeros_as_missing_values
      :type: bool

      

   .. py:attribute:: datetime_holiday_calendars
      :type: List[abacusai.api_class.enums.HolidayCalendars]

      

   .. py:attribute:: fill_missing_values
      :type: List[dict]

      

   .. py:attribute:: enable_clustering
      :type: bool

      

   .. py:attribute:: data_split_feature_group_table_name
      :type: str

      

   .. py:attribute:: custom_loss_functions
      :type: List[str]

      

   .. py:attribute:: custom_metrics
      :type: List[str]

      


.. py:class:: NamedEntityExtractionTrainingConfig

   Bases: :py:obj:`TrainingConfig`

   Training config for the NAMED_ENTITY_EXTRACTION problem type
   :param problem_type: NAMED_ENTITY_EXTRACTION
   :type problem_type: ProblemType
   :param objective: Ranking scheme used to select final best model.
   :type objective: NERObjective
   :param sort_objective: Ranking scheme used to sort models on the metrics page.
   :type sort_objective: NERObjective
   :param ner_model_type: Type of NER model to use.
   :type ner_model_type: NERModelType
   :param test_split: Percent of dataset to use for test data. We support using a range between 5 ( i.e. 5% ) to 20 ( i.e. 20% ) of your dataset.
   :type test_split: int
   :param test_row_indicator: Column indicating which rows to use for training (TRAIN) and testing (TEST).
   :type test_row_indicator: str
   :param dropout_rate: Dropout rate for neural network.
   :type dropout_rate: float
   :param batch_size: Batch size for neural network.
   :type batch_size: BatchSize
   :param active_labels_column: Entities that have been marked in a particular text
   :type active_labels_column: str
   :param document_format: Format of the input documents.
   :type document_format: NLPDocumentFormat
   :param include_longformer: Whether to include the longformer model.
   :type include_longformer: bool

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      

   .. py:attribute:: objective
      :type: abacusai.api_class.enums.NERObjective

      

   .. py:attribute:: sort_objective
      :type: abacusai.api_class.enums.NERObjective

      

   .. py:attribute:: ner_model_type
      :type: abacusai.api_class.enums.NERModelType

      

   .. py:attribute:: test_split
      :type: int

      

   .. py:attribute:: test_row_indicator
      :type: str

      

   .. py:attribute:: dropout_rate
      :type: float

      

   .. py:attribute:: batch_size
      :type: abacusai.api_class.enums.BatchSize

      

   .. py:attribute:: active_labels_column
      :type: str

      

   .. py:attribute:: document_format
      :type: abacusai.api_class.enums.NLPDocumentFormat

      

   .. py:attribute:: include_longformer
      :type: bool

      


.. py:class:: NaturalLanguageSearchTrainingConfig

   Bases: :py:obj:`TrainingConfig`

   Training config for the NATURAL_LANGUAGE_SEARCH problem type
   :param problem_type: NATURAL_LANGUAGE_SEARCH
   :type problem_type: ProblemType
   :param abacus_internal_model: Use a Abacus.AI LLM to answer questions about your data without using any external APIs
   :type abacus_internal_model: bool
   :param num_completion_tokens: Default for maximum number of tokens for chat answers. Reducing this will get faster responses which are more succinct
   :type num_completion_tokens: int
   :param larger_embeddings: Use a higher dimension embedding model.
   :type larger_embeddings: bool
   :param search_chunk_size: Chunk size for indexing the documents.
   :type search_chunk_size: int
   :param chunk_overlap_fraction: Overlap in chunks while indexing the documents.
   :type chunk_overlap_fraction: float
   :param test_split: Percent of dataset to use for test data. We support using a range between 5 ( i.e. 5% ) to 20 ( i.e. 20% ) of your dataset.
   :type test_split: int

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      

   .. py:attribute:: abacus_internal_model
      :type: bool

      

   .. py:attribute:: num_completion_tokens
      :type: int

      

   .. py:attribute:: larger_embeddings
      :type: bool

      

   .. py:attribute:: search_chunk_size
      :type: int

      

   .. py:attribute:: index_fraction
      :type: float

      

   .. py:attribute:: chunk_overlap_fraction
      :type: float

      


.. py:class:: SentenceBoundaryDetectionTrainingConfig

   Bases: :py:obj:`TrainingConfig`

   Training config for the SENTENCE_BOUNDARY_DETECTION problem type
   :param problem_type: SENTENCE_BOUNDARY_DETECTION
   :type problem_type: ProblemType
   :param test_split: Percent of dataset to use for test data. We support using a range between 5 ( i.e. 5% ) to 20 ( i.e. 20% ) of your dataset.
   :type test_split: int
   :param dropout_rate: Dropout rate for neural network.
   :type dropout_rate: float
   :param batch_size: Batch size for neural network.
   :type batch_size: BatchSize

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      

   .. py:attribute:: test_split
      :type: int

      

   .. py:attribute:: dropout_rate
      :type: float

      

   .. py:attribute:: batch_size
      :type: abacusai.api_class.enums.BatchSize

      


.. py:class:: SentimentDetectionTrainingConfig

   Bases: :py:obj:`TrainingConfig`

   Training config for the SENTIMENT_DETECTION problem type
   :param problem_type: SENTIMENT_DETECTION
   :type problem_type: ProblemType
   :param sentiment_type: Type of sentiment to detect.
   :type sentiment_type: SentimentType
   :param test_split: Percent of dataset to use for test data. We support using a range between 5 ( i.e. 5% ) to 20 ( i.e. 20% ) of your dataset.
   :type test_split: int
   :param dropout_rate: Dropout rate for neural network.
   :type dropout_rate: float
   :param batch_size: Batch size for neural network.
   :type batch_size: BatchSize
   :param compute_metrics: Whether to compute metrics.
   :type compute_metrics: bool

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      

   .. py:attribute:: sentiment_type
      :type: abacusai.api_class.enums.SentimentType

      

   .. py:attribute:: test_split
      :type: int

      

   .. py:attribute:: dropout_rate
      :type: float

      

   .. py:attribute:: batch_size
      :type: abacusai.api_class.enums.BatchSize

      

   .. py:attribute:: compute_metrics
      :type: bool

      


.. py:class:: DocumentClassificationTrainingConfig

   Bases: :py:obj:`TrainingConfig`

   Training config for the DOCUMENT_CLASSIFICATION problem type
   :param problem_type: DOCUMENT_CLASSIFICATION
   :type problem_type: ProblemType
   :param zero_shot_hypotheses: Zero shot hypotheses. Example text: 'This text is about pricing'.
   :type zero_shot_hypotheses: List[str]
   :param test_split: Percent of dataset to use for test data. We support using a range between 5 ( i.e. 5% ) to 20 ( i.e. 20% ) of your dataset.
   :type test_split: int
   :param dropout_rate: Dropout rate for neural network.
   :type dropout_rate: float
   :param batch_size: Batch size for neural network.
   :type batch_size: BatchSize

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      

   .. py:attribute:: zero_shot_hypotheses
      :type: List[str]

      

   .. py:attribute:: test_split
      :type: int

      

   .. py:attribute:: dropout_rate
      :type: float

      

   .. py:attribute:: batch_size
      :type: abacusai.api_class.enums.BatchSize

      


.. py:class:: DocumentSummarizationTrainingConfig

   Bases: :py:obj:`TrainingConfig`

   Training config for the DOCUMENT_SUMMARIZATION problem type
   :param problem_type: DOCUMENT_SUMMARIZATION
   :type problem_type: ProblemType
   :param test_split: Percent of dataset to use for test data. We support using a range between 5 ( i.e. 5% ) to 20 ( i.e. 20% ) of your dataset.
   :type test_split: int
   :param dropout_rate: Dropout rate for neural network.
   :type dropout_rate: float
   :param batch_size: Batch size for neural network.
   :type batch_size: BatchSize

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      

   .. py:attribute:: test_split
      :type: int

      

   .. py:attribute:: dropout_rate
      :type: float

      

   .. py:attribute:: batch_size
      :type: abacusai.api_class.enums.BatchSize

      


.. py:class:: DocumentVisualizationTrainingConfig

   Bases: :py:obj:`TrainingConfig`

   Training config for the DOCUMENT_VISUALIZATION problem type
   :param problem_type: DOCUMENT_VISUALIZATION
   :type problem_type: ProblemType
   :param test_split: Percent of dataset to use for test data. We support using a range between 5 ( i.e. 5% ) to 20 ( i.e. 20% ) of your dataset.
   :type test_split: int
   :param dropout_rate: Dropout rate for neural network.
   :type dropout_rate: float
   :param batch_size: Batch size for neural network.
   :type batch_size: BatchSize

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      

   .. py:attribute:: test_split
      :type: int

      

   .. py:attribute:: dropout_rate
      :type: float

      

   .. py:attribute:: batch_size
      :type: abacusai.api_class.enums.BatchSize

      


.. py:class:: ClusteringTrainingConfig

   Bases: :py:obj:`TrainingConfig`

   Training config for the CLUSTERING problem type
   :param problem_type: CLUSTERING
   :type problem_type: ProblemType
   :param num_clusters_selection: Number of clusters. If None, will be selected automatically.
   :type num_clusters_selection: int

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      

   .. py:attribute:: num_clusters_selection
      :type: int

      


.. py:class:: ClusteringTimeseriesTrainingConfig

   Bases: :py:obj:`TrainingConfig`

   Training config for the CLUSTERING_TIMESERIES problem type
   :param problem_type: CLUSTERING_TIMESERIES
   :type problem_type: ProblemType
   :param num_clusters_selection: Number of clusters. If None, will be selected automatically.
   :type num_clusters_selection: int
   :param imputation: Imputation method for missing values.
   :type imputation: ClusteringImputationMethod

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      

   .. py:attribute:: num_clusters_selection
      :type: int

      

   .. py:attribute:: imputation
      :type: abacusai.api_class.enums.ClusteringImputationMethod

      


.. py:class:: CumulativeForecastingTrainingConfig

   Bases: :py:obj:`TrainingConfig`

   Training config for the CUMULATIVE_FORECASTING problem type
   :param problem_type: CUMULATIVE_FORECASTING
   :type problem_type: ProblemType
   :param test_split: Percent of dataset to use for test data. We support using a range between 5 ( i.e. 5% ) to 20 ( i.e. 20% ) of your dataset.
   :type test_split: int
   :param historical_frequency: Forecast frequency
   :type historical_frequency: str
   :param cumulative_prediction_lengths: List of Cumulative Prediction Frequencies. Each prediction length must be between 1 and 365.
   :type cumulative_prediction_lengths: List[int]
   :param skip_input_transform: Avoid doing numeric scaling transformations on the input.
   :type skip_input_transform: bool
   :param skip_target_transform: Avoid doing numeric scaling transformations on the target.
   :type skip_target_transform: bool
   :param predict_residuals: Predict residuals instead of totals at each prediction step.
   :type predict_residuals: bool

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      

   .. py:attribute:: test_split
      :type: int

      

   .. py:attribute:: historical_frequency
      :type: str

      

   .. py:attribute:: cumulative_prediction_lengths
      :type: List[int]

      

   .. py:attribute:: skip_input_transform
      :type: bool

      

   .. py:attribute:: skip_target_transform
      :type: bool

      

   .. py:attribute:: predict_residuals
      :type: bool

      


.. py:class:: AnomalyDetectionTrainingConfig

   Bases: :py:obj:`TrainingConfig`

   Training config for the ANOMALY_DETECTION problem type
   :param problem_type: ANOMALY_DETECTION
   :type problem_type: ProblemType
   :param test_split: Percent of dataset to use for test data. We support using a range between 5 (i.e. 5%) to 20 (i.e. 20%) of your dataset to use as test data.
   :type test_split: int
   :param value_high: Detect unusually high values.
   :type value_high: bool
   :param mixture_of_gaussians: Detect unusual combinations of values using mixture of Gaussians.
   :type mixture_of_gaussians: bool
   :param variational_autoencoder: Use variational autoencoder for anomaly detection.
   :type variational_autoencoder: bool
   :param spike_up: Detect outliers with a high value.
   :type spike_up: bool
   :param spike_down: Detect outliers with a low value.
   :type spike_down: bool
   :param trend_change: Detect changes to the trend.
   :type trend_change: bool

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      

   .. py:attribute:: test_split
      :type: int

      

   .. py:attribute:: value_high
      :type: bool

      

   .. py:attribute:: mixture_of_gaussians
      :type: bool

      

   .. py:attribute:: variational_autoencoder
      :type: bool

      

   .. py:attribute:: spike_up
      :type: bool

      

   .. py:attribute:: spike_down
      :type: bool

      

   .. py:attribute:: trend_change
      :type: bool

      


.. py:class:: ThemeAnalysisTrainingConfig

   Bases: :py:obj:`TrainingConfig`

   Training config for the THEME ANALYSIS problem type
   :param problem_type: THEME_ANALYSIS
   :type problem_type: ProblemType

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      


.. py:class:: AIAgentTrainingConfig

   Bases: :py:obj:`TrainingConfig`

   Training config for the AI_AGENT problem type
   :param problem_type: AI_AGENT
   :type problem_type: ProblemType
   :param description: Description of the agent function.
   :type description: str

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      

   .. py:attribute:: description
      :type: str

      


.. py:class:: CustomTrainedModelTrainingConfig

   Bases: :py:obj:`TrainingConfig`

   Training config for the CUSTOM_TRAINED_MODEL problem type
   :param problem_type: CUSTOM_TRAINED_MODEL
   :type problem_type: ProblemType
   :param max_catalog_size: Maximum expected catalog size.
   :type max_catalog_size: int
   :param max_dimension: Maximum expected dimension of the catalog.
   :type max_dimension: int
   :param index_output_path: Fully qualified cloud location (GCS, S3, etc) to export snapshots of the embedding to.
   :type index_output_path: str
   :param docker_image_uri: Docker image URI.
   :type docker_image_uri: str
   :param service_port: Service port.
   :type service_port: int

   .. py:attribute:: problem_type
      :type: abacusai.api_class.enums.ProblemType

      

   .. py:attribute:: max_catalog_size
      :type: int

      

   .. py:attribute:: max_dimension
      :type: int

      

   .. py:attribute:: index_output_path
      :type: str

      

   .. py:attribute:: docker_image_uri
      :type: str

      

   .. py:attribute:: service_port
      :type: int

      


.. py:class:: _TrainingConfigFactory

   Bases: :py:obj:`abacusai.api_class.abstract._ApiClassFactory`

   Helper class that provides a standard way to create an ABC using
   inheritance.

   .. py:attribute:: config_abstract_class

      

   .. py:attribute:: config_class_key
      :value: 'problem_type'

      

   .. py:attribute:: config_class_map

      


