def predict(self, data, x_label, y_class): """ Gaussian Naive Bayes Model to predict the label given the class values. PARAMETERS ========== x_label: ndarray(dtype=int,ndim=1,axis=1) Array of labels. y_class: ndarray(dtype=int,ndim=1,axis=1) Array of classes. RETURNS ======= Predicts the label, for given class values by user. """ mean, var = get_mean_var(x_label, y_class) argmax = 0 for (k1, v1), (k2, v2) in zip(mean.items(), var.items()): pre_prob = Counter(x_label)[k1] / len(x_label) pro = 1 for i in range(len(v1)): pro *= p_y_given_x(data[i], v1[i], v2[i]) pxy = pro * pre_prob if (pxy > argmax): prediction = k1 return prediction
def predict(self, data, x_label, y_class): mean, var = get_mean_var(x_label, y_class) argmax = 0 for (k1, v1), (k2, v2) in zip(mean.items(), var.items()): pre_prob = Counter(x_label)[k1] / len(x_label) pro = 1 for i in range(len(v1)): pro *= p_y_given_x(data[i], v1[i], v2[i]) pxy = pro * pre_prob if (pxy > argmax): prediction = k1 return prediction