| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 机器学习笔记 3 —— 朴素贝叶斯 -> 正文阅读 |
|
[人工智能]机器学习笔记 3 —— 朴素贝叶斯 |
1. naive Bayes概率估计 朴素贝叶斯法是典型的生成学习方法,生成方法由训练数据学习联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),然后求得后验概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)。具体来说,利用训练数据学习条件概率 P ( X ∣ Y ) P(X|Y) P(X∣Y) 和 先验概率 P ( Y ) P(Y) P(Y),得到联合概率分布: P ( X , Y ) = P ( Y ) P ( X ∣ Y ) P(X,Y)=P(Y)P(X|Y) P(X,Y)=P(Y)P(X∣Y) 概率估计方法可以是极大似然估计或贝叶斯估计,贝叶斯估计 是在 极大似然估计 上加上一个参数 λ \lambda λ,如 λ = 1 \lambda = 1 λ=1: P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) + λ N + K λ \displaystyle P(Y=c_k) = \frac{\displaystyle \sum_{i=1}^N I(y_i=c_k) + \lambda}{N+K \lambda} P(Y=ck?)=N+Kλi=1∑N?I(yi?=ck?)+λ? P ( X ( j ) = a j l ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = a j l , y i = c k ) + λ ∑ i = 1 N I ( y i = c k ) + S j λ \displaystyle P(X^{(j)}=a_{jl}|Y=c_k) = \frac{\displaystyle \sum_{i=1}^N I(x_i^{(j)}=a_{jl},y_i=c_k)+ \lambda}{\displaystyle \sum_{i=1}^N I(y_i=c_k)+S_j \lambda} P(X(j)=ajl?∣Y=ck?)=i=1∑N?I(yi?=ck?)+Sj?λi=1∑N?I(xi(j)?=ajl?,yi?=ck?)+λ? 其中, S j S_j Sj? 为输入的第 j 个特征的所有取值可能性, K K K 为类的总数,这样可以避免概率为零的情况。 基本假设 朴素贝叶斯法的基本假设是 条件独立性: P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , ? ? , X ( n ) = x ( n ) ∣ Y = c k ) = ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) \begin{aligned} P(X&=x | Y=c_{k} )=P\left(X^{(1)}=x^{(1)}, \cdots, X^{(n)}=x^{(n)} | Y=c_{k}\right) \\ &=\prod_{j=1}^{n} P\left(X^{(j)}=x^{(j)} | Y=c_{k}\right) \end{aligned} P(X?=x∣Y=ck?)=P(X(1)=x(1),?,X(n)=x(n)∣Y=ck?)=j=1∏n?P(X(j)=x(j)∣Y=ck?)? 这是一个较强的假设,这也是称为朴素的原因。由于这一假设,模型包含的条件概率的数量大为减少,因而朴素贝叶斯法高效,且易于实现,缺点是分类的性能不一定很高。 策略 —— 后验概率最大化 朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测。 P ( Y ∣ X ) = P ( X , Y ) P ( X ) = P ( Y ) P ( X ∣ Y ) ∑ Y P ( Y ) P ( X ∣ Y ) P(Y | X)=\frac{P(X, Y)}{P(X)}=\frac{P(Y) P(X | Y)}{\sum_{Y} P(Y) P(X | Y)} P(Y∣X)=P(X)P(X,Y)?=∑Y?P(Y)P(X∣Y)P(Y)P(X∣Y)? 将输入 x x x 分到后验概率最大的类 y y y : y = arg ? max ? c k P ( Y = c k ) ∏ j = 1 n P ( X j = x ( j ) ∣ Y = c k ) y=\arg \max _{c_{k}} P\left(Y=c_{k}\right) \prod_{j=1}^{n} P\left(X_{j}=x^{(j)} | Y=c_{k}\right) y=argck?max?P(Y=ck?)j=1∏n?P(Xj?=x(j)∣Y=ck?) 后验概率最大等价于0-1损失函数时的期望风险最小化。 模型 模型:高斯模型、多项式模型、伯努利模型 当特征值的取值情况有限时,可以计算特征值的所有可能取值的概率;但当特征的取值是 连续 的情况下,需要计算分类到不同类时,每一个特征取值的概率密度函数,常把特征的取值假设为 高斯概率密度函数 PDF 2. GaussianNB 高斯朴素贝叶斯GaussianNB 高斯朴素贝叶斯假特征的取值的可能性为高斯概率密度函数: P ( x i ∣ y ) = 1 2 π σ y 2 exp ? ( ? ( x i ? μ y ) 2 2 σ y 2 ) P(x_i \mid y) = \frac{1}{\sqrt{2\pi\sigma^2_y}} \exp\left(-\frac{(x_i - \mu_y)^2}{2\sigma^2_y}\right) P(xi?∣y)=2πσy2??1?exp(?2σy2?(xi??μy?)2?) 其中, x i x_i xi?为独立特征向量 x 1 , x 2 , . . . , x n x_1, x_2, ..., x_n x1?,x2?,...,xn? 中的第 i i i 个特征, σ y \sigma_{y} σy? 代表 x x x 被分类到 y y y 类时, x i x_i xi? 的方差, μ y \mu_y μy? 代表 x i x_i xi? 的均值,两个参数均为最大似然估计计算得到的。 2.1 数据集预处理使用 iris 鸢尾花数据集,20% 的数据用于测试:
2.2 构建 NaiveBayes 模型使用 naive bayes 分类的步骤如下:
Python 程序如下:
其中, 程序中有
2.3 训练与预测
得到的结果为 1.0,准确率 100% 🍻 3. scikit - learn 实例scikit-learn 中定义了 Gaussian Naive bayes:
其中 sklearn.datasets.load_iris 的参数 完结 🍻 REFERENCE
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/2 22:55:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |