Esempio n. 1
0
def save_missing_imputer_model(missing_fill=False,
                               missing_replace_method=None,
                               missing_impute=None,
                               missing_fill_value=None,
                               header=None,
                               model_name="Imputer",
                               model_table=None,
                               model_namespace=None):
    model_meta = ImputerMeta()
    model_param = ImputerParam()

    model_meta.is_imputer = missing_fill
    if missing_fill:
        if missing_replace_method:
            model_meta.strategy = str(missing_replace_method)

        if missing_impute is not None:
            if missing_impute is not None:
                model_meta.missing_value.extend(map(str, missing_impute))

        if missing_fill_value is not None:
            feature_value_dict = dict(zip(header, map(str,
                                                      missing_fill_value)))

            model_param.missing_replace_value.update(feature_value_dict)

    manager.save_model(buffer_type=model_name + ".meta",
                       proto_buffer=model_meta,
                       name=model_table,
                       namespace=model_namespace)

    manager.save_model(buffer_type=model_name + ".param",
                       proto_buffer=model_param,
                       name=model_table,
                       namespace=model_namespace)
Esempio n. 2
0
def load_missing_imputer_model(header=None,
                               model_name="Imputer",
                               model_table=None,
                               model_namespace=None):
    model_meta = ImputerMeta()
    model_param = ImputerParam()
    manager.read_model(buffer_type=model_name + ".meta",
                       proto_buffer=model_meta,
                       name=model_table,
                       namespace=model_namespace)

    manager.read_model(buffer_type=model_name + ".param",
                       proto_buffer=model_param,
                       name=model_table,
                       namespace=model_namespace)

    missing_fill = model_meta.is_imputer
    missing_replace_method = model_meta.strategy
    missing_value = model_meta.missing_value
    missing_fill_value = model_param.missing_replace_value

    if missing_fill:
        if not missing_replace_method:
            missing_replace_method = None

        if not missing_value:
            missing_value = None
        else:
            missing_value = list(missing_value)

        if missing_fill_value:
            missing_fill_value = [
                missing_fill_value.get(head) for head in header
            ]
        else:
            missing_fill_value = None
    else:
        missing_replace_method = None
        missing_value = None
        missing_fill_value = None

    return missing_fill, missing_replace_method, missing_value, missing_fill_value