天晴创艺网站建设百度小程序,互联网产品设计网站,wordpress主题背景插件,国内大型免费网站建设在所有的机器学习分类算法中#xff0c;朴素贝叶斯和其他绝大多数的分类算法都不同。对于大多数的分类算法#xff0c;比如决策树,KNN,逻辑回归#xff0c;支持向量机等#xff0c;他们都是判别方法#xff0c;也就是直接学习出特征输出Y和特征X之间的关系#xff0c;要么… 在所有的机器学习分类算法中朴素贝叶斯和其他绝大多数的分类算法都不同。对于大多数的分类算法比如决策树,KNN,逻辑回归支持向量机等他们都是判别方法也就是直接学习出特征输出Y和特征X之间的关系要么是决策函数Yf(X)Yf(X), 要么是条件分布P(Y|X)P(Y|X)。但是朴素贝叶斯却是生成方法也就是直接找出特征输出Y和特征X的联合分布P(X,Y)P(X,Y),然后用P(Y|X)P(X,Y)/P(X)P(Y|X)P(X,Y)/P(X)得出。 1. 定义 先验概率 在考虑任何新证据之前基于已有知识或经验对事件发生的概率估计。 例如在疾病检测中某疾病的发病率 P(D)就是先验概率。 后验概率 在观察到新证据后更新的事件发生概率。 例如在疾病检测中已知检测结果为阳性后患病的概率 P(D∣T)就是后验概率。 2. 数学表达 先验概率P(Y) 表示事件 Y 在没有任何额外信息下的概率。 后验概率P(Y∣X) 表示在观察到证据 X 后事件 Y 的条件概率。 首先这个名字里的“朴素”是指它做了某种简化的假设。那贝叶斯部分肯定和贝叶斯定理有关。贝叶斯定理是条件概率相关的所以这个算法是基于条件概率进行分类的。 那贝叶斯定理的公式是什么呢是P(A|B) P(B|A) * P(A) / P(B)。也就是说在B发生的条件下A发生的概率等于A发生的概率乘以在A发生的条件下B发生的概率再除以B发生的总体概率。 可是为什么叫“朴素”呢应该是因为它在计算的时候做了一些假设来简化问题。假设特征之间是相互独立的也就是特征之间没有关联。这样在计算联合概率的时候可以拆分成各个特征概率的乘积而不需要考虑复杂的条件依赖关系。虽然这在现实中可能不成立但这样的简化可以让计算变得可行尤其是当特征数量很多的时候。 朴素贝叶斯分类器具体是怎么工作的呢 比如说用天气情况预测是否去打网球。特征可能是天气、温度、湿度、风况等每个特征有不同的取值类别是去或不去。训练数据中统计每种特征在去和不去的情况下的条件概率然后当有一个新的天气情况出现时计算后验概率选择较大的那个类别作为预测结果。这时候如果假设各个天气特征之间独立那么就可以用朴素贝叶斯来分类了。 不过这里可能要注意处理零概率的问题。比如如果特征在训练数据中的某个类别里从未出现那么它的条件概率就会是零这样整个乘积也会是零这显然不合理。这时候可能需要用拉普拉斯平滑或者其他方法来调整概率估计避免零值出现。 应用场景除了文本分类还有哪些呢 比如情感分析、垃圾邮件过滤、新闻分类、推荐系统或者医疗诊断中的分类问题只要特征可以被合理地独立看待或者即使不独立但影响不大的情况下都可以尝试使用朴素贝叶斯。 具体来说训练的过程。先统计每个类别下各个特征的条件概率以及每个类别的先验概率。比如先计算垃圾邮件的比例作为先验概率P(垃圾)然后对于每个单词计算在垃圾邮件中出现的概率P(单词|垃圾)同理正常邮件的概率P(单词|正常)。当有一个新邮件来的时候里面包含了一些单词那么就计算P(垃圾)乘以所有单词在垃圾邮件中的条件概率的乘积同样的计算正常邮件的然后比较两者的大小选择较大的那个作为分类结果。 朴素贝叶斯的优缺点是什么呢
优点
简单、高效尤其是在高维数据中比如文本分类特征数量可能成千上万但朴素贝叶斯仍然可以处理。而且训练速度很快因为只需要计算各个概率不需要复杂的迭代优化过程。它对缺失数据不太敏感如果某个特征在测试数据中没有出现可以忽略或者用默认值处理。
缺点
主要是特征条件独立的假设在现实中往往不成立比如在文本中某些词之间可能存在关联这时候模型可能无法捕捉到这些关系导致准确率下降。虽然可以通过平滑处理零概率问题但如果训练数据不足或者分布不均匀可能对先验概率的依赖较大影响结果。 拉普拉斯平滑是一种在概率估计中常用的平滑技术主要用于处理概率为零的问题。它在朴素贝叶斯分类器、语言模型等场景中被广泛应用尤其是在处理文本数据时能够有效避免因某些特征在训练集中未出现而导致的概率为零的问题。 拉普拉斯平滑的核心思想是为每个概率估计加上一个非零的常数通常是1以避免零概率问题。具体来说对于一个离散随机变量 X其取值范围为 {x1,x2,…,xk}假设我们有 N 个观测值其中 ni 是 xi 出现的次数。那么拉普拉斯平滑后的概率估计为 P(Xxi)Nkni1 为什么使用拉普拉斯平滑 避免零概率问题在实际应用中尤其是文本数据处理中某些特征可能在训练集中未出现但它们在测试集中可能会出现。拉普拉斯平滑通过为每个特征加上一个非零的平滑参数确保所有特征的概率估计都不为零。 提高模型的鲁棒性通过平滑处理模型对未见过的数据有更好的适应性从而提高模型的泛化能力。 简单易实现拉普拉斯平滑的实现非常简单只需在计数时加上一个常数即可。