机器学习算法(二):朴素贝叶斯算法
朴素贝叶斯算法的学习器如下
$h(x)=arg\max\limits_{y} P (y | x)$
对每个样本x,选择那个能使后验概率$P (y | x)$ 最大的类别y
假设所有属性是条件独立的,那么
$P (y | x) = \frac{P(y)P(x | y)}{P(x)} = \frac{P(y)}{P(x)}\prod\limits_{i=1}^{n} P(x_{i}|y)$
对所有类别来说P(x)相同,那么朴素贝叶斯分类器可以写为
$h(x)=arg\max\limits_{y}P(y)\prod\limits_{i=1}^{n} P(x_{i}|y)$
接下来的问题就是如何求P(y)和$P(x_{i}|y)$,
$P(y) = \frac{|D_{y}|+1}{|D|+N} $,其中D为训练集,$D_{y}$为训练集D中第y类样本的集合,N为类别数目
对于离散属性
通过下面的似然估计加上拉普拉斯修正得到
$P(x_{i}|y) = \frac{|D_{y,x_{i}}|+1}{|D_{y}|+N_{i}} $
$D_{y,x_{i}}$为$D_{y}$中在第i个属性为取值为$x_{i}$的样本集合,$N_{i}$为第i个属性可能的取值数目
对于连续属性
使用概率密度函数,具体参数需要根据样本分布通过极大似然估计得到。
$p(x_{i}|y)=\frac{1}{\sqrt{2\pi}\sigma_{y,i}}exp(-\frac{(x_{i}-\mu_{y,i})^{2}}{2\sigma_{y,i}^{2}})$
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步