px = 0
                        for x, y in enumerate(self.features, 0):
                            if y[j] == 0 and self.targets[x] == i:
                                px += 1
                        prob[i] += math.log((px / (self.total - self.px[j])) +
                                            0.001)
            #print(prob)
            ans[n] = np.argmax(prob)
        return ans


print(" ")
#call sklearn
tStart = time.time()
model = BernoulliNB(binarize=[5.8, 3, 4.35, 1.3])
model.fit(train_x, train_y)
print("sklearn Acc: %0.3f" % (model.score(test_x, test_y)))
print("sklearn: %0.3f sec" % (time.time() - tStart))

tStart = time.time()
model = BernoulliNB2(train_x, train_y, [5.8, 3, 4.35, 1.3])
model.clean()
acc = 0
ans = model.predict([0, 1, 2], test_x)
for i, data in enumerate(ans):
    if data == test_y[i]:
        acc += 1
print("HandCut Acc: %0.3f" % (acc / len(ans)))
print("HandCut: %0.3f sec" % (time.time() - tStart))

print(" ")