机器学习:朴素贝叶斯算法的原理及应用场景、优缺点简单介绍

一、朴素贝叶斯算法概述

朴素贝叶斯是一种基于贝叶斯定理的简单概率分类算法。它假设特征之间相互独立,这是其"朴素"的由来。

二、贝叶斯定理基础

贝叶斯定理是整个算法的核心,其公式如下:

P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B)=\frac{P(B|A)P(A)}{P(B)} P(A∣B)=P(B)P(B∣A)P(A)

在分类问题中,我们设 A A A为类别变量(如垃圾邮件和非垃圾邮件类别), B B B为特征向量(如邮件中的单词出现情况)。

三、算法原理细节

  1. 先验概率计算

    • 对于训练数据集中的每个类别 y i y_i yi,先验概率 P ( y i ) P(y_i) P(yi)的计算如下:

    P ( y i ) = N y i N P(y_i)=\frac{N_{y_i}}{N} P(yi)=NNyi

    其中 N y i N_{y_i} Nyi是属于类别 y i y_i yi的样本数量, N N N是总的样本数量。例如,若有100封邮件,其中60封是非垃圾邮件,那么非垃圾邮件的先验概率 P ( y = 非垃圾邮件 ) = 60 100 = 0.6 P(y =非垃圾邮件)=\frac{60}{100}=0.6 P(y=非垃圾邮件)=10060=0.6。

  2. 条件概率计算

    • 对于离散型特征 x j x_j xj,在类别 y i y_i yi下的条件概率 P ( x j ∣ y i ) P(x_j|y_i) P(xj∣yi)计算公式为:

    P ( x j ∣ y i ) = N y i , x j N y i P(x_j|y_i)=\frac{N_{y_i,x_j}}{N_{y_i}} P(xj∣yi)=NyiNyi,xj

    这里 N y i , x j N_{y_i,x_j} Nyi,xj是在类别 y i y_i yi中特征 x j x_j xj出现的次数, N y i N_{y_i} Nyi是类别 y i y_i yi中的样本数量。比如在非垃圾邮件类别中,单词"优惠"出现了10次,非垃圾邮件有60封,那么 P ( x = "优惠" ∣ y = 非垃圾邮件 ) = 10 60 = 1 6 P(x ="优惠"|y =非垃圾邮件)=\frac{10}{60}=\frac{1}{6} P(x="优惠"∣y=非垃圾邮件)=6010=61。

    • 对于连续型特征,通常假设其服从高斯分布(正态分布)。此时,条件概率计算公式为:

    P ( x j ∣ y i ) = 1 2 π σ y i , j 2 exp ⁡ ( − ( x j − μ y i , j ) 2 2 σ y i , j 2 ) P(x_j|y_i)=\frac{1}{\sqrt{2\pi\sigma_{y_i,j}^2}}\exp\left(-\frac{(x_j - \mu_{y_i,j})^2}{2\sigma_{y_i,j}^2}\right) P(xj∣yi)=2πσyi,j2 1exp(−2σyi,j2(xj−μyi,j)2)

    其中 μ y i , j \mu_{y_i,j} μyi,j是类别 y i y_i yi中特征 x j x_j xj的均值, σ y i , j 2 \sigma_{y_i,j}^2 σyi,j2是类别 y i y_i yi中特征 x j x_j xj的方差。

  3. 后验概率计算与分类决策

    • 对于一个待分类的样本 x = ( x 1 , x 2 , ⋯   , x n ) x=(x_1,x_2,\cdots,x_n) x=(x1,x2,⋯,xn),计算它属于每个类别 y i y_i yi的后验概率 P ( y i ∣ x ) P(y_i|x) P(yi∣x)。根据贝叶斯定理和朴素假设(特征相互独立),可得:

    P ( y i ∣ x ) = P ( x ∣ y i ) P ( y i ) P ( x ) P(y_i|x)=\frac{P(x|y_i)P(y_i)}{P(x)} P(yi∣x)=P(x)P(x∣yi)P(yi)

    由于 P ( x ) P(x) P(x)对于所有类别都是相同的,在比较不同类别后验概率大小时可以忽略。所以实际计算 P ( y i ∣ x ) P(y_i|x) P(yi∣x)时主要计算 P ( x ∣ y i ) P ( y i ) P(x|y_i)P(y_i) P(x∣yi)P(yi),而根据朴素假设 P ( x ∣ y i ) = ∏ j = 1 n P ( x j ∣ y i ) P(x|y_i)=\prod_{j = 1}^{n}P(x_j|y_i) P(x∣yi)=∏j=1nP(xj∣yi)。

    • 最后,通过比较样本 x x x属于各个类别 y i y_i yi的后验概率 P ( y i ∣ x ) P(y_i|x) P(yi∣x),将样本分类到后验概率最大的类别,即:

    y ^ = arg ⁡ max ⁡ y i P ( y i ∣ x ) \hat{y}=\arg\max_{y_i}P(y_i|x) y^=argyimaxP(yi∣x)

四、应用场景与优势

  1. 应用场景

    • 文本分类:比如垃圾邮件过滤。可以把邮件中的单词作为特征,利用朴素贝叶斯判断邮件是垃圾邮件还是正常邮件。
    • 情感分析:用于分析文本(如产品评论)的情感倾向,是正面还是负面。将评论中的词汇等作为特征来计算概率。
    • 疾病诊断辅助:在医疗领域,以患者的症状作为特征,帮助判断可能患有的疾病类别。
  2. 优势

    • 算法简单易懂,容易实现。其计算过程主要是基于概率公式的统计计算,代码实现较为直观。
    • 对小规模数据表现良好。在数据量不大的情况下,能够快速地训练模型并且得到不错的分类效果。
    • 对缺失数据不太敏感。即使部分特征值缺失,依然可以根据其他特征来计算后验概率进行分类。

五、局限性

  1. 朴素贝叶斯假设特征之间相互独立,这在很多实际情况中并不成立。例如在文本分类中,单词之间往往存在语义关联,像"电脑"和"软件"经常同时出现,这与独立性假设相违背。
  2. 对输入数据的准备方式(如离散化、特征选择等)比较敏感。不同的特征处理方式可能会导致分类结果有较大差异。
相关推荐
福大大架构师每日一题2 分钟前
文心一言 VS 讯飞星火 VS chatgpt (396)-- 算法导论25.2 1题
算法·文心一言
EterNity_TiMe_17 分钟前
【论文复现】(CLIP)文本也能和图像配对
python·学习·算法·性能优化·数据分析·clip
机器学习之心28 分钟前
一区北方苍鹰算法优化+创新改进Transformer!NGO-Transformer-LSTM多变量回归预测
算法·lstm·transformer·北方苍鹰算法优化·多变量回归预测·ngo-transformer
yyt_cdeyyds39 分钟前
FIFO和LRU算法实现操作系统中主存管理
算法
alphaTao1 小时前
LeetCode 每日一题 2024/11/18-2024/11/24
算法·leetcode
kitesxian1 小时前
Leetcode448. 找到所有数组中消失的数字(HOT100)+Leetcode139. 单词拆分(HOT100)
数据结构·算法·leetcode
VertexGeek2 小时前
Rust学习(八):异常处理和宏编程:
学习·算法·rust
石小石Orz2 小时前
Three.js + AI:AI 算法生成 3D 萤火虫飞舞效果~
javascript·人工智能·算法
罗小罗同学2 小时前
医工交叉入门书籍分享:Transformer模型在机器学习领域的应用|个人观点·24-11-22
深度学习·机器学习·transformer
孤独且没人爱的纸鹤2 小时前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai