《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第4章 朴素贝叶斯法

本文主要是介绍《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第4章 朴素贝叶斯法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 第4章 朴素贝叶斯法
    • 4.1 朴素贝叶斯法的学习与分类
      • 4.1.1 基本方法
      • 4.1.2 后验概率最大化的含义
    • 4.2 朴素贝叶斯法的参数估计
      • 4.2.1 极大似然估计
      • 4.2.2 学习与 算法
      • 4.2.3 贝叶斯估计
    • 代码实践
      • GaussianNB 高斯朴素贝叶斯
      • scikit-learn实例
      • scikit-learn:伯努利模型和多项式模型

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第3章 k邻近邻法
《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第1章 统计学习方法概论
《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第 2章感知机
《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第3章 k邻近邻法

我算是有点基础的(有过深度学习和机器学的项目经验),但也是半路出家,无论是学Python还是深度学习,都是从问题出发,边查边做,没有系统的学过相关的知识,这样的好处是入门快(如果想快速入门,大家也可以试试,直接上手项目,从小项目开始),但也存在一个严重的问题就是,很多东西一知半解,容易走进死胡同出不来(感觉有点像陷入局部最优解,找不到出路),所以打算系统的学习几本口碑比较不错的书籍。
  书籍选择: 当然,机器学习相关的书籍有很多,很多英文版的神书,据说读英文版的书会更好,奈何英文不太好,比较难啃。国内也有很多书,周志华老师的“西瓜书”我也有了解过,看了前几章,个人感觉他肯能对初学者更友好一点,讲述的非常清楚,有很多描述性的内容。对比下来,更喜欢《统计学习方法》,毕竟能坚持看完才最重要。
  笔记内容: 笔记内容尽量省去了公式推导的部分,一方面latex编辑太费时间了,另一方面,我觉得公式一定要自己推到一边才有用(最好是手写)。尽量保留所有标题,但内容会有删减,通过标黑和列表的形式突出重点内容,要特意说一下,标灰的部分大家最好读一下(这部分是我觉得比较繁琐,但又不想删掉的部分)。
  代码实现: 最后是本章内容的实践,如果想要对应的.ipynb文件,可以留言

第4章 朴素贝叶斯法

  朴素贝叶斯(naïve Bayes)法是基于贝叶斯定理特征条件独立假设的分类方法[1]。

  对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。

4.1 朴素贝叶斯法的学习与分类

4.1.1 基本方法

  • 输入空间: x ⊆ R n x⊆R^n xRnn维向量的集合
  • 输出空间:类标记集合 Y = ( c 1 , c 2 , … , c K ) Y=({c_1,c_2,…,c_K}) Y(c1c2,,cK)
  • 输入为特征向量 x ∈ X x\in X xX
  • 输出为类标记(class label) y ∈ Y y \in Y yY

  X是定义在输入空间 X X X上的随机向量,Y是定义在输出空间 Y Y Y上的随机变量。 P ( X , Y ) P(X,Y) P(X,Y)是X和Y的联合概率分布。训练数据集

T = ( ( x 1 , y 1 ) , ( x 2 , y 2 ) . . . . , ( x N , y N ) ) T=((x_1,y_1),(x_2,y_2)....,(x_N,y_N)) T=((x1,y1),(x2,y2)....,(xN,yN))

  由 P ( X , Y ) P(X,Y) P(X,Y)独立同分布产生。

  朴素贝叶斯法通过训练数据集学习联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)

先验概率分布和条件概率分布

  具体地,学习以下先验概率分布条件概率分布

  • 先验概率分布: P ( Y = c k ) , k = 1 , 2 … K P(Y=c_k),k=1,2…K P(Y=ck)k=1,2K
  • 条件概率分布: P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , . . . . X ( n ) = x ( n ) ∣ Y = c k ) , k = 1 , 2 , . . . K P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},....X^{(n)}=x^{(n)}|Y=c_k),k=1,2,...K P(X=xY=ck)=P(X(1)=x(1),....X(n)=x(n)Y=ck),k=1,2,...K

  条件概率分布 P ( X = x ∣ Y = c k ) P(X=x|Y=c_k) P(XxYck)指数级数量的参数,其估计实际是不可行的。

  朴素贝叶斯法对条件概率分布作了条件独立性的假设。由于这是一个较强的假设,朴素贝叶斯法也由此得名。

朴素贝叶斯法的基本假设:条件独立性假设

P ( X = x ∣ Y = c k ) = P ( X ( 1 )

这篇关于《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第4章 朴素贝叶斯法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/648147

相关文章

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu