Pytorch版本朴素贝叶斯分类器在MNIST手写数据集上的实现
——————————————————————————————————————
一、贝叶斯公式:
p ( x 2 ∣ x 1 ) = p ( x 1 ∣ x 2 ) p ( x 2 ) p ( x 1 ) p\left(x_{2} \mid x_{1}\right)=\frac{p\left(x_{1} \mid x_{2}\right) p\left(x_{2}\right)}{p\left(x_{1}\right)} p(x2∣x1)=p(x1)p(x1∣x2)p(x2)
计算 后验概率 p ( x 2 ∣ x 1 ) p\left(x_{2} \mid x_{1}\right) p(x2∣x1), 需要知道条件概率 p ( x 1 ∣ x 2 ) p\left(x_{1} \mid x_{2}\right) p(x1∣x2) 以及先验概率 p ( x 2 ) p\left(x_{2}\right) p(x2).
——————————————————————————————————————
二、MNIST数据集
MNIST手写体数字数据集包含两个部分,含有 60000 张图片的训练集和含有 10000 张图片的测试集,每张图片都是由值在 0~255 之间的像素点构成的图片,大小为 28*28,如下图所示:
为了方便起见,之后我们会把这样的 28 ∗ 28 28*28 28∗28 的图片统一表示一维向量 :
( x 1 , x 2 … x l ) , l = 784 \left(x_{1}, x_{2} \ldots x_{l}\right),l=784 (x1,x2…xl),l=784
——————————————————————————————————————
三、思路
分类任务的核心就是任意给出一张图片,让分类器去预测这张图片最有可能的标签 y, 即:
arg max y P ( y ∣ p i c t u r e ) \argmax _{y} P\left( y\mid picture\right) yargmaxP(y∣picture)
写具体一点呢,变成下面的样子:
arg max y P ( y ∣ x 1 , x 2 , x 3 … … x l ) \argmax _{y} P\left(y \mid x_{1}, x_{2}, x_{3} \ldots \ldots x_{l}\right) yargmaxP(y∣x1,x2,x