Source code for dice_ml.data

"""Module pointing to different implementations of Data class

DiCE requires only few parameters about the data such as the range of continuous
features and the levels of categorical features. Hence, DiCE can be used for a
private data whose meta data are only available (such as the feature names and
range/levels of different features) by specifying appropriate parameters.
"""

from dice_ml.data_interfaces.base_data_interface import _BaseData


[docs]class Data(_BaseData): """Class containing all required information about the data for DiCE.""" def __init__(self, **params): """Init method :param **params: a dictionary of required parameters. """ self.decide_implementation_type(params)
[docs] def decide_implementation_type(self, params): """Decides if the Data class is for public or private data.""" self.__class__ = decide(params) self.__init__(params)
[docs]def decide(params): """Decides if the Data class is for public or private data. To add new implementations of Data, add the class in data_interfaces subpackage and import-and-return the class in an elif loop as shown in the below method. """ if 'dataframe' in params: # if params contain a Pandas dataframe, then use PublicData class from dice_ml.data_interfaces.public_data_interface import PublicData return PublicData else: # use PrivateData if only meta data is provided from dice_ml.data_interfaces.private_data_interface import PrivateData return PrivateData