朴素贝叶斯训练数据时,就是求其似然和先验概率。预测时,求最大后验概率。代码中的mnist-original.mat文件需要自行下载,并放入当前路径的datasets\mldata文件夹下。
from sklearn.datasets import fetch_mldata
from collections import Counter
import numpy as np
#加载MNIST数据集
def load_mnist():
mnist = fetch_mldata('MNIST original', data_home='./datasets')
x, y = mnist["data"], mnist["target"]
x = np.where(x>0, 1, x) #将大于1的数组全部换成1
X_train, X_test, y_train, y_test = x[:60000], x[60000:], y[:60000], y[60000:]
return X_train, y_train, X_test, y_test
class