朴素贝叶斯与Laplace平滑
朴素贝叶斯与Laplace平滑
朴素贝叶斯(Naive Bayes)
基本理论
朴素贝叶斯模型是生成学习的一种,用于分类问题。作为生成学习,朴素贝叶斯针对每一个分类,生成一个该分类对应的数据的模型,然后判断一个数据最符合哪一个模型,从而分类。
其核心为贝叶斯公式:
目标是
这里的
这个式子非常复杂,如果考虑每个特征都是
而朴素贝叶斯采取了一个非常强的假设——
参数数量
参数推导
以每个特征都为
参数有:
: 的先验概率; :在 以及 时, 的概率,根据假设,不同的特征之间的参数是无关的。
仍然采用最大似然估计,用联合概率定义似然函数(
取对数似然(其中 “
先对
从而
再对
从而
同理有
实际上这些公式看起来非常显然,就是以频率估计概率,但是都是基于MLE推导而来的。
Laplace平滑
朴素贝叶斯模型非常依赖数据的“完整性”——假如训练集中没有
以一个例子突出朴素贝叶斯模型的这一问题。
垃圾邮件分类
考虑给定一个纯文本邮件,判断其是否为垃圾邮件。
我们可以用一种很简单的方法处理数据——预设一个字典,假设邮件的所有单词都包含在内(如果没有包含就把它忽略)。设置特征为“某一个单词是否在邮件中出现”,出现即为
(其实可以注意到这种特征设置并不满足朴素贝叶斯的假设,比如 buy 和 price 这两个单词是否出现一般来说是不独立的。因此直接这样实现的效果很差,用 UCI 中的数据集 spambase,将其提供的“单词出现频次”改为“是否出现”,大概错误率为 10%。)
那么就可能会有一个问题——字典中的某个单词
那么我们发现模型对 test set 中的这封邮件是垃圾邮件和不是垃圾邮件的概率都是
Laplace平滑
一个非常简单的处理,我们假设每种情况最初都包含有一个数据,也即
同理
更为普遍地,我们考虑有
这样就直接避免了上述问题,但是同时也会造成一定程度的误差,在数据较多时造成的误差不明显。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2021-03-07 「SOL」Spaceship(LOJ/USACO)