Skip to content

Local Baseline

Local Baseline module builds a sklearn model with local data. The module is basically a wrapper for sklearn model such that it can be run as part of FATE job workflow and configured as other federatedml modules.

Use

Local Baseline currently only supports sklearn Logistic Regression model.

The module receives train and, if provided, validate data as specified. Input data sets must be uploaded beforehand as with other federatedml models. Local Baseline accepts both binary and multi-class data.

sklearn model parameters may be specified in dict form in job config file. Any parameter unspecified will take the default value set in sklearn.

Local Baseline has the same output as matching FATE model, and so its visualization on FATE Board will have matching format. Nonetheless, note that Local Baseline is run locally, so other parties will not show respective information like Logistic Regression module. In addition, note that loss history is not available for Guest when running homogeneous training.

Param

local_baseline_param

Classes

LocalBaselineParam (BaseParam)

Define the local baseline model param

Parameters:

Name Type Description Default
model_name str

sklearn model used to train on baseline model

'LogisticRegression'
model_opts dict or none, default None

Param to be used as input into baseline model

None
predict_param PredictParam object, default: default PredictParam object

predict param

<federatedml.param.predict_param.PredictParam object at 0x7ff45d87bd50>
need_run bool, default True

Indicate if this module needed to be run

True
Source code in federatedml/param/local_baseline_param.py
class LocalBaselineParam(BaseParam):
    """
    Define the local baseline model param

    Parameters
    ----------
    model_name : str
        sklearn model used to train on baseline model

    model_opts : dict or none, default None
        Param to be used as input into baseline model

    predict_param : PredictParam object, default: default PredictParam object
        predict param

    need_run: bool, default True
        Indicate if this module needed to be run
    """

    def __init__(self, model_name="LogisticRegression", model_opts=None, predict_param=PredictParam(), need_run=True):
        super(LocalBaselineParam, self).__init__()
        self.model_name = model_name
        self.model_opts = model_opts
        self.predict_param = copy.deepcopy(predict_param)
        self.need_run = need_run

    def check(self):
        descr = "local baseline param"

        self.model_name = self.check_and_change_lower(self.model_name,
                                                      ["logisticregression"],
                                                      descr)
        self.check_boolean(self.need_run, descr)
        if self.model_opts is not None:
            if not isinstance(self.model_opts, dict):
                raise ValueError(descr + " model_opts must be None or dict.")
        if self.model_opts is None:
            self.model_opts = {}
        self.predict_param.check()

        return True
__init__(self, model_name='LogisticRegression', model_opts=None, predict_param=<federatedml.param.predict_param.PredictParam object at 0x7ff45d87bd50>, need_run=True) special
Source code in federatedml/param/local_baseline_param.py
def __init__(self, model_name="LogisticRegression", model_opts=None, predict_param=PredictParam(), need_run=True):
    super(LocalBaselineParam, self).__init__()
    self.model_name = model_name
    self.model_opts = model_opts
    self.predict_param = copy.deepcopy(predict_param)
    self.need_run = need_run
check(self)
Source code in federatedml/param/local_baseline_param.py
def check(self):
    descr = "local baseline param"

    self.model_name = self.check_and_change_lower(self.model_name,
                                                  ["logisticregression"],
                                                  descr)
    self.check_boolean(self.need_run, descr)
    if self.model_opts is not None:
        if not isinstance(self.model_opts, dict):
            raise ValueError(descr + " model_opts must be None or dict.")
    if self.model_opts is None:
        self.model_opts = {}
    self.predict_param.check()

    return True

Last update: 2021-11-08
Back to top