拉普拉斯平滑
问题引入
在上一节中,我们使用朴素贝叶斯来解决垃圾邮件分类问题。我们设
$$
$$
尽管这些值都是通过计算得到的,但其实一打眼看上去也很好理解。以
我们考虑这样一个情况——假设词典中第 k
个单词在训练集所有邮件里都没有出现过,即
显然,我们得不到一个有意义的概率值。那么问题的根源在哪里呢?
根源剖析
通过观察我们可以发现,
为了达到这个目的,我们需要在计算
问题解决
绕了这么大一圈,终于引出拉普拉斯平滑。但是别急,我们需要先看一个拉普拉斯平滑的简单案例。假设有一个足球队A,该球队先前和B、C、D、E、F五个队伍都打过比赛,数据如下
对手 | 结果 |
---|---|
B | 输 |
C | 输 |
D | 输 |
E | 输 |
F | 输 |
下周A队要和G队打比赛,A队胜利的概率有多大?很显然,我们可以根据历史数据对A的胜率进行预测,即
这里出现了和刚才一样的问题 ——
只通过历史数据不能完全推断未来的数据,因此不能100%断定A队一定输(万一人家奋发图强了呢)。为了解决该问题,拉普拉斯平滑的做法是:将A队赢的次数增加1,A队输的次数也增加1,这样计算出来的概率就不是0了,即
将该思想运用在垃圾邮件分类问题中
泛化
更一般的,假设特征
我们可以根据历史数据预测
应用拉普拉斯平滑,我们可以改写
两种事件模型
多元伯努利事件模型
对于以前提到的“垃圾邮件分类任务”,我们用
这种模型我们称作“多元伯努利事件模型”。在该模型中,
多项事件模型
为了解决上述的问题,我们换用另一种
Index | Word |
---|---|
56 | English |
129 | I |
234 | like |
那么对应的
很容易可以看出,
其实本质上需要对 $P(x_j y) $ 和
可以发现,我们已经做出了如下假设——邮件中每个位置出现单词
上面公式中
支持向量机简介
支持向量机(Support Vector Machine,SVM)是一种机器学习算法,可以用于分类和回归问题。它通过在高维空间中寻找一个最优的超平面,将不同类别的样本实例分开。在支持向量机中,数据点被看作是高维空间中的向量,不同类别的数据点被分别标记为正样本(+1)和负样本(-1)。SVM的目标是找到一个超平面,使得离该平面最近的数据点的距离最大化,这些离超平面最近的数据点就是支持向量(Support Vector)。
另外,支持向量机还可以将一个简单的特征集(如
特殊记号
标签
h 预测的值在
之中
,其中 ,
Functional margin
Functional margin可以看做数据点到由
根据
- 当
时,我们希望 - 当
时,我们希望
对于整个数据集来说,其 Functional margin 可以被定义为
当然,我们可以采取一种trick 来增加
Geometric margin
Geometric margin 也是数据点到由
结合 Functional margin 的定义,我们可以发现
对于整个数据集来说,其 Geometric margin 可以被定义为
他的几何意义也很简单,就是“距离超平面最近的数据点”到超平面的距离。为了能够获得一个最佳边际分类器(optimal
margin classifier),我们需要让选择

$$
$$