def test_fit(self): print("test_fit") nb = NaiveBayesClassifier() Xis = np.array([[3, 4], [2, 3]]) yis = [0, 1] nb.prior_probs = np.zeros(2, dtype=np.float64) # Testing value updation with known calculation. self.assertEqual(nb.prior_probs[0], 0) self.assertEqual(nb.prior_probs[1], 0) self.assertEqual(nb.fit(Xis, yis), None) self.assertEqual(nb.prior_probs[0], 0.5) self.assertEqual(nb.prior_probs[1], 0.5)
from NaiveBayes import NaiveBayesClassifier #importing the class import numpy as np from sklearn.model_selection import train_test_split from sklearn import datasets import matplotlib.pyplot as plt #Calculating accuracy --(actual-prediction)/(total no of samples) def accuracy(y_actual, yhat): accuracy = np.sum(y_actual == yhat) / len(y_actual) return accuracy X, y = datasets.make_classification(n_samples=1000, n_features=10, n_classes=2, random_state=123) #Dividing the dataset into train and test -80-20 division X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=123) nb = NaiveBayesClassifier() nb.fit(X_train, y_train) #fitting the model predictions = nb.predict(X_test) #predicting on the test set print("Accuracy", accuracy(y_test, predictions)) #calculating the accuracy