朴素贝叶斯法

综合讨论 2596 0 1
一个夏天的年少
一个夏天的年少 来自江苏 发表于:2024-05-04 22:22:19

前言

朴素贝叶斯法是一种基于贝叶斯定理的简单概率分类器,广泛应用于垃 圾邮件识别、文本分类等领域。其主要思想是在给定的输入特征条件下,利用每个类的条件概率来进行决策。接下来,将详细介绍朴素贝叶斯的理论基础、数学推导,以及使用PyTorCh实现,并通过一个例子来说明其应用。

理论基础与数学推导

朴素贝叶斯分类器的核心是贝叶斯定理,它描述了在已知一些条件的情况下,某事件的发生概率。贝叶斯定理公式为:

𝑃(𝐴|𝐵)=𝑃(𝐵|𝐴)𝑃(𝐴)𝑃(𝐵)

其中,𝑃(𝐴|𝐵) 是在事件B发生的条件下事件A发生的概率,𝑃(𝐵|𝐴) 是在事件A发生的条件下事件B发生的概率,𝑃(𝐴) 和 𝑃(𝐵) 分别是事件A和事件B的边缘概率。

在朴素贝叶斯中,假设所有特征都是相互独 立的(朴素假设)。这使得在给定类别 𝐶 的条件下,某个特定特征向量 𝑥=(𝑥1,𝑥2,…,𝑥𝑛) 的联合概率可以表示为:

𝑃(𝑥|𝐶)=𝑃(𝑥1|𝐶)𝑃(𝑥2|𝐶)...𝑃(𝑥𝑛|𝐶)

使用朴素贝叶斯进行分类时,我们会计算给定特征向量 𝑥 下,属于每个类 𝐶 的后验概率 𝑃(𝐶|𝑥),并选择概率最高的类。根据贝叶斯定理,我们有:

𝑃(𝐶|𝑥)=𝑃(𝑥|𝐶)𝑃(𝐶)𝑃(𝑥)

​ 由于 𝑃(𝑥) 对所有类是常数,所以分类问题简化为最大化 𝑃(𝑥|𝐶)𝑃(𝐶)。

PyTorch实现

在PyTorCh中实现朴素贝叶斯分类器,我们通常不直接实现整个模型,因为PyTorCh主要设计用于梯度下降法等连续优化问题,而朴素贝叶斯通常用于处理离散数据。不过,我们可以用以下方法来示范如何处理类似的问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import torch
import torch.nn.functional as F

class NaiveBayes:
def __init__(self, num_features, num_classes):
self.num_classes = num_classes
self.class_log_prior = torch.zeros(num_classes)
self.feature_log_prob = torch.zeros(num_classes, num_features)

def fit(self, X, y):
class_count = torch.bincount(y, minlength=self.num_classes).float()
self.class_log_prior = torch.log(class_count / class_count.sum())

for c in range(self.num_classes):
features_c = X[y == c]
count_c = features_c.sum(axis=0) + 1 # Laplace smoothing
self.feature_log_prob[c] = torch.log(count_c / count_c.sum())

def predict(self, X):
return torch.argmax(X @ self.feature_log_prob.T + self.class_log_prior, axis=1)

# Example usage
X = torch.tensor([[1, 0], [1, 1], [0, 1], [0, 0]])
y = torch.tensor([0, 0, 1, 1])
model = NaiveBayes(num_features=2, num_classes=2)
model.fit(X, y)
print(model.predict(X))
 

应用示例:文本分类

考虑一个简单的文本分类问题,我们需要分类来自两个新闻组的文本:科技与体育。假设我们有以下简化的数据集:

  • 科技: “电脑 算法”
  • 科技: “电脑 编程”
  • 体育: “足球 比赛”
  • 体育: “篮球 比赛”

我们首先将文本转换为词频向量,然后使用上述实现的朴素贝叶斯模型来进行分类。

朴素贝叶斯法以其简单和高效而广受欢迎,尽管其假设有时过于简化,但在许多实际应用中仍然表现出色。通过上述的理论推导、实现代码和具体例子,我们可以看到这种方法在处理分类问题时的直观与力量。


本帖完毕
回帖
  • 等待你,消灭零评论
科研通是完全免费的文献互助平台,具备全网最快的应助速度,最高的求助完成率。 对每一个文献求助,科研通都将尽心尽力,给求助人一个满意的交代。
实时播报
自由完成签到 ,获得积分10
1秒前
CodeCraft应助早日发SCI采纳,获得10
2秒前
3秒前
HXX关注了科研通微信公众号
3秒前
3秒前
陈补天发布了新的文献求助10
4秒前
CuSO4完成签到,获得积分10
4秒前
WN完成签到,获得积分10
5秒前
7秒前
jayyong完成签到,获得积分10
7秒前
7秒前
7秒前
科研小哥应助张龙雨采纳,获得10
8秒前
汪小楠吖发布了新的文献求助10
9秒前
科研CY完成签到 ,获得积分10
10秒前
sandra完成签到 ,获得积分10
11秒前
外星人完成签到,获得积分10
15秒前
柚又完成签到 ,获得积分10
15秒前
zzzdes完成签到,获得积分10
18秒前
充电宝应助王子采纳,获得10
19秒前
20秒前
lingzhi完成签到 ,获得积分10
20秒前
21秒前
调皮的老王头完成签到,获得积分10
21秒前
21秒前
上官若男应助专注的语堂采纳,获得10
23秒前
研友_LBKqyn完成签到,获得积分10
24秒前
认真初之发布了新的文献求助10
26秒前
PHY发布了新的文献求助10
26秒前
limit完成签到,获得积分10
26秒前
chen完成签到 ,获得积分10
28秒前
白菜发布了新的文献求助10
28秒前
29秒前
30秒前
万能图书馆应助小太阳采纳,获得10
30秒前
ccyy完成签到 ,获得积分10
32秒前
怪胎完成签到,获得积分10
37秒前
ys完成签到 ,获得积分10
39秒前
认真初之完成签到,获得积分10
39秒前
zhanglin发布了新的文献求助10
40秒前
热门帖子
关注 科研通微信公众号,转发送积分 3776299
求助须知:如何正确求助?哪些是违规求助? 3321743
关于积分的说明 10207616
捐赠科研通 3037087
什么是DOI,文献DOI怎么找? 1666533
邀请新用户注册赠送积分活动 797544
科研通“疑难数据库(出版商)”最低求助积分说明 757870
最新评论
去sd数据库下载 12小时前
1.ESCI是什么:ESCI即新兴资源引文索引(Emerging Sources Citation Index),是科睿唯安(Clarivate Analytics)在2015年推出的一个新的学术文献索引数据库,它是Web of Science核心合集中的一部分,与SCI、SSCI等共同构成了涵盖自然科学、社会科学、人文科学等多个领域的学术资源网络。其推出旨在满足学术研究不断发展的需求,尤其是对新兴学术资源的关注和评估,为新兴学术资源提供展示平台,也让科研人员能更全面获取全球学术信息,同时为有潜力但未被传统核心索引收录的学术期刊提供成长机会。 2.英文全拼:Emerging Sources Citation Index。 3.学校认可情况:目前国内多数学术机构对ESCI期刊的认可度依然较低,高校和研究机构普遍认可SCI期刊,而不承认ESCI期刊。不过,随着ESCI期刊影响力的提升和学术界的逐步认可,其在国际学术界的地位逐渐提升。例如2025年中科院分区表首次纳入ESCI期刊(年发文量≥5篇即可参与分区),说明ESCI期刊的学术价值和影响力获得了进一步的认可。但具体到学校是否认可,还需看学校的具体规定和政策,建议投稿前咨询目标学校相关部门。 4.分区原因及方式: 分区原因:ESCI分区主要是为了更细致地评估和区分不同期刊的学术水平和影响力,为科研人员、高校和科研机构等在选择期刊、评价科研成果等方面提供更丰富的参考依据。通过分区,可以让人们更清晰地了解各个期刊在所属学科中的相对位置和水平。 分区方式:以2025年中科院分区为例,按照一区为前5%,二区6% - 20%,三区21% - 50%,四区为后50%的划分方式对期刊进行分区。分区的期刊范围包括自然科学、社会科学、人文科学及开放获取期刊等多学科领域,学科大类扩展至21个。 5.ESCI相当于的水平:ESCI并非直接对应南核、北核或普刊这样的国内期刊评价体系,但可以从不同角度进行大致比较: 与SCI、SSCI、A&HCI对比:ESCI与SCI、SSCI和A&HCI等共同组成Web of Science核心合集,但收录标准比传统的SCIE、SSCI、A&HCI三大引文索引更低。SCI主要收录具有较高影响力和成熟度的学术期刊,SSCI主要收录社会科学领域的权威期刊,A&HCI主要收录艺术与人文领域的期刊。而ESCI更侧重于收录具有潜力的新兴学术期刊以及一些在特定领域或地区具有特色的研究成果。可以说ESCI是SCI的候选区,被收录三年后如果满足SCI的收录标准,就有机会被SCI收录,而表现不好的SCIE、SSCI和A&HCI期刊也会被降级为ESCI期刊。 与国内南核、北核、普刊对比:南核(CSSCI)和北核(CSCD)是国内人文社科和自然科学领域的重要期刊评价体系,入选的期刊通常代表了国内较高的学术水平。普刊则是普通期刊,学术影响力相对较低。ESCI收录的期刊涵盖所有学科,整体影响力目前低于南核和北核收录的期刊,但部分ESCI期刊在新兴领域或特定学科有较高的影响力。并且随着ESCI期刊的发展,其影响力也在逐渐提升。从收录难度来看,ESCI的收录标准低于南核和北核,但高于一些普通的普刊 13小时前
没有积分了 14小时前
淘宝上又便宜又快哈哈哈 15小时前
没有就发了 20小时前
细胞不提前做耐药筛选,不能定义为对这个细胞对顺铂已经产生耐药了,只能说是对顺铂药效的敏感性。关于皮下接种对顺铂更敏感,这个我没有太多依据说这个不对,但目前可能跟研究方式和药物作用有关 23小时前
Z的优势是不是中文资料较多? 1天前
没有积分了 1天前