第八章.贝叶斯分析—贝叶斯定理朴素贝叶斯
创始人
2024-05-29 22:20:12
0

第八章.贝叶斯分析

8.1 贝叶斯定理&朴素贝叶斯

贝叶斯主要应用与新闻分类,文本分类,评论分析。

1.数理统计学处理的信息

1).贝叶斯方法

  • 关于统计推断的系统理论和方法,称为贝叶斯方法。

2).经典统计学

  • 总体信息:当前总体样本符合某种分布,比如0-1分布,二项分布,正态分布。

  • 样本信息:通过抽样得到的部分样本的某种分布

  • 抽样信息=总体信息+样本信息

  • 基于抽样信息进行统计推断的理论和方法称为经典统计学

3).贝叶斯统计学

  • 先验信息:抽样之前,有关推断问题中未知参数的一些信息,通常来自与经验或历史资料。

  • 基于总体信息+样本信息+先验信息进行统计推断的方法和理论,称为贝叶斯统计学。

2.贝叶斯定理

1).贝叶斯定理交换概率中的条件和结果的公式:

  • 如果已知P(X|H),求P(H|X):
    在这里插入图片描述

  • 参数解析:
    ①.P(H|X)给定观测数据样本X,假设H是成立的概率. [比如X是一份具有特定特征的邮件,H是垃圾邮件,它里面包含很多的单词(特征),然后我们判断这封邮件属于垃圾邮件的概率是多少]

    ②.P(H|X)是后验概率 [比如一份特定邮件中,是垃圾邮件的概率]

    ③.P(H)是H的先验概率 [比如总体邮件中垃圾邮件的概率]

    ④.P(X)是X的先验概率 [比如总体邮件中带有特定特征的邮件概率]

  • 大数定理:
    可以通过抽样来计算先验概率。抽样的数量越大,得到的结果越接近于真实的概率分布。

2).示例1:以邮件是否为垃圾邮件为例

在这里插入图片描述

  • 描述
    ①.P(H):垃圾邮件的先验概率

    ②.P(X):特定特征的先验概率

    ③.P(X|H):在垃圾邮件中,包含特定特征(比如“办证”)邮件的概率

    ④.P(H|X):包含特定特征(比如“办证”)的邮件属于垃圾邮件的概率

  • 有一个特定特征的情况:
    ①.邮件:总体100,正常70,垃圾30,“办证”’在正常邮件中出现10次,在垃圾邮件中出现25次。

    ②.假设X为“办证”,H为垃圾邮件。
    · P(X|H)=25/30=5/6
    · P(H)=30/100=3/10
    · P(X)=35/100=7/20
    · P(H|X)=5/7

    ③.包含“办证”这个词的邮件属于垃圾邮件的概率为5/7。

  • 有多个特定特征的情况:
    在这里插入图片描述
    ①.在有多个特征的情况下会使得统计量巨大。

    ②.比如需要计算办证对于垃圾邮件的影响

    ③.计算办证+理财对于垃圾邮件的影响 计算办证+理财+投资对于垃圾邮件的影响

    ④.计算办证+理财+投资+资讯对于垃圾邮件的影响

    ⑤.……

    ⑥.所有特征需要计算2n-1次,n是特征数

3.朴素贝叶斯 (Naive Bayes)

有多个特定特征的情况下,若继续使用上述公式,计算将会变得很复杂,故可以使用朴素贝叶斯。

1).公式

  • 假设:特征X1,X2,X3……之间都是相互独立的
    在这里插入图片描述

2).常见的朴素贝叶斯模型

①.多项式模型(MultinomialNB)

  • 以垃圾邮件分类为例:

    1).特定特征:“代开发票”,“增值税发票”,“正规发票”

    2).分词后为向量:(“代开”,“发票”,“增值税”,“发票”,“正规”,“发票”)

    3).重复的词语我们视为其多次出现:

    4).计算:
    在这里插入图片描述

②.伯努利模型(BernoulliNB)

  • 以垃圾邮件分类为例

    1).特定特征:“代开发票”,“增值税发票”,“正规发票”

    2).分词后为向量:(“代开”,“发票”,“增值税”,“发票”,“正规”,“发票”)

    3).重复的词语我们视为其出现一次:

    4).计算:
    在这里插入图片描述

③.混合模型

  • 在计算句子概率时,不考虑重复词语出现的次数,但是在统计计算词语的概率P(“词语”|S)时,却考虑重复词语的出现次数,这种模型叫做混合模型。
    在这里插入图片描述

④.高斯模型 (GaussianNB)

  • 有些特征可能是连续型变量,比如说人的身高,物体的长度,这些特征可以转换成离散型的值.
  • 比如身高在160cm以下,特征值为1;在160cm和170cm之间,特征 值为2;在170cm之上,特征值为3。
  • 也可以这样转换, 将身高转换为3个特征,分别是f1、f2、f3,如果身高是 160cm以下,这三个特征的值分别是1、0、0,若身高在 170cm之上,这三个特征的值分别是0、0、1。不过这些 方式都不够细腻,高斯模型可以解决这个问题。

⑤.词袋模型 (Bag of Words)

1).概念:

Bag-of-words model (BoW model)最早出现在自然语言处理(Natural Language Processing)和信息检索 (Information Retrieval)领域。该模型忽略掉文本的语 法和语序等要素,将其仅仅看作是若干个词汇的集合,文档中每个单词的出现都是独立的。BoW使用一组无序的 单词(words)来表达一段文字或一个文档。
在这里插入图片描述

2).示例:

①.首先给出两个简单的文本文档.
在这里插入图片描述
②.基于上述两个文档中出现的单词,构建一个词典:
在这里插入图片描述
③.上面的词典中包含10个单词, 每个单词有唯一的索引,那么每个文本我们可以使用一个10维的向量来表示。如下:
·[1, 2, 1, 1, 1, 0, 0, 0, 1, 1]
·[1, 1,1, 1, 0, 1, 1, 1, 0, 0 ]

④.注意:该向量与原来文本中单词出现的顺序没有关系,而是词典中每个单词在 文本中出现的频率。

4.示例1—贝叶斯(iris)

1).代码实现

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report, confusion_matrix
from sklearn.naive_bayes import MultinomialNB, BernoulliNB, GaussianNB# 加载数据
iris = load_iris()
x_data = iris.data
y_data = iris.target# 数据切分
x_train, x_test, y_train, y_test = train_test_split(x_data, y_data)# 创建模型
mul_nb = GaussianNB()  # 高斯模型
mul_nb.fit(x_train, y_train)# 预测函数
prediction = mul_nb.predict(x_test)print(classification_report(y_test, prediction))
print(confusion_matrix(y_test, prediction))

2).结果展示

在这里插入图片描述

5.示例2—词袋模型构建单词的字典

1).代码实现

from sklearn.feature_extraction.text import CountVectorizertexts = ['dog cat fish', 'dog cat cat', 'fish bird', 'bird']
cv = CountVectorizer()
cv_fit = cv.fit_transform(texts)print(cv.get_feature_names_out())
print(cv_fit.toarray())
print(cv_fit.toarray().sum(axis=0))

2).结果展示

在这里插入图片描述

6.TF_IDF算法 —自然语言处理中比较重要的算法

提取词频(Term Frequency,缩写TF),

1).TF_IDF算法的思想:

  • 假设我们把停用词都过滤掉了,只考虑有意义的词。可能会遇到 这样一个问题,“中国”,“蜜蜂”,“养殖”这三个词的TF一样。 作为关键词,它们的重要性是一样的吗?

  • 用统计学语言表达,就是在词频的基础上,要对每个词分配 一个"重要性"权重。最常见的词(“的”、“是”、“在”)给予 最小的权重,较常见的词(“中国”)给予较小的权重,较少 见的词(“蜜蜂”、“养殖”)给予较大的权重。这个权重叫做 “逆文档频率”(Inverse Document Frequency,缩写为 IDF),它的大小与一个词的常见程度成反比。

2).常见计算词频(TF)的方法:

在这里插入图片描述

3).计算逆文档(IDF)频率的方法:

在这里插入图片描述

4).TF_IDF的计算公式:

在这里插入图片描述

5).公式示例分析

· 题干:
以《中国的蜜蜂养殖》为例,假定该文长度为1000个词, “中国”、“蜜蜂”、“养殖"各出现20次,则这三个词的"词频” (TF)都为0.02。然后,搜索Google发现,包含"的"字的网页 共有250亿张,假定这就是中文网页总数。包含"中国"的网页共 有62.3亿张,包含"蜜蜂"的网页为0.484亿张,包含"养殖"的网 页为0.973亿张。则它们的逆文档频率(IDF)和TF-IDF如下:

· 结果:

关键词包含该次的文档数(亿)TFIDFTF_IDF
中国62.30.020.6030.0121
蜜蜂0.4840.022.7130.0543
养殖0.9730.022.4100.0482

6).示例

· 代码实现:

from sklearn.feature_extraction.text import TfidfVectorizertext = ['The quick brown fox jumped over the lazy dog.', 'The dog.', 'The fox']# 创建变换函数
Tfdif = TfidfVectorizer()
# 词条化以及创建词汇表
Tfdif.fit(text)# 总结
print(Tfdif.vocabulary_)#词的字典
print(Tfdif.idf_)# 编码文档
vector = Tfdif.transform([text[0]])
# 总结编码文档
print(vector.toarray())

· 结果展示:
在这里插入图片描述

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...