def predict(self, data): o = Output(data) x = data.x if self.transform is not None: x = self.transform.transform(x) y = x.dot(self.w) + self.b # y = np.round(y) # y[y >= .5] = 1 # y[y < .5] = 0 y = np.sign(y) o.y = y o.fu = y if self.label_transform is not None: o.true_y = self.label_transform.transform(o.true_y) if not self.running_cv: is_correct = o.y == o.true_y mean_train = is_correct[o.is_train].mean() mean_test = is_correct[o.is_test].mean() mean_train_labeled = is_correct[data.is_train & data.is_labeled].mean() pass return o
def predict(self, data): o = Output(data) x = data.x if self.transform is not None: x = self.transform.transform(x) y = x.dot(self.w) + self.b #y = np.round(y) #y[y >= .5] = 1 #y[y < .5] = 0 y = np.sign(y) o.y = y o.fu = y if self.label_transform is not None: o.true_y = self.label_transform.transform(o.true_y) if not self.running_cv: is_correct = (o.y == o.true_y) mean_train = is_correct[o.is_train].mean() mean_test = is_correct[o.is_test].mean() mean_train_labeled = is_correct[data.is_train & data.is_labeled].mean() pass return o
def predict(self, data): I = self.selected_data.is_labeled #self.f_x = self.target_learner.predict(data).y self.f_x = data.true_y self.p_x = density.tune_and_predict_density(self.full_data.x, data.x, bandwidths) self.f_s = self.subset_learner.predict(data).y self.p_s = density.tune_and_predict_density(self.selected_data.x[I], data.x, bandwidths) self.var_x = np.abs(data.true_y - self.target_learner.predict(data).y) self.var_s = np.abs(data.true_y - self.f_s) res_p = np.abs(self.p_x - self.p_s) / np.linalg.norm(self.p_x) ''' if self.use_var: res_var = np.abs(self.var_x - self.var_s) / np.linalg.norm(self.var_x) res_total = res_p + res_var else: res_f = np.abs(self.f_x - self.f_s) / np.linalg.norm(self.f_x) res_total = res_f + res_p ''' res_f = np.abs(self.f_x - self.f_s) / np.linalg.norm(self.f_x) res_total = res_f + res_p self.res_total = res_total o = Output(data) o.res_total = res_total o.true_p = self.p_x o.p = self.p_s o.true_y = self.f_x o.y = self.f_s o.var_x = self.var_x o.var_s = self.var_s o.optimization_value = self.optimization_value/data.n o.is_noisy = self.is_noisy o.is_selected = self.learned_distribution > 0 o.y_orig = self.y_orig o.x_orig = getattr(data, 'x_orig', None) self.output = o return o