Skip to content

Label Transform

Label Transform replaces label with designated values.

User may specify encoder to transform labels into designated values. If no specification is provided, module will automatically encodes label into categorical label values(integers) starting at 0.

Param

label_transform_param

Classes

LabelTransformParam (BaseParam)

Define label transform param that used in label transform.

Parameters:

Name Type Description Default
label_encoder None or dict, default : None

Specify (label, encoded label) key-value pairs for transforming labels to new values. e.g. {"Yes": 1, "No": 0}

None
label_list None or list, default : None

List all input labels, used for matching types of original keys in label_encoder dict, length should match key count in label_encoder e.g. ["Yes", "No"]

None
need_run bool, default: True

Specify whether to run label transform

True
Source code in federatedml/param/label_transform_param.py
class LabelTransformParam(BaseParam):
    """
    Define label transform param that used in label transform.

    Parameters
    ----------

    label_encoder : None or dict, default : None
        Specify (label, encoded label) key-value pairs for transforming labels to new values.
        e.g. {"Yes": 1, "No": 0}

    label_list : None or list, default : None
        List all input labels, used for matching types of original keys in label_encoder dict,
        length should match key count in label_encoder
        e.g. ["Yes", "No"]

    need_run: bool, default: True
        Specify whether to run label transform

    """

    def __init__(self, label_encoder=None, label_list=None, need_run=True):
        super(LabelTransformParam, self).__init__()
        self.label_encoder = label_encoder
        self.label_list = label_list
        self.need_run = need_run

    def check(self):
        model_param_descr = "label transform param's "

        BaseParam.check_boolean(self.need_run, f"{model_param_descr} need run ")

        if self.label_encoder is not None:
            if not isinstance(self.label_encoder, dict):
                raise ValueError(f"{model_param_descr} label_encoder should be dict type")

        if self.label_list is not None:
            if not isinstance(self.label_list, list):
                raise ValueError(f"{model_param_descr} label_list should be list type")
            if self.label_encoder and len(self.label_list) != len(self.label_encoder.keys()):
                raise ValueError(f"label_list length should match label_encoder key count")

        LOGGER.debug("Finish label transformer parameter check!")
        return True
__init__(self, label_encoder=None, label_list=None, need_run=True) special
Source code in federatedml/param/label_transform_param.py
def __init__(self, label_encoder=None, label_list=None, need_run=True):
    super(LabelTransformParam, self).__init__()
    self.label_encoder = label_encoder
    self.label_list = label_list
    self.need_run = need_run
check(self)
Source code in federatedml/param/label_transform_param.py
def check(self):
    model_param_descr = "label transform param's "

    BaseParam.check_boolean(self.need_run, f"{model_param_descr} need run ")

    if self.label_encoder is not None:
        if not isinstance(self.label_encoder, dict):
            raise ValueError(f"{model_param_descr} label_encoder should be dict type")

    if self.label_list is not None:
        if not isinstance(self.label_list, list):
            raise ValueError(f"{model_param_descr} label_list should be list type")
        if self.label_encoder and len(self.label_list) != len(self.label_encoder.keys()):
            raise ValueError(f"label_list length should match label_encoder key count")

    LOGGER.debug("Finish label transformer parameter check!")
    return True

Last update: 2021-11-08
Back to top