不再简单地将频率当作概率
已知朴素贝叶斯公式:
其中,表示样本的第
个特征,
为类别标签。
表示样本被判定为类别
前提下,第
个特征的条件概率。
现在采用另外一种方式,通过该特征在数据样本中的分布来计算该特征的条件概率。
首先先明确一下符号:
-
:表示训练集;
-
:表示训练集中最终分类结果为
的那部分样本的集合;
-
:表示一个训练样本(单个样本);
-
:表示第
个样本的第
个特征的特征值;
-
:
中样本的个数;
-
:
中样本的个数,一般情况下(
)。
我们假设:
1.具有特定的形式,这个具体的形式是事先就已经认定的,不需要求取。
2.被参数
唯一确定。
那么,我们现在所拥有的是:
1.的形式。
2.数据集合,其中每个样本的第
个特征都符合上述假定。
我们要做的是:利用求出
的值。
这里举例说明一下,比如:符合高斯分布,则:
高斯分布又名正态分布(在二维空间内形成钟形曲线),每一个高斯分布由两个参数——均值和方差,即上式中的和
——决定,也就是说
。
高斯分布
如果我们认定特征具有高斯分布的形式,又知道了
和
的取值,我们也就获得了对应
的具体概率分布函数。
直接带入的值计算相应条件概率,再进一步计算所有特征条件概率的积,就可以得出当前样本的后验概率了。
问题就在于:我们不知道(
和
)的值,因此首先需要求出它们。
是我们要以
为训练数据,通过训练过程得到的结果。
这个训练过程,要用到概率统计中参数估计(Parameter Estimation)的方法。
极大似然估计 (Maximum Likelihood Estimation, MLE)
参数估计的常用策略是:
1. 先假定样本特征具备某种特定的概率分布形式;
2. 再基于训练样本对特征的概率分布参数进行估计。
是训练集中所有被分类为
的样本的集合,其中样本数量为
;每一个样本都有
个特征;每一个特征有一个对应的取值。我们将第
个样本的第
个特征值记作:
。
我们已经假设 符合某一种形式的分布,该分布被参数
唯一确定。为了明确起见,我们把
写作
。现在,我们要做的是,利用
来估计参数
。
现在我们要引入一个新的概念——似然(Likelihood)。似然指某种事件发生的可能,和概率相似。
二者区别在于:概率用在已知参数的情况下,用来预测后续观测所得到的结果。似然则正相反,用于参数未知,但某些观测所得结果已知的情况,用来对参数进行估计。
参数 的似然函数记作
,它表示了
中的
个样本
在第
个特征上的联合概率分布:
极大似然估计,就是去寻找让似然函数 的取值达到最大的参数值的估计方法。
我们把让 达到最大的参数值记作
。则
满足这样的情况:
1. 将 带入到
的分布形式中去,确定了唯一的一个分布函数
(比如这个
是一个高斯函数,
对应的是它的均值和方差);
2. 将 中每一个样本的第
个特征的值带入到
中,得到的结果是一个 [0,1] 之间的概率值,将所有
个
的计算结果累计相乘,最后得出的结果是最大的。
也就是说将参数换成其他任何值,再做上述 1 和 2 之后的结果,一定小于 做 1 和 2 的结果。
求取 的过程,就是最大化
的过程:
为了便于计算,我们对上面等式取对数,得到 的对数似然:
要知道,最大化一个似然函数同最大化它的自然对数是等价的。
因为自然对数 log 是一个连续且在似然函数的值域内严格递增的上凸函数。所以我们可以参考前面线性回归目标函数的求解办法:对似然函数求导,然后在设定导函数为0的情况下,求取 的最大值——
正态分布的极大似然估计
为正态分布。此时,我们有:
注意,这里我们把 看作一个独立参数,即:
我们先对 求偏导:
令:
则:
有:
然后对 求偏导:
令:
最后得出:
这样我们就估算出了第 个特征正态分布的两个参数,第
个特征的具体分布也就确定下来了。
注意:虽然我们此处用的是正态分布——一种连续分布,但是实际上,离散特征的分布一样可以用同样的方法来求,只不过把高斯分布公式改成其他的分布公式就好了。
估算出了每一个特征的 之后,再将所有求出了具体参数的分布带回到朴素贝叶斯公式中,生成朴素贝叶斯分类器,再用来做预测,就好了。