def train(self, classifier, social_features, true_labels, p_z_i_1, total_epochs, steps, size_train):
    y = np.concatenate((true_labels[0:size_train], p_z_i_1[size_train:]))
    for i in range(total_epochs):
        (theta_i, eval_model, weights) = self.nn_pzi(classifier, social_features, y, steps, true_labels)
        y = np.concatenate((true_labels[0:size_train], theta_i[size_train:]))
        result = pd.DataFrame(data=np.concatenate([np.where((theta_i > theta_i.mean()), 1, 0), true_labels], axis=1), columns=['classification', 'truth'])
    return (result, eval_model, weights, classifier.metrics_names, theta_i, classifier)
def train(self, classifier, social_features, true_labels, p_z_i_1, total_epochs, steps, size_train):
    y = np.concatenate((true_labels[0:size_train], p_z_i_1[size_train:]))
    for i in range(total_epochs):
        (theta_i, eval_model, weights) = self.nn_pzi(classifier, social_features, y, steps, true_labels)
        y = np.concatenate((true_labels[0:size_train], theta_i[size_train:]))
        result = pd.DataFrame(data=np.concatenate([np.where((theta_i > theta_i.mean()), 1, 0), true_labels], axis=1), columns=['classification', 'truth'])
    return (result, eval_model, weights, classifier.metrics_names, theta_i, classifier)