Source code for robustx.lib.tasks.Task

from abc import ABC, abstractmethod
import pandas as pd
from robustx.datasets.DatasetLoader import DatasetLoader
from robustx.lib.models.BaseModel import BaseModel


[docs] class Task(ABC): """ An abstract base class representing a general task that involves training a model on a specific dataset. Attributes: _training_data (DatasetLoader): The dataset used for training the model. __model (BaseModel): The model to be trained and used for predictions. """ def __init__(self, model: BaseModel, training_data: DatasetLoader): """ Initializes the Task with a model and training data. @param model: An instance of a model that extends BaseModel @param training_data: An instance of DatasetLoader containing the training data. """ self._training_data = training_data self.__model = model
[docs] def get_random_positive_instance(self, neg_value, column_name="target") -> pd.Series: """ Abstract method to retrieve a random positive instance from the training data. @param neg_value: The value considered negative in the target variable. @param column_name: The name of the target column. @return: A Pandas Series representing a random positive instance. """ pass
[docs] def get_negative_instances(self, neg_value=0, column_name="target") -> pd.DataFrame: """ Abstract method to retrieve all the negative instances in the dataset as predicted by the model. @param neg_value: The value considered negative in the target variable. @param column_name: The name of the target column. @return: All instances with a negative target value predicted by the model. """ pass
@property def training_data(self): """ Property to access the training data. @return: The training data loaded from DatasetLoader. """ return self._training_data @property def model(self): """ Property to access the model. @return: The model instance that extends BaseModel """ return self.__model