朴素贝叶斯分类
Naive Bayes Classifiers - GeeksforGeeks
朴素贝叶斯分类是一个算法族基于贝叶斯定理。尽管有朴素的特征独立性假设,这些分类器因为简单和高效,在机器学习中被广泛使用。这篇文章深入讨论了理论,实现和应用,揭示了他们的实际的作用尽管假设过于简单。
什么是朴素贝叶斯
朴素贝叶斯是分类算法的集合基于贝叶斯理论。他不止是一个简单的算法还是一个算法族,所有的算法都共享一个相同的原则。即,每一对被分类的特征都是相互独立的。首先,我们考虑一个数据集。
最简单有效的分类算法之一,朴素贝叶斯分类有助于快速开发具有快速预测的机器学习模型的能力。
朴素贝叶斯算法应用于分类问题。他在文本分类中被广泛使用。在文本分类任务中,数据包含了高维(因为每个词代表了数据的一个特征)。他被用于垃圾邮件过滤,情感分析,等级分类,等。使用朴素贝叶斯的好处是快。他在高维的数据中快速做出预测。
这个模型的预测实例的概率属于给定的特征集合类型值。它是一个概率性的分类器。这是因为他假设了这个特征在模型中是独立于其他特征存在的。换句话说,每个特性都有助于预测,他们彼此之间没有关系。在现实中,这个条件很少被满足。他在算法和预测中使用了贝叶斯理论。
为什么叫做朴素贝叶斯?
有条件独立(Conditional Independence)是在概率论和统计学中一个重要的概念,它描述的是两个随机事件或随机变量在给定另一个事件或变量的情况下是否相互独立。
名字中的天真表明了朴素贝叶斯分类做的简化假设。分类器假设,给定类标签,特征的描述观察是有条件独立的,名字中的贝叶斯代表了托马斯·贝叶斯。18世纪的统计学和神学者,他公式化了贝叶斯理论。
考虑一个虚构的数据集他描述了打高尔夫球的天气条件。给定天气条件,每个每组条件分类为合适yes或者不适合no进行高尔夫。这个表格代表了我们的数据集
天气 | 温度 | 湿度 | 风 | 打高尔夫球 | |
---|---|---|---|---|---|
0 | 雨 | 热 | 高 | 假 | 不 |
1 | 雨 | 热 | 高 | 真 | 不 |
2 | 低沉 | 热 | 高 | 假 | 是的 |
3 | 晴朗 | 轻微 | 高 | 假 | 是的 |
4 | 晴朗 | 凉 | 正常 | 假 | 是的 |
5 | 晴朗 | 凉 | 正常 | 真 | 不 |
6 | 低沉 | 凉 | 正常 | 真 | 是的 |
7 | 雨 | 轻微 | 高 | 假 | 不 |
8 | 雨 | 凉 | 正常 | 假 | 是的 |
9 | 晴朗 | 轻微 | 正常 | 假 | 是的 |
10 | 雨 | 轻微 | 正常 | 真 | 是的 |
11 | 低沉 | 轻微 | 高 | 真 | 是的 |
12 | 低沉 | 热 | 正常 | 假 | 是的 |
13 | 晴朗 | 轻微 | 高 | 真 | 不 |
这个数据集分为俩个部分,特征矩阵和响应向量
- 特征矩阵 包含了所有的数据集中的向量(行),其中的每个向量由相关特征值组成。在上述数据集,特征包括天气,温度,湿度,和风。
- 响应向量包括了特征矩阵中每一行类变量的值(预测或输出)在上述数据集,类变量名为打高尔夫。
朴素贝叶斯的假设
当说特征具有多项分布(Multinomial Distribution),这意味着这些特征的表现或取值遵循多项分布的统计特性。多项分布是概率论和统计学中描述一类随机现象的分布,这类现象的特点是在一定数量的独立重复试验中,每个试验都有若干个互斥的可能结果,而每个结果发生的概率是固定的。
基础的朴素的贝叶斯假设是每个特征都使:
- 特征独立:给定分类标签,数据的特征相互之间是有条件独立的
- 连续特征是正态分布的:如果特征是连续的,然后假设它在每个类中是正态分布的。
- 离散特征具有多项分布:如果特性是离散的,然后假设它在每个类中具有多项分布。
- 特性同样重要:假设所有的特征对类型标签的预测值共享是相同的。
- 没有缺失的数据:数据必须不能包括任何缺失值
结合我们的数据集,这个概念可以被理解为:
- 我们假设没有一堆特性是相互依赖的。例如,温度热与湿度无关,或者天气下雨和是否有风无关。因此假设这些特征是独立的
- 其次每个特征有相同的权重(或者重要性)。例如只知道温度和湿度,无法预测准确结果。没有任何一个属性是不相干的,假设他们对结果的贡献相同。
贝叶斯理论
边缘概率是概率论和统计学中的基本概念,它代表了事件发生的概率,无论它可能与之相关的任何其他随机变量结果如何。本质上,边缘概率是在不考虑任何条件的事件的情况下发生的概率。在处理联合概率时(俩个或多个事件同时发生的概率),可以将所有感兴趣的事件发生的结果的概率相加得出。无论发生什么其他的情况。
后验概率反应了在看到数据之后假设的可能性。
P(B|A)和P(A|B)都是条件概率
类概率通常指的是在分类任务中,观察值(或实例)属于特定类别的概率。
贝叶斯理论找到事件的发生概率,根据另一已经发生的事件的概率。贝叶斯理论在数学上表示为如下:
$$ P(A|B)=\frac{P(B|A) P(A)}{P(B)} $$
其中A和B是事件 P(B)不为0
- 基本上我们给定事件B的概率为真,试图找到事件A的概率。事件B也被称作证据。
- P(A)是A的先验(先验概率,即在证据出现之前事件的概率)。证据是一个位置实例的属性值。
- P(B)是边缘概率:证据的概率
- P(B|A)是似然概率,在给定A为真的情况下B发生的概率。
- P(A|B)是在知道B发生的情况下,A发生的概率,即给定B情况下的A的后验概率。
现在关于我们的数据集,我们可以使用贝叶斯理论用以下方式:
$$ P(y∣X)= \frac{P(X∣y)P(y)}{P(X)} $$
其中y是类变量,X代表特征向量大小为n,其中
$$ \mathbf X=(x_1,x_2,x_3...,x_n) $$
说明一点,一个特征向量和对应类别的例子可以是,参考数据集的第一行
X = (Rainy, Hot, High, False)
y = No
所以基本上,p(y|X)在这里意思是,假设条件是雨天,气温是热,高湿度的情况下。不打高尔夫的概率是多少,
现在是时候对贝叶斯定理做一个简单的假设了,也就是,特征之中的独立性。我们将证据切分成独立的部分。
现在如果有俩个事件A和B是独立的,那么(A,B同时发生的概率等于A发生的概率乘以B发生的概率)
$$ P(A,B) = P(A)P(B) $$
因此,我们得到结论
$$ P(y|x_1,\ldots,x_n)=\frac{P(x_1|y)P(x_2|y)\ldots P(x_n|y)P(y)}{P(x_1)P(x_2)\ldots P(x_n)} $$
可以表示为
$\prod$代表多维度乘法
$$ P(y|x_1,\ldots,x_n)=\frac{P(y)\prod_{i=1}^nP(x_i|y)}{P(x_1)P(x_2)\ldots P(x_n)} $$
现在对于输入的分母保持不变,我们可以删除该项
$$ P(y|x_1,\ldots,x_n)\propto P(y)\prod_{i=1}^nP(x_i|y) $$
现在我们需要创建分类模型。为此,我们找到类变量y所有可能的输入集概率,选择输出概率极大的那一个。这个可以被数学表示为:
$$ y=argmax_yP(y)\prod_{i=1}^nP(x_i|y) $$
所以最后我们只剩下计算任务P(y)和$p(x_i|y)$
请记住P(y)也叫做类别概率,而$p(x_i|y)$也叫做条件概率
不同的贝叶斯分类器主要区别在于他们关于分布$p(x_i|y)$所做的假设
让我们尝试在天气数据集上手动应用上述公式。为此,我们需要在我们的数据集上做预先运算。
我们需要找到X中的$x_i$和y中的每个$y_i$俩者的每一个$P(x_i|y_i)$,所有的这些计算会在下面的图表中进行演示
简单来说就是计算了每个
在上图中,我们手动给X中的每个$x_i$和y中的每个$y_i$计算了$P(x_i|y_i)$在表的1-4.例如,给定气温是冷的情况下打高尔夫的概率即,P(气温=冷|打高尔夫=真)=3/9
同样的,我们需要找到类概率P(y),他的计算在表5中,例如,P(打高尔夫=是)=9/14
现在我们结束了预计算,分类器准备好了。
让我们来测试一下新特征数据集
今天=(晴朗,热,温度正常,无风)
$$ P(适合|今天)=\frac{P(晴天|是)P(温度热|是)P(正常湿度|是)P(无风|是)P(适合)}{P(今天)} $$
不适合打高尔夫的概率为
$$ P(不适合|今天)=\frac{P(晴天|不是)P(温度热|不是)P(正常湿度|不是)P(无风|不是)P(不适合)}{P(今天)} $$
因为P(今天)在俩种概率中都是相同的,我们可以忽视掉,找到对应的比例
$$ P(适合|今天)\propto\frac39.\frac29.\frac69.\frac69.\frac9{14}\approx0.02116 $$
和
$$ P(不适合|今天)\propto\frac{3}{5}.\frac{2}{5}.\frac{1}{5}.\frac{2}{5}.\frac{5}{14}\approx0.0068 $$
因为
$$ P(适合|今天)+P(不适合|今天)=1 $$
这俩个值可以通过使他们总和为1来转换成概率
$$ P(适合|今天)\approx0.0237\\ P(不适合|今天)\approx0.33\\ P(适合|今天)>P(不适合|今天) $$
所以,预测会打高尔夫求的结果是"是的"
我们上述讨论的方法是用于离散变量的。在连续变量的例子中,我们需要做一些关于每个属性值分布的假设,不同的朴素被意思区别主要在他们对于分布的假设$P(x_i|y)$(即在x_i发生的情况下,y发生的概率)
不同的朴素贝叶斯模型
高斯朴素贝叶斯分类器
在高斯朴素贝叶斯中,连续的特征值之间是相关的,假设他们根据高斯分布。高斯分布也叫做正态分布。它呈现钟形曲线,其特征值与均值对称。
更新表的天气特征的先验概率,假设特征的似然是高斯分布,因此条件概率为
$$ P(x_i|y)=\frac1{\sqrt{2\pi\sigma_y^2}}exp\left(-\frac{(x_i-\mu_y)^2}{2\sigma_y^2}\right) $$
现在,我们看一下使用scikit-Learn的实现高斯朴素贝叶斯分类器
是的 | 不 | P(是) | P(否) | |
---|---|---|---|---|
晴朗 | 3 | 2 | 3/9 | 2/5 |
雨 | 4 | 0 | 4/9 | 0/5 |
低沉 | 2 | 3 | 2/9 | 3/5 |
总 | 9 | 5 | 100% | 100% |
# load the iris dataset
from sklearn.datasets import load_iris
iris = load_iris()
# store the feature matrix (X) and response vector (y)
X = iris.data
y = iris.target
# splitting X and y into training and testing sets
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=1)
# training the model on training set
from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()
gnb.fit(X_train, y_train)
# making predictions on the testing set
y_pred = gnb.predict(X_test)
# comparing actual response values (y_test) with predicted response values (y_pred)
from sklearn import metrics
print("Gaussian Naive Bayes model accuracy(in %):", metrics.accuracy_score(y_test, y_pred)*100)
输出
Gaussian Naive Bayes model accuracy(in %): 95.0
多项式朴素贝叶斯
特征向量表示由多项分布产生的特定事件它的发生率,这是通常用于文档分类的事件类型
伯努利朴素贝叶斯
在多元伯努利事件中,输入特征的描述是布尔值(二进制变量)。类似多项式模型,这个模型在文档分类中很流行,出现二进制的地方(例如单词出现在文档中或者没有)使用的是特征而不是词频(即文档中词语出现的频率)
极大似然估计
什么是参数
在机器学习中我们通常使用模型来描述观察到的数据被返回的过程,例如我们可以使用随机森林模型对客户进行分类预测客户是否可能会取消了服务订阅(也叫做流失模型)。或者我们可以使用线性模型根据他们在广告上花了多少钱预测公司会产生的收入(这是线性回归的一个例子)。每个模型包括了自身的参数集最终决定了模型的效果。
对于线性回归模型我们可以写作y=mx+c。在中国例子中x就是广告花费,y可能就是收入。m和c就是模型的参数。不同的模型有不同的线。(如下图所示)
所以参数的定义是模型的蓝图。只有特定的参数被选择,我们得到给定现象的模型实例化。
直观的解释极大似然估计
极大似然估计是一个确定模型值参数的方法。这些参数值使模型所描述的过程产生实际观察到的数据概率极大化。
假设我们从某个过程中观察到了10个点。例如,每个数据点可以表示为学生回答特定考试问题的时间长度 秒。10个数据点如图所示
我们首先决定哪个模型可以最好描述生成数据的过程。这部分很重要。至少,我们需要对使用哪个模型有一个好的想法。这通常来自于专业经验,但我们这里不讨论这个。
我们假设这写数据生成过程适合被描述为高斯分布,目测上述例子,高斯分布是合理的,因为大部分点在中间少部分点在俩边。(在只有10个数据点的情况下做出这种决定是不明智的,但考虑到我生成了这些数据点,我们就这么做吧)
回想一下高斯分布有俩个参数,平均值为μ,偏差查为$\sigma$。这些参数不同的值返回了不同的曲线(和上面的直线一样)。我们想要知道哪个曲线最有可能产生我们观测到的数据点。极大似然就是要找到μ和$\sigma$导致曲线最佳拟合数据。
f1为均值为10方差为2.25(方差为标准差的平方),也记为f1-N(10,2.25).f2-N(10,9) f3 ∼ N (10, 0.25) and f4 ∼ N (8, 2.25)。极大似然的目标是找到能使观察到的数据概率极大话的分布参数值。
生成数据的分布为f1-N,真实的数据分布是上图中蓝色的那条线
计算极大似然估计
现在我们可以直观的理解什么是极大似然估计,我么可以继续学习如何计算参数值。我们找到的值被称为极大似然估计(MLE)
我们将在一次用例子来展示这一点。假设我们此时有一个数据点,假定他们是由高斯分布充分描述的过程生成的。这个点是9,9.5,11.我们如何计算高斯参数值的μ和$\sigma$的极大似然估计。
边际概率是独立事件不考虑其他事件的影响和可能的关联的发生概率。
我们下要计算的是观测到的所有数据的总概率,即所有观测数据点的联合概率分布。要做到这一点我们需要做一些条件计算,这是非常困难的。所以这里我们要做我们的第一个假设。假设为每个数据点的生成是独立于其他点的。这个假设让数学计算变得容易的多。如果事件(即生成数据的过程)是独立的,观测到的所有数据的总概率是独自观察每个数据点的产物(即边缘概率的乘积)。
观察到的单个数据点x的概率密度,他是根据高斯分布生成的
$$ P(x;\mu,\sigma)=\frac{1}{\sigma\sqrt{2\pi}}\exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right) $$
在标注$P(x; μ, \sigma)$中使用分号,是要强调在它之后出现的符号是概率分布的参数。所以不应该和条件概率混淆(那个通常用竖线表示如P(A| B))
在我们的例子中,给定的三个点数据被观测到总(联合)概率密度
$$ \begin{aligned}P(9,9.5,11;\mu,\sigma)&=\frac1{\sigma\sqrt{2\pi}}\exp\left(-\frac{(9-\mu)^2}{2\sigma^2}\right)\times\frac1{\sigma\sqrt{2\pi}}\exp\left(-\frac{(9.5-\mu)^2}{2\sigma^2}\right)\\&\times\frac1{\sigma\sqrt{2\pi}}\exp\left(-\frac{(11-\mu)^2}{2\sigma^2}\right)\end{aligned} $$
我们只需要计算出μ和$\sigma$的值,这俩个值会导致上述表达式找到极大值。
如果学过微积分,你可能就知道有什么方法帮助我们找到函数中的极大值(和极小值,但是由于正态分布是一个凸函数,所以我们求到的一定是极大值)。它就是求导。我们要做的就是求这个函数的导数,将函数的导数设为0然后整理等式让感兴趣的参数成为方程的主题。那就是我们要找的极大似然估计的参数。
似然对数
上述的对与总概率的表达其实相当难求导。所以它总是通过对表达式求自然对数来简化。这完全没有关系,因为自然对数是一个单调递增函数。这意味着如果x轴上的值增大了y轴上的值也会增大(如下图所示)。这很重要,因为它保证了概率对数的极大值出现在与原函数相同的点上。因此我们可以使用最简单的对数似然函数来替代原来的似然函数。
对原函数取对数如下
$$ \begin{aligned}\ln(P(x;\mu,\sigma))&=\ln\left(\frac1{\sigma\sqrt{2\pi}}\right)-\frac{(9-\mu)^2}{2\sigma^2}+\ln\left(\frac1{\sigma\sqrt{2\pi}}\right)-\frac{(9.5-\mu)^2}{2\sigma^2}\\&+\ln\left(\frac1{\sigma\sqrt{2\pi}}\right)-\frac{(11-\mu)^2}{2\sigma^2}\end{aligned} $$
这个表达式可以用对数定理再次简化
$$ \ln(P(x;\mu,\sigma))=-3\ln\left(\sigma\right)-\frac32\ln\left(2\pi\right)-\frac1{2\sigma^2}\left[(9-\mu)^2+(9.5-\mu)^2+(11-\mu)^2\right] $$
这个表达式求导可以得到极大值。在这例子中我们可以找到均值μ的极大似然。为此,我们求函数对μ的偏导数。得到
$$ \frac{\partial\ln(P(x;\mu,\sigma))}{\partial\mu}=\frac1{\sigma^2}\left[9+9.5+11-3\mu\right]. $$
如何把等式左边设为0,求偏导可以得出
$$ \mu=\frac{9+9.5+11}3=9.833 $$
这时候我们就有了极大似然估计的μ。我们可以对$\sigma$做相同的事情。
小节
在训练朴素贝叶斯的背景下,MLE可以用来训练估计模型所需的概率。
EM算法
The EM Algorithm Explained. The Expectation-Maximization algorithm… | by Chloe Bi | Medium
在之前的讨论中假设了变量的所有特性的都可以从训练集观测到,即,每个训练集样本都是完备的。在现实中我们通常由很多不完整的训练集样本。这种未观察到的特征也被成为隐变量,我们如何估计模型参数呢?EM算法是经典的无监督分类模型
最大期望算法(简称EM算法)可能是一个最有影响力也是最广泛使用在机器学习领域中的算法。这个算法表面很简单只需要俩步,同时也很复杂因为要有数学支撑。
为了解释什么是EM算法,我们首先考虑这样一个例子。假设我们在一所大学中,想了解这所院校的男女分布情况。一个明智的选择是随机抽取N个男女学生的样本,收集他们的高度信息。使用极大似然法分别计算男女的平均值和标准差
在统计学模型中θ一般用来代表感兴趣的参数.这个参数可以代表分布或种群的各种特征
θ通常代表统计模型的常识估计的参数集.这些参数可以包括平均值,方差,混合比例.
假设我们选择不知道学生的性别,我们收集他们的身高信息。所以我们有俩件事情必须估计。
- 身高的个体样本属于男孩还是女孩
- 每个性别的参数(μ, θ),现在是不可观察的。
这是比较棘手的因为只有知道属于哪个组,我们才能分别估计每个组的参数。同理,除非我们知道定义组的参数,才能正确分配主题。这从字面上就变成了先有鸡还是先有蛋的问题。我们如何跳出这个无限循环?EM算法说从随机猜测开始。
让我们回到身高问题,假设我们随机分配前一半的样本到一组,第二个到另一组,我们可以得到俩组参数的估计。被判别的群体我们可以审查成员的分配适当重新分配。迭代确保最后的状态变为不需要对成员或参数组进行继续迭代。如果这让你想起了k-means算法,那么你是对的。k-means算法是一个EM算法的特殊变种,它假设集群是球形的。
如果你要说服自己为什么迭代可以达到最优解,那么让我们用数学的方式解释一次。
让我们重新用数学符号正式表达问题。在概率模型,有可见变量y,隐变量z(男女),和结合参数θ。似然概率p(y|θ),我们的目标是,给定参数(群体特征,如均值和方差)测量可观测物(身高)的概率。由于θ依赖于z,但是z是隐藏的,我们不能直接用极大似然估计解决最大参数值问题。让我们定义q(z),为潜在变量的任意分布。即我们有
$$ \begin{gathered} p(z|y,\theta)=\frac{p(y|z,\theta)p(z|\theta)}{p(y|\theta)} \begin{pmatrix}1\end{pmatrix} \\ p(y|\theta)=\frac{p(y|z,\theta)p(z|\theta)}{p(z|y,\theta)} \text{(2)} \\ p(y|\theta)=\frac{p(y|z,\theta)p(z|\theta)}{q(z)}\frac{q(z)}{p(z|y,\theta)} \left(3\right) \end{gathered} $$
应该清楚的是等式1是从贝叶斯理论中推导出来的.重新排列等式左边和右边的项,我们可以得到等式2.手动除以和乘以q(z)我们得到了等式3
$$ log p(y|\theta)=log\frac{p(y|z,\theta)p(z|\theta)}{q(z)}+log\frac{q(z)}{p(z|y,\theta)}\quad(4) $$
对等式3俩边取对数得到等式4.计算俩边对q(z)的期望,我们得到了
$$ \mathbb{E}(log p(y|\theta))=\int q(z)log\frac{p(y|z,\theta)p(z|\theta)}{q(z)}dz+\int q(z)log\frac{q(z)}{p(z|y,\theta)}dz\quad(5) $$
我们需要詹森不等式的帮助.回想对于严格凸函数我们都有E(f(x)) ≥ f(E(x)).这个不等式对于严格凹函数是相反的.回到等式5,因此对数函数实际上是一个凸函数(即二阶导数为$-1/x^2$,它小于0).现在我们可以推导出在给定θ的情况下,y的对数似然有一个下界,如等式5所示.此外方程5的第二项本质上是q(z)和p(z|y,θ)之间的KL散度,它总是非负的.因此,下界可以简化成第一项,它代表着F(q(z), θ)
你可能会问,为了最大化可能性,为什么不直接取一阶导数我,设为0如何解除方程1-4中任意一个参数?如果你只有想,求导这部分并不容易.然而,方程5中的F(q(z),θ)更容易处理,因为它是对数的和。
现在问题来了:下界的最大值不是对数似然的最大值.所以我们应该做什么?下面是杜克大学计算统计学课程中EM算法收敛的一个很好的可视化图
E步从一个固定的θ(t)开始,并试图最大化下界(LB)函数F(q(z), θ)相对于q(z)。客观的说,当LB函数满足客观似然函数时就会发生这种情况.数学上讲这是因为似然函数与q(z)无关.所以最大化下界等于最小化q(z)和p(z|y,θ(t))的KL散度。因此,E步得到q(z) = p(z|y,θ(t))。
另一方面,M步试图基于固定的q(z)最大化关于θ(t)的下界函数。回想一下Eq 5
$$ F(q(z),\theta)=\int q(z)log\frac{p(y|z,\theta)p(z|\theta)}{q(z)}dz $$
我们可以忽略分母中的q(z)因为它与θ无关。因此,M步在时刻t变成如下argmax问题:
$$ \theta_t=argmax\int q_t(z)log(p(y|z,\theta_{t-1})p(z|\theta_{t-1}))dz\quad(6) $$
重复E步和M步骤,期望达到极大似然函数的局部值,如上图所示.
另一种考虑EM算法的方法是坐标上升。下面是一个来自维基百科的可视化图片。
这是一个强大的算法当函数不可微的时候.(因此不能使用梯度下降/上升算法).正如你从图表中看到.优化器一次朝向一个方向工作逐渐到达最优值.
EM算法对比随机梯度下降怎么样呢?首先为了使用SGD,底层的目标函数必须是可微的,可能并不总是如此.此外使用map-reduce可以很容易的实现EM算法的并行(map负责E步骤,简化器负责M步骤).如果要在大数据上运行SGD可能需要依赖于昂贵的GPU.
最后,我希望说一些EM算法的应用.它常用于高斯混合,聚类(K-means)和隐马尔可夫模型.它工作的很好归功于那些没有在输入数据中显示的隐变量.
隐马尔可夫模型(HMM)是一个统计学模型广泛被应用在多种领域.如语音识别,自然语言处理,时序分析.他被广泛应用于建模序列数据,但是真实的数据不能直接观测到的情况.
贝叶斯网络
贝叶斯网络是一个对于不确定领域的知识的概率图模型,其中每一个节点代表了一个随机变量每个边缘代表了对应随机变量的条件概率.
贝叶斯网络是处理概率事件和解决不确定性问题的关键技术,我们可以将贝叶斯网络定义为
贝叶斯网络是一个概率图模型,它表示一个变量集合它的条件依赖使用有向无环图。它也叫做贝叶斯网络,置信网络,决策网络或者贝叶斯模型。
贝叶斯网络是一个概率,因为这个网络是从概率分布中构建的,同时使用概率论进行预测和异常检测。
真实世界的一样本质上是概率的,为了表示多个事件的关系。他同样可以用来处理多种任务,包括预测,决策,诊断,自动化,洞察,推理,时序预测,不确定情况下的时序预测
贝叶斯网络可以从数据和专家意见中构建模型,它由俩部分组成。
- 有向无环图
- 条件概率表
表示解决不确定知识下的决策问题的贝叶斯网络的广义形式被称为影响图(Influence diagram)。
贝叶斯网络图是由节点和弧(有向连接)制成,其中
每个节点对应一个随机变量不同变量可以是连续的或者是离散的。
弧或者有像箭头代表了在不同随机变量之间的因果关系或者条件概率。有像连接或者箭头连接图中的一对节点。
这个些连接代表了一个节点直接影响另一个节点,如果俩者没有有向连接那就意味着节点之间相互无关。
- 在上面的图解中,ABCC,是随机变量分别代表了网络图的节点
- 如果我们考虑节点B,它和节点A被有向箭头所连接,节点A叫做B的父节点
- 节点C独立于节点A
贝叶斯网络不能成环,因此我们也叫做有向无环图我DAG
贝叶斯网络有俩个部分
- 因果成分
- 实际数量
每个节点在贝叶斯网络中有条件分布概率P(Xi |Parent(Xi) ),它决定了父节点对该节点的影响。
贝叶斯网络基于联合概率分布和条件概率。
贝叶斯网络的解释
让我们通过创建一个有向无环图来理解贝叶斯网络。
举例:哈利在安装了新的防盗系统,警报可靠的在探测到盗窃时进行反应,也可以在小地震的时候作出反应。哈利有俩个邻居大卫和索菲亚,他们有责任当警报响起时通知在上班的大卫。大卫总是在听到警报的时候给哈利打电话,但有时候他也会被电话铃声搞混这时他也会打电话给哈利。另一方面,索菲亚相互听高音乐,一些时候她会没听到警报。这里我们要计算防盗器报警的概率。
问题:计算报警器响起但是,但是没有发生盗窃,也没有地震发生的概率,并且大卫和索菲亚都告诉了哈里。
方案:
- 贝叶斯网络对于上面的问题给出如下。网络结构展示了盗窃和地震是警告的父节点,直接影响警报响起的概率,而大卫和索菲亚的电话取决于警报概率。
- 网络代表了我们的假设,不直接察觉到入室盗窃,也不注意到轻微地震,而且他们在打电话时也不会商量。
- 每个节点的条件分布以条件概率表(CPT)的形式给出。
- 条件概率表中的每一行和必须为1,因为表中的所有条目代表了案例变量的详尽组合。
- 在条件变量表中,一个有k个布尔父变量包含$2^k$个概率。如果有俩个父节点,则CPT将包含4个概率值。
网络中事件发生概率的列表
- 入室抢劫B
- 地震E
- 报警A
- 大卫电话D
- 索菲亚电话S
我们可以吧事件的概率用可能性来表述:P[D, S, A, B, E],可以使用联合概率分布重写上述上述概率为。
P[D, S, A, B, E]= P[D | S, A, B, E]. P[S, A, B, E]
=P[D | S, A, B, E]. P[S | A, B, E]. P[A, B, E]
= P [D| A]. P [ S| A, B, E]. P[ A, B, E]
= P[D | A]. P[ S | A]. P[A| B, E]. P[B, E]
= P[D | A ]. P[S | A]. P[A| B, E]. P[B |E]. P[E]
我们来看观察到的概率,让我们以观察到入室盗窃的和地震分量的概率为例。
报警A的条件概率取决于窃贼和地震。
B | E | P(A= True) | P(A= False) |
---|---|---|---|
True | True | 0.94 | 0.06 |
True | False | 0.95 | 0.04 |
False | True | 0.31 | 0.69 |
False | False | 0.001 | 0.999 |
大卫打电话的条件概率表为
大卫亚打电话的条件概率取决于父节点警报
A | P(D= True) | P(D= False) |
---|---|---|
True | 0.91 | 0.09 |
False | 0.05 | 0.95A |
索菲亚打电话的条件概率表为
索菲亚打电话的条件概率取决于父节点警报
A | P(S= True) | P(S= False) |
---|---|---|
True | 0.75 | 0.25 |
False | 0.02 | 0.98 |
由联合概率分布公式,我们可以把问题表述成概率分布形式。
P(S, D, A, ¬B, ¬E) = P (S|A) *P (D|A)*P (A|¬B ^ ¬E) *P (¬B) *P (¬E).
= 0.75 0.91 0.001 0.9980.999
= 0.00068045.
因此贝叶斯网络可以回答任何关于联合分布的问题
贝叶斯网络的定义:
由俩种方式理解贝叶斯网络的语义,在如下给出:
- 将网络理解为联合概率分布的表示
- 将网络理解为一组条件独立语句的编码