机器学习相关知识点--朴素贝叶斯,贝叶斯网络,半朴素贝叶斯
什么是贝叶斯决策论?
回答:贝叶斯决策论是概率框架下实施决策的基本方法。要了解贝叶斯决策论,首先得先了解以下几个概念:先验概率、条件概率、后验概率、误判损失、条件风险、贝叶斯判别准则。
先验概率:根据以往的经验
所谓先验概率,就是根据以往的经验或者现有数据的分析所得到的概率。
如,随机扔一枚硬币,则p(正面) = p(反面) = 1/2,这是我们根据已知的知识所知道的信息,即p(正面) = 1/2为先验概率。
条件概率:P(B|A),有因求果
是指事件A在另一事件B发生的条件下发送的概率。用数学符号表示为:P(B|A),即B在A发生的条件下发生的概率。易见,条件概率是有因求果(知道原因推测结果)。
后验概率, p(A|B),有果求因
后验概率跟条件概率的表达形式有点相似。数学表达式为p(A|B), 即A在B发生的条件下发生的概率。以误喝牛奶的例子为例,现在知道了你今天拉肚子了(B),算一下你早上误喝了一瓶过期了的牛奶(A)的概率,即P(A|B),这就是后验概率,后验概率是有果求因(知道结果推出原因)
误判损失:L(j|i)
数学表达式:L(j|i), 判别损失表示把一个标记为i类的样本误分类为j类所造成的损失。比如,当你去参加体检时,明明你各项指标都是正常的,但是医生却把你分为癌症病人,这就造成了误判损失,用数学表示为:L(癌症|正常)。
条件风险:R(i|x) = ∑L(i|j)P(j|x), 所有判别损失的加权和
是指基于后验概率P(i|x)可获得将样本x分类为i所产生的期望损失,公式为:R(i|x) = ∑L(i|j)P(j|x)。
(其实就是所有判别损失的加权和,而这个权就是样本判为j类的概率,样本本来应该含有P(j|x)的概率判为j类,但是却判为了i类,这就造成了错判损失,
而将所有的错判损失与正确判断的概率的乘积相加,就能得到样本错判为i类的平均损失,即条件风险。)举个栗子,假设把癌症病人判为正常人的误判损失是100,把正常人判为癌症病人的误判损失是10,把感冒病人判为癌症的误判损失是8,即L(正常|癌症)= 100, L(癌症|正常) = 10,L(癌症|感冒) = 8, 现在,我们经过计算知道有一个来体检的员工的后验概率分别为:p(正常|各项指标) = 0.2, p(感冒|各项指标) = 0.4, p(癌症|各项指标)=0.4。假如我们需要计算将这个员工判为癌症的条件风险,则:R(癌症|各项指标) = L(癌症|正常)* p(正常|各项指标) + L(癌症|感冒) * p(感冒|各项指标) = 5.2。
贝叶斯判别准则:条件风险R(i|x)最小
是找到一个使条件风险达到最小的判别方法。即,将样本判为哪一类,所得到的条件风险R(i|x)(或者说平均判别损失)最小,那就将样本归为那个造成平均判别损失最小的类。
此时:h*(x) = argminR(i|x) 就称为 贝叶斯最优分类器。
总结:贝叶斯决策论是基于先验概率求解后验概率的方法,其核心是寻找一个判别准则使得条件风险达到最小。而在最小化分类错误率的目标下,贝叶斯最优分类器又可以转化为求后验概率达到最大的类别标记,即
h*(x) = argmaxP(i|x)。(此时,L(i|j) = 0, if i = j;L(i|j) = 1, otherwise)
为什么朴素贝叶斯被称为朴素的?
之所以被称为“朴素”,是因为它假定所有的特征在数据集中的作用是同样重要和独立的,正如我们所知,这个假设在现实世界中是很不真实的,因此,说是很“朴素的”。
朴素贝叶斯的工作流程
回答:朴素贝叶斯的工作流程可以分为三个阶段进行,分别是准备阶段、分类器训练阶段和应用阶段。
准备阶段
这个阶段的任务是为朴素贝叶斯分类做必要的准备,主要工作是根据具体情况确定特征属性,并对每个特征属性进行适当划分,去除高度相关性的属性(如果两个属性具有高度相关性的话,那么该属性将会在模型中发挥了2次作用,会使得朴素贝叶斯所预测的结果向该属性所希望的方向偏离,导致分类出现偏差),然后由人工对一部分待分类项进行分类,形成训练样本集合。
这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。(这一阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段,其质量对整个过程将有重要影响。)
分类器训练阶段
这个阶段的任务就是生成分类器,主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计,并将结果记录。其输入是特征属性和训练样本,输出是分类器。这一阶段是机械性阶段,根据前面讨论的公式可以由程序自动计算完成。
应用阶段
这个阶段的任务是使用分类器对待分类项进行分类,其输入是分类器和待分类项,输出是待分类项与类别的映射关系。这一阶段也是机械性阶段,由程序完成。
朴素贝叶斯的优缺点
优点
- 朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率
- 对缺失数据不太敏感,算法也比较简单,常用于文本分类
- 分类准确度高,速度快
- 对小规模的数据表现很好,适合多分类任务,适合增量式训练,当数据量超出内存时,我们可以一批批的去增量训练(朴素贝叶斯在训练过程中只需要计算各个类的概率和各个属性的类条件概率,这些概率值可以快速地根据增量数据进行更新,无需重新全量计算)。。
缺点
- 对训练数据的依赖性很强,如果训练数据误差较大,那么预测出来的效果就会不佳
- 理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率,但是在实际中,因为朴素贝叶斯“朴素,”的特点,导致在属性个数比较多或者属性之间相关性较大时,分类效果不好
而在属性相关性较小时,朴素贝叶斯性能最为良好。- 对输入数据的表达形式很敏感(离散、连续,值极大极小之类的)
对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。- 需要知道先验概率,且先验概率很多时候是基于假设或者已有的训练数据所得的,这在某些时候可能会因为假设先验概率的原因出现分类决策上的错误。
为什么“朴素”这个明显的假设缺点,它的预测仍然可以取得较好的效果**?
“朴素”是朴素贝叶斯在进行预测时候的缺点,那么有这么一个明显的假设缺点在,为什么朴素贝叶斯的预测仍然可以取得较好的效果**?
对于分类任务来说,只要各个条件概率之间的排序正确,那么就可以通过比较概率大小来进行分类,不需要知道精确的概率值(朴素贝叶斯分类的核心思想是找出后验概率最大的那个类,而不是求出其精确的概率)
如果属性之间的相互依赖对所有类别的影响相同,或者相互依赖关系可以互相抵消,那么属性条件独立性的假设在降低计算开销的同时不会对分类结果产生不良影响。
互相关性并能咩有我们想的那么强
在这篇文章【The Optimality of Naive Bayes】中,我们提出了一个新颖的解释对卓越的分类性能朴素贝叶斯。我们表明,从本质上讲,依赖性分布,即一个节点的局部依赖性如何均匀或不均匀地分布在每个类中,以及所有节点的局部依赖性如何协同工作,一致地(支持某个分类)或不一致地(相互抵消),起着至关重要的作用。因此,无论属性之间的依赖关系有多强,如果依赖关系在类中均匀分布,或者如果依赖关系相互抵消,则朴素贝叶斯仍然是最优的
朴素贝叶斯怎么处理离散值和连续值
拉普拉斯平滑法:处理零概率问题
拉普拉斯平滑法是朴素贝叶斯中处理零概率问题的一种修正方式。
在进行分类的时候,可能会出现某个属性在训练集中没有与某个类同时出现过的情况,如果直接基于朴素贝叶斯分类器的表达式进行计算的话就会出现零概率现象。
为了避免其他属性所携带的信息被训练集中未出现过的属性值“抹去”,所以才使用拉普拉斯估计器进行修正。
具体的方法是:在分子上加1,对于先验概率,在分母上加上训练集中可能的类别数;对于条件概率,则在分母上加上第i个属性可能的取值数
朴素贝叶斯中有多少种模型?
朴素贝叶斯含有3种模型,分别是
高斯模型,对连续型数据进行处理;
多项式模型,对离散型数据进行处理,计算数据的条件概率(使用拉普拉斯估计器进行平滑的一个模型);
伯努利模型,伯努利模型的取值特征是布尔型,即出现为ture,不出现为false,在进行文档分类时,就是一个单词有没有在一个文档中出现过。
朴素贝叶斯的应用
知道(肯定得知道啊,不然不就白学了吗?)
朴素贝叶斯的应用最广的应该就是在文档分类、垃圾文本过滤(如垃圾邮件、垃圾信息等)、情感分析(微博、论坛上的积极、消极等情绪判别)这些方面,除此之外还有多分类实时预测、推荐系统(贝叶斯与协同过滤组合使用)、拼写矫正(当你输入一个错误单词时,可以通过文档库中出现的概率对你的输入进行矫正)等。
问题
在用朴素贝叶斯算法的时候,是不是要对相似的特征进行去除
不是的,我们是按条件概率的思想去计算的
我想确认一下,这里说的条件概率思想,意思是相似的特征对所有类别的影响都是一致的,所以在条件概率中对最终的分类不会有影响?
朴素贝叶斯中超参数
朴素贝叶斯是没有超参数可以调的,所以它**不需要调参,**朴素贝叶斯是根据训练集进行分类,分类出来的结果基本上就是确定了的,拉普拉斯估计器不是朴素贝叶斯中的参数,不能通过拉普拉斯估计器来对朴素贝叶斯调参。
朴素贝叶斯对异常值敏不敏感
朴素贝叶斯对异常值不敏感。所以在进行数据处理时,我们可以不去除异常值,因为保留异常值可以保持朴素贝叶斯算法的整体精度,而去除异常值则可能在进行预测的过程中由于失去部分异常值导致模型的泛化能力下降。
朴素贝叶斯是高方差还是低方差模型?
朴素贝叶斯是低方差模型。(误差 = 偏差 +
方差)对于复杂模型来说,由于复杂模型充分拟合了部分数据,使得它们的偏差变小,但由于对部分数据过分拟合,这就导致预测的方差会变大。因为朴素贝叶斯假设了各个属性之间是相互的,算是一个简单的模型。对于简单的模型来说,则恰恰相反,简单模型的偏差会更大,相对的,方差就会较小。(偏差是模型输出值与真实值的误差,也就是模型的精准度,方差是预测值与模型输出期望的的误差,即模型的稳定性,也就是数据的集中性的一个指标)
朴素贝叶斯与LR的区别?
简单来说:朴素贝叶斯是生成模型,根据已有样本进行贝叶斯估计学习出先验概率P(Y)和条件概率P(X|Y),进而求出联合分布概率P(XY),最后利用贝叶斯定理求解P(Y|X),
而LR是判别模型,根据极大化对数似然函数直接求出条件概率P(Y|X);
朴素贝叶斯是基于很强的条件独立假设(在已知分类Y的条件下,各个特征变量取值是相互独立的),
而LR则对此没有要求;
朴素贝叶斯适用于数据集少的情景,而LR适用于大规模数据集
在估计条件概率P(X|Y)时出现概率为0的情况怎么办?
简单来说:引入λ,当λ=1时称为拉普拉斯平滑。
生成模式和判别模式的区别:
生成模式:由数据学得联合概率分布,求出条件概率分布P(Y|X)的预测模型;
常见的生成模型有:朴素贝叶斯、隐马尔可夫模型、高斯混合模型、文档主题生成模型(LDA)、限制玻尔兹曼机
判别模式:由数据学得决策函数或条件概率分布作为预测模型
常见的判别模型有:K近邻、SVM、决策树、感知机、线性判别分析(LDA)、线性回归、传统的神经网络、逻辑斯蒂回归、boosting、条件随机场
总结
朴素贝叶斯的假设条件是“属性条件独立性”,这一假设很简单很朴素,它给我们省去了很多复杂的计算步骤,大大减少了贝叶斯分类器的计算量。但是它也有缺点存在,对于它的修正有半朴素贝叶斯、贝叶斯网络等模型。
贝叶斯网络
贝叶斯网络(Bayesian network),又称信念网络(Belief Network),或有向无环图模型(directed acyclic graphical model),是一种概率图模型,于1985年由Judea Pearl首先提出。它是一种模拟人类推理过程中因果关系的不确定性处理模型,其网络拓朴结构是一个有向无环图(DAG)。
总而言之,连接两个节点的箭头代表此两个随机变量是具有因果关系,或非条件独立。
P(A)就是一种先验概率.堵车还没有发生,根据以往的经验来判断堵车事件A发生的概率。
P(A|B)称之为A的后验概率,判断堵车事件A的发生是由交通事故B原因引起的概率。是“由果求因”。 P(B|A),类条件概率.这是有因求果。堵车时间发生,导致交通事故的概率 最大似然估计(Maximum likelihood estimation)
最大似然估计MLE(频率派),最大后验概率估计MAP(贝叶斯派)
MLE:最大似然估计 就是求在θ的定义域中,当似然函数取得最大值时θ的大小
极大似然估计MLE(频率派),最大后验概率估计MAP(贝叶斯派)之间的关系和区别,联系
https://zhuanlan.zhihu.com/p/40024110
半朴素贝叶斯
独依赖估计:
每个其他属性最多只依赖于一个父属性,即:
转换为
如何确定父属性
TAN树则是在最大带权生成树算法的基础上,通过一下步骤获得(c)的树形结构:
(1) 计算任意两个属性之间的条件互信息
(2)以属性为节点构造完全图,两节点之间的权值为互信息
(3) 构建此完全图的最大带权生成树,挑选根变量,将边设置为有向的;
(4) 加入类别节点y,增加从y到每个属性xi的有向边;
通过条件互信息就刻画了属性之间的依赖关系,然后基于互信息计算属性之间的权值,从而实现半朴素贝叶斯网络的构建。
AODE
AODE是一种基于集成学习机制、更为强大的独依赖分类器。与SPODE确定超父属性的方法不同,AODE尝试将每个属性都作为超父属性来构建SPODE,然后将具有足够训练支撑的SPODE集成起来作为最终结果,即:
更多推荐












所有评论(0)