def deserialize_bernoulli_nb(model_dict): model = BernoulliNB(model_dict['params']) model.classes_ = np.array(model_dict['classes_']) model.class_count_ = np.array(model_dict['class_count_']) model.class_log_prior_ = np.array(model_dict['class_log_prior_']) model.feature_count_ = np.array(model_dict['feature_count_']) model.feature_log_prob_ = np.array(model_dict['feature_log_prob_']) return model
def leave_one_out(training_images, test_image, vocab): X_training = occurrance_matrix(training_images, vocab) Y_training = np.array([img.rating for img in training_images]) X_testing = occurrance_matrix([test_image], vocab) from sklearn.naive_bayes import BernoulliNB classifier = BernoulliNB() classifier.fit(X_training, Y_training) classifier.classes_ = np.array([-1, 1]) estimates = classifier.predict(X_testing) if estimates[0] == test_image.rating: return 1.0 else: return 0.0