def load_model(self, model_dict): LOGGER.debug("Start Loading model") result_obj = list(model_dict.get('model').values())[0].get( self.model_param_name) meta_obj = list(model_dict.get('model').values())[0].get( self.model_meta_name) # self.fit_intercept = meta_obj.fit_intercept if self.init_param_obj is None: self.init_param_obj = InitParam() self.init_param_obj.fit_intercept = meta_obj.fit_intercept self.header = list(result_obj.header) # For hetero-lr arbiter predict function if self.header is None: return need_one_vs_rest = result_obj.need_one_vs_rest LOGGER.debug( "in _load_model need_one_vs_rest: {}".format(need_one_vs_rest)) if need_one_vs_rest: one_vs_rest_result = result_obj.one_vs_rest_result self.one_vs_rest_obj = one_vs_rest_factory(classifier=self, role=self.role, mode=self.mode, has_arbiter=True) self.one_vs_rest_obj.load_model(one_vs_rest_result) self.need_one_vs_rest = True else: self.load_single_model(result_obj) self.need_one_vs_rest = False
def load_model(self, model_dict): LOGGER.debug("Start Loading model") result_obj = list(model_dict.get('model').values())[0].get( self.model_param_name) meta_obj = list(model_dict.get('model').values())[0].get( self.model_meta_name) if self.init_param_obj is None: self.init_param_obj = InitParam() self.init_param_obj.fit_intercept = meta_obj.fit_intercept self.model_param.reveal_strategy = meta_obj.reveal_strategy LOGGER.debug( f"reveal_strategy: {self.model_param.reveal_strategy}, {self.is_respectively_reveal}" ) self.header = list(result_obj.header) need_one_vs_rest = result_obj.need_one_vs_rest LOGGER.info( "in _load_model need_one_vs_rest: {}".format(need_one_vs_rest)) if need_one_vs_rest: one_vs_rest_result = result_obj.one_vs_rest_result self.one_vs_rest_obj = one_vs_rest_factory(classifier=self, role=self.role, mode=self.mode, has_arbiter=False) self.one_vs_rest_obj.load_model(one_vs_rest_result) self.need_one_vs_rest = True else: self.load_single_model(result_obj) self.need_one_vs_rest = False
def __init__(self): self.guest_X = np.array([[1, 2, 3, 4, 5], [3, 2, 4, 5, 1], [ 2, 2, 3, 1, 1, ]]) / 10 self.guest_Y = np.array([[1], [1], [-1]]) self.values = [] for idx, x in enumerate(self.guest_X): inst = Instance(inst_id=idx, features=x, label=self.guest_Y[idx]) self.values.append((idx, inst)) self.host_X = np.array([[1, 1.2, 3.1, 4, 5], [2.3, 2, 4, 5.3, 1], [ 2, 2.2, 1.3, 1, 1.6, ]]) / 10 self.host_Y = np.array([[-1], [1], [-1]]) self.host_values = [] for idx, x in enumerate(self.host_X): inst = Instance(inst_id=idx, features=x, label=self.host_Y[idx]) self.values.append((idx, inst)) self.max_iter = 10 self.alpha = 0.01 self.learning_rate = 0.01 optimizer = 'SGD' self.gradient_operator = LogisticGradient() self.initializer = Initializer() self.fit_intercept = True self.init_param_obj = InitParam(fit_intercept=self.fit_intercept) self.updater = L2Updater(self.alpha, self.learning_rate) self.optimizer = Optimizer(learning_rate=self.learning_rate, opt_method_name=optimizer) self.__init_model()