以下是我对贝叶斯算法的简单理解,
由于时间关系,推导不是很严谨,只记录基本训练和推理实现:
算法简单公式
贝叶斯定理: P(C|X) = P(X|C)*P(C) | P(X) (注:这里C和X都是集合)
C是所有类别集合 — 比如一个哥们 帅与不帅的类别,C1和C2
X是所有样本特征集合 — 比如一个哥们的 身高和颜值,X1/X2
我们称 P(C|X) 为样本特征下的一些类别出现的概率,也是我们推理时候要求得的后验概率。
训练:
比如有下面的训练集,其中“帅不帅”是一个二分类标签! ! !身高和外貌是一个人的特征。
身高 | 颜值 | 帅不帅 (标签) |
优秀 | 高 | 是 |
优秀 | 中 | 是 |
一般 | 高 | 是 |
一般 | 中 | 否 |
不行 | 高 | 否 |
不行 | 低 | 否 |
(1)公式中右边 P(X|C) 表示某个类中出现某个特征的概率(似然), 训练集全部P(Xi | Ci) 有:
p(身高=优秀|帅=是):2/6,p(身高=一般|帅=是):1/6,p(身高=不行|帅=是):0,
p(身高=优秀|帅=否):0,p(身高=一般|帅=否):1/6,p(身高=不行|帅=否):2/6,
p(颜值=高|帅=是):2/6,p(颜值=中|帅=是):1/6,p(颜值=低|帅=是):0
p(颜值=高|帅=否):0,p(颜值=中|帅=否):1/6,p(颜值=低|帅=否):1/6
(2) 公式中右边 P(C) 表示所有类标签出现的概率先验,由表格中国可以看到:
p(帅=是) 和 p(帅=否)都等于 3/6 = 0.5
(3)公式中右边 P(X) 一般都是特征出现的概率(证据因子)简单计算时候,因为推理时候某一个样本的特征是不变,可忽略计算。所以一般简单实用时候用 P(C|X) = P(X|C)*P(C)
推理:
如果现在有新样品,身高是:没有,外貌是:中等,那怎么判断这家伙帅不帅?
那么开始带入公式,计算每个这些特征下,帅与不帅的概率即可!(这里涉及用到朴素贝叶斯,就是假定各个特征下,条件概率相互独立,独立性简单记为:P(AB)=P(A)P(B))
最后,
P(帅=是 | 身高=不行,颜值=中)= p(身高不行|帅) * p(颜值中|帅) * p(帅) = 0 * 1/6 * 0.5 = 0
P(帅=否 | 身高=不行,颜值=中)= p(身高不行|不帅) * p(颜值中|不帅) * p(不帅)
= 2/6 * 1/6 * 0.5 = 1/36
综合起来,这个计算不帅的概率很大,所以这个人的推理结果是:不帅! ! !
文章出处登录后可见!