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¶
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
bool, default True
Indicate if this module needed to be run
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 0x7f94559df9d0>, 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