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)
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