IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 朴素贝叶斯分类器 -> 正文阅读

[人工智能]朴素贝叶斯分类器

1、分类概念

??分类是找出描述和区分数据类或概念的模型,以便使用模型预测类标号未知的对象类标号

??分类一般分为两个阶段:

  • 学习阶段:

    • 建立描述预先定义的数据类或概念集的分类器。
    • 训练集提供了每个训练元组的类标号,分类的学习过程也称为监督学习。
  • 分类阶段:使用定义好的分类器进行分类的过程。

??分类与预测是不同的概念,分类是预测分类(离散、无序)标号,而数值预测是建立连续值函数模型。分类与具类也是不同的概念,分类是有监督学习,提供了训练元组的类标号;聚类是无监督学习,不依赖有类标号的训练实例。

2、朴素贝叶斯分类

2.1 贝叶斯定理

??贝叶斯定理的公式为:
P ( h │ D ) = P ( D │ h ) P ( h ) P ( D ) P(?│D)=\frac{P(D│?)P(?)}{P(D)} P(hD)=P(D)P(Dh)P(h)?
??式中,D为待测试数据假设类别, P ( h ∣ D ) P(h|D) P(hD)是h的似然概率, P ( h ) P(h) P(h)是h的先验概率, P ( h ∣ D ) P(h|D) P(hD)是h的后验概率, P ( D ) P(D) P(D)是D的先验概率。

?? 先看一个示例:一所学校里面有 60% 的男生(boy),40% 的女生(girl) 。男生总是穿长裤(pants),女生则一半穿长裤一半穿裙子。随机选取一个穿长裤的学生,他(她)是女生的概率是多大?

??上述描述可形式化为

??已知P(Boy)=60%, P(Girl)=40%, P(Pants|Girl)=50%,P(Pants|Boy)=100% 求:P(Girl|Pants)

??解答
P ( G i r l │ P a n t s ) = P ( G i r l ) P ( P a n t s │ G i r l ) P ( B o y ) P ( P a n t s ∣ B o y ) + P ( G i r l ) P ( P a n t s ∣ G i r l ) = P ( G i r l ) P ( P a n t s │ G i r l ) P ( P a n t s ) P(Girl│Pants)=\frac{P(Girl)P(Pants│Girl)}{P(Boy)P(Pants|Boy)+P(Girl)P(Pants|Girl)}=\frac{P(Girl)P(Pants│Girl)}{P(Pants)} P(GirlPants)=P(Boy)P(PantsBoy)+P(Girl)P(PantsGirl)P(Girl)P(PantsGirl)?=P(Pants)P(Girl)P(PantsGirl)?

直观理解:算出学校里面有多少穿长裤的,然后在这些人里面再算出有多少女生

??对于上述问题能得到这样的观察知识: 一所学校里面有 60% 的男生(boy),40% 的女生(girl) 。男生总是穿长裤(pants),女生则一半穿长裤一半穿裙子。同样,我们不能直接观察到随机选取的一个穿长裤的学生,判断出该学生是男生还是女生。

??对于不能直接观察到的部分,往往会提出假设。而对于不确定的事物,往往会有多个假设。

image-20220608162715542

??贝叶斯提供了一种计算假设后验概率 P ( h ∣ D ) P(h|D) P(hD)的方法,即后验概率与先验概率和似然概率乘积成正比。

2.2 极大后验假设

??极大后验假设学习器在候选假设集合H中寻找给定数据D时可能性最大的假设h,h被称为极大后验假设(Maximum a posteriori: MAP)。确定MAP的方法是用贝叶斯公式计算每个候选假设的后验概率,计算式如下:

image-20220608163001960

image-20220608163006821

最后一步去掉了 P ( D ) P(D) P(D),因为它是不依赖于h的常量,或认为任何数据的先验概率相等。

2.3 多维属性的联合概率

??已知:对象D是由多个属性组成的向量,那么结合上述极大后验假设,我们的目标可以写成:

image-20220608163158745

image-20220608163206416

image-20220608163219444

??但在这里遇到一个问题:计算 P ( < a 1 , a 2 , … , a n > │ h ) P(<a_1,a_2,…,a_n>│?) P(<a1?,a2?,,an?>h)时,当维度过高时,可用数据变得很稀疏,难以获得结果。

2.4 独立性假设

??之前提到的数据稀疏的问题可以用独立性假设来解决,也就是假设D的属性 a i a_i ai?之间相互独立,那么上述公式可以写成:

P ( < a 1 , a 2 , … , a n > │ h ) = ∏ i P ( a i ∣ h ) \begin{aligned} P(<a_1,a_2,…,a_n>│?)=∏_iP(a_i|?) \end{aligned} P(<a1?,a2?,,an?>h)=i?P(ai?h)?

h M A P = max ? h ∈ H P ( h ∣ < a 1 , a 2 , … , a n > ) = max ? h ∈ H P ( < a 1 , a 2 , … , a n > │ h ) P ( h ) = max ? h ∈ H ? i P ( a i │ h ) P ( h ) \begin{aligned} ?_{MAP}&=\max_{h\in H}P (?|<a_1,a_2,…,a_n>)\\ &=\max_{h\in H} P(<a_1,a_2,…,a_n>│?)P(?) \\ &=\max_{h\in H} {\textstyle \coprod_{i}^{}P} (a_i│?)P(?) \end{aligned} hMAP??=hHmax?P(h<a1?,a2?,,an?>)=hHmax?P(<a1?,a2?,,an?>h)P(h)=hHmax??i?P(ai?h)P(h)?

??进行独立性假设之后,获得估计的 P ( a i │ h ) P(a_i│?) P(ai?h) P ( < a 1 , a 2 , … , a n > │ h ) P(<a_1,a_2,…,a_n>│?) P(<a1?,a2?,,an?>h)容易很多。如果D的属性之间不满足相互独立,朴素贝叶斯分类的结果是贝叶斯分类的近似

3、贝叶斯分类案例

??下面的训练集描述了购买电脑的情况统计。训练集的特征包括年龄、收入、爱好、信用以及购买情况。

id年龄收入爱好信用购买
1
2
3
4
5
6
7
8
9
10
11
12
13
14

??测试案例:一个收入中等、信用度良好的青年爱好游戏顾客,是否会购买电脑呢?

??根据上表的训练集,可以得到如下已购买电脑的训练集。对于如下测试集,判断一个收入中等、信用度良好的青年爱好游戏的顾客是否会购买电脑。

id年龄段收入状况爱好信用度购买电脑
3
4
5
7
9
10
11
12
13

??首先计算测试集中购买电脑的客户中不同属性的概率:
P ( 青 年 ∣ 购 买 ) = 2 / 9 = 0.222 P ( 收 入 中 等 ∣ 购 买 ) = 4 / 9 = 0.444 P ( 爱 好 ∣ 购 买 ) = 6 / 9 = 0.667 P ( 信 用 中 ∣ 购 买 ) = 6 / 9 = 0.667 P(青年 |购买) = 2/9 = 0.222\\ P(收入中等 |购买) = 4/9 = 0.444\\ P(爱好 |购买) = 6/9 = 0.667\\ P(信用中 | 购买) =6/9 = 0.667 P()=2/9=0.222P()=4/9=0.444P()=6/9=0.667P()=6/9=0.667
??然后根据如下公式,计算出购买电脑的似然概率:

image-20220608165001049
P ( X ∣ 购 买 ) = 0.222 × 0.444 × 0.667 × 0.667 = 0.044 P(X | 购买) = 0.222 ×0.444 ×0.667 ×0.667=0.044 P(X)=0.222×0.444×0.667×0.667=0.044
??同样,我们可以得到不购买电脑的训练集。

id年龄段收入状况爱好信用度购买电脑
1
2
6
8
14

??那么测试集中不同属性下不购买电脑的概率:
P ( 青 年 ∣ 不 买 ) = 3 / 5 = 0.6 P ( 收 入 中 等 ∣ 不 买 ) = 2 / 5 = 0.4 P ( 爱 好 ∣ 不 买 ) = 1 / 5 = 0.2 P ( 信 用 中 ∣ 不 买 ) = 2 / 5 = 0.4 P(青年 |不买) = 3/5 = 0.6\\ P(收入中等 |不买) = 2/5 = 0.4\\ P(爱好 |不买) = 1/5 = 0.2\\ P(信用中 |不买) = 2/5 = 0.4 P()=3/5=0.6P()=2/5=0.4P()=1/5=0.2P()=2/5=0.4
??同样,利用上面的公式计算出不购买电脑的似然概率:

image-20220608165134598
P ( X ∣ 不 买 ) = 0.6 × 0.4 × 0.2 × 0.4 = 0.019 P(X |不买) =0.6 ×0.4 ×0.2 ×0.4=0.019 P(X)=0.6×0.4×0.2×0.4=0.019
??用公式 P ( X ∣ C i ) P ( C i ) P(X|C_i)P(C_i) P(XCi?)P(Ci?),可得:
P ( C 买 ) = 9 / 14 = 0.643 P ( C 不 买 ) = 5 / 14 = 0.357 P ( 购 买 ∣ X ) = 0.044 × 0.643 = 0.028 P ( 不 买 ∣ X ) = 0.019 × 0.357 = 0.007 P(C_买)=9/14=0.643\\ P(C_{不买})=5/14=0.357\\ P(购买|X) =0.044×0.643=0.028 \\ P(不买|X) = 0.019 ×0.357=0.007 P(C?)=9/14=0.643P(C?)=5/14=0.357P(X)=0.044×0.643=0.028P(X)=0.019×0.357=0.007

4、连续数据如何求概率

??下表描述的是不同收入情况下是否购买电脑的结果。那么,能否利用表格中的数据预测收入为121,无游戏爱好、信用良好的中年人是否会购买电脑呢?

id收入购买
1125
2100
370
4120
595
660
7220
885
975
1090

??这里的收入使用连续数据表示,因此不能采用之前的离散数据概率估计方法。对于连续数据,我们假设不同类别的收入分别服从不同的正态分布,利用参数估计两组正态分布期望和方差,就可以计算出收入为121时不购买电脑的概率,如下所示:

image-20220608170004717

image-20220608170235992

5、朴素贝叶斯分类器的特点

  • 属性可以离散、也可以连续
  • 数学基础坚实、分类效率稳定
  • 对缺失和噪声数据不太敏感
  • 属性如果不相关,分类效果很好

6、贝叶斯算法实现鸢尾花分类

6.1 鸢尾花介绍

预览大图

??鸢尾属(拉丁学名:Iris L.), 单子叶植物纲, 鸢尾科多年生草本植物, 开的花大而美丽, 观赏价值很高。 鸢尾属约300种, Iris数据集中包含了其中的三种: 山鸢尾(Setosa), 杂色鸢尾(Versicolour), 维吉尼亚鸢尾(Virginica), 每种50个数据, 共含150个数据。 在每个数据包含四个属性: 花萼长度,花萼宽度,花瓣长度,花瓣宽度, 可通过这四个属性预测鸢尾花卉属于 (山鸢尾, 杂色鸢尾, 维吉尼亚鸢尾) 哪一类。

??数据集中部分数据如下图所示:

预览大图

6.2 分类代码

import sklearn
# 导入高斯朴素贝叶斯分类器
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split
import numpy as np
import pandas as pd


data_url = "Iris.csv"
df = pd.read_csv(data_url)
X = df.iloc[:,1:5]
y=df.iloc[:,5]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 使用高斯朴素贝叶斯进行计算
######## Begin ########
clf=GaussianNB()
######## End ########
clf.fit(X_train, y_train)
# 评估
y_pred = clf.predict(X_test)
acc = np.sum(y_test == y_pred) / X_test.shape[0]
print("Test Acc:%.3f" % acc)

image-20220608170522493

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-06-16 21:42:28  更:2022-06-16 21:44:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:31:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码