程序员的数学【概率论】(一)

简介: 本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 概率论

前言

本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 概率论,本文涵盖了一些计算的问题并使用代码进行了实现,安装代码运行环境见博客:最详细的Anaconda Installers 的安装【numpy,jupyter】(图+文),如果你只是想要简单的了解有关线代的内容,那么只需要学习一下博文:NumPy从入门到高级,如果你是跟着博主学习AIoT的小伙伴,建议先看博文:数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解),如果你没有Python基础,那么还需先修博文:Python的进阶之道【AIoT阶段一(上)】(十五万字博文 保姆级讲解)


一、概率论与机器学习

🚩机器学习其实是集合了统计学、概率论、计算机科学、数学算法等方面的交叉研究,即便你对机器学习的应用炉火纯青,但对这些技术没有一个全面的数学理解极有可能出现应用失误。因此与其说为什么概率论与数理统计在机器学习中为什么这么重要,不如说为什么数学在机器学习中为什么这么重要!


概率论研究的是事物的不确定性,它是统计学、信息论的前置课程。概率论的难度系数属中等,毕竟你在高中就学习过如何计算一个随机变量的期望、方差。从机器学习的视角来看,概率论是必须要了解的,但不需要达到精通的程度。你只需要灵活运用它,把机器学习世界的不确定性变量算清楚就足够了。因此,当你掌握了概率论,你就揭开机器学习世界神秘的一层面纱。


对于有监督机器学习,其属性特征数据对应X它的目标值标签对应 y如果我们把它当作是随机变量的话,那我们就可以用概率论的观点对它进行建模。假设它服从某种概率分布,比如说人的身高大体是服从正太分布的,像姚明一样非常高的非常少,像郭敬明一样矮也是非常少的,比如中国的男性平均身高1.75左右,画出来就是我们学概率论和数理统计时候的一个正太分布:

image.png

我们要是对数据进行分类的话,根据他的身高、体重等等,那我们就可以对他的身高进行建模来计算它服从某种分布,然后计算他的概率,这就是我们要学习概率论的原因。


二、随机事件

🚩什么是随机事件呢? 就是可能发生,也可能不发生的事件。比如你抛硬币,它正面朝上或者反面朝上,这就是一个随机事件;生孩子,生男生女这也是一个随机事件。


如果一定发生的话,这种称为必然事件,比如说太阳明天会升起,这肯定是必然事件;不可能发生的事件,我们称之为不可能事件,比如水往高处流,这就是不可能事件。


我们一般把随机事件用大写字母 A 或 B 这样来表示,每一个随机事件它关联有一个发生的概率,记作 P ( A ) ,像抛硬币它正面朝上的概率是 0.5 ,反面朝上的概率也是 0.5 ,0 ≤ P ( A ) ≤ 1 。 如果概率等于 1 那就是必然事件,如果等于 0 那就是不可能事件。以前学概率论时,老师交了我们各种计算概率的方法,比如抽各种颜色的球等等这样的问题,一般都是用排列组合来算的。


三、条件概率

3.1 条件概率公式

image.png

image.png

Ω 表示样本空间,即表示全部事件。

3.2 贝叶斯公式

🚩根据条件概率公式,可以推导出贝叶斯公式:

image.png

贝叶斯公式得到的结果是后验概率,后验概率是指依据得到’'结果"信息所计算出的最有可能是那种事件发生,如贝叶斯公式中的, 是"执果寻因"问题中的"因"。

举例说明:餐桌上有一块肉和一瓶醋,你如果吃了一块肉,很酸,那你觉得肉里加了醋的概率有多大?你说:80%可能性加了醋。OK,你已经进行了一次后验概率的猜测,没错,就这么简单!这就是"执果寻因"。


贝叶斯公式在整个机器学习和深度学习中是非常有用的,因为很多时候我们要用一种叫做最大化后验概率Maximum a posterioriestimation,简称 MAP)的思想。


四、随机事件独立性

🚩说白了就是两个事情是不相关的, B 在 A  发生的条件下发生的概率是等于 B  本身发生的概率:

image.png

我们可以把它推广到 n个事件相互独立的情况上面去,就是等于各自发生概率的乘积:

image.png

五、随机变量

🚩整个概率论的核心。变量是什么呢?

我们中学的时候就学习过变量了,它是取值可以变化的量,比如可以取 0 到 1  区间上所有的实数,或者取从 1  到 100 之间的整数。

5.1 离散随机变量

🚩随机变量是什么呢?

就是变量取值都有一个概率。第一种情况是离散型的随机变量,比如前面说的抛硬币正面朝上还是反面朝上,这是两个事件,我们可以把这两个事件编号,得到:

image.png

5.2 连续随机变量

🚩连续型的随机变量,理解起来抽象一些,它的取值是无限不可列个,比如 0 到 1 之间的所有的实数,首先它肯定是无限个,而它比无限可列个更高级,它不可列,比如其中的 0.001  到 0.002 之间还是有无限个,不管怎么细分,a 和 b之间还是有无限个,这就是连续型的随机变量,比如说抛石子在 0  到 1 的矩形范围内,它可能落在区域内任何一个位置,那么石子落在的位置 x , y  就是连续型随机变量,说白了就是它坐标取 0 到 1 之间任何一个值都是有可能的。对于离散型随机变量,写成如下:

image.png

对于连续型随机变量我们是这么定义的,利用它的概率密度函数来定义

image.png

通过概率密度函数可以计算事件发生的概率P(y),注意对于连续随机变量,往往计算区间的概率:

image.png

18.png

需要注意的是,连续性随机变量它取某个具体值的概率是0的,p(x=xi)=0但是它落在某个区间范围的概率是有值的,因为算的是面积,就好像前面提到的石子落到区域内的面积

5.3 概率密度函数概率计算

import numpy as np
import matplotlib.pyplot as plt
from scipy import integrate # 积分
# 正态分布概率密度函数f(x)
def f(x, sigma, u): # sigma标准差,u均值、期望
    return 1 / (np.sqrt(2 * np.pi) * sigma) * np.exp(-(x - u) ** 2 / (2 * sigma ** 2))
x = np.linspace(-10, 10, 300)
y = f(x, 1, 0) # 标准正态分布
plt.plot(x, y)
print('横轴区间(μ-σ,μ+σ)内的面积(概率)为:',np.round(integrate.quad(f, -1, 1, args = (1, 0))[0], 4))
print('横轴区间(μ-2σ,μ+2σ)内的面积(概率)为:',np.round(integrate.quad(f, -2, 2, args = (1,0))[0], 4))
print('横轴区间(μ-3σ,μ+3σ)内的面积(概率)为:',np.round(integrate.quad(f ,-3, 3, args = (1,0))[0], 4))

19.png










目录
相关文章
|
存储 关系型数据库 MySQL
MYSQL 单表可以放多少数据是怎么计算出来的
MYSQL 单表可以放多少数据是怎么计算出来的
557 2
|
数据采集 机器学习/深度学习 人工智能
Python的主要应用领域
Python的主要应用领域
1424 0
Python的主要应用领域
|
缓存 负载均衡 监控
【微服务】一文读懂网关概念+Nginx正反向代理+负载均衡+Spring Cloud Gateway(多栗子)
不知道什么是网关?正向代理?反向代理?负载均衡?负载均衡策略?Nginx和Gateway的区别?假如这些你都不知道,没关系,本文举了大量通俗易懂的例子来阐述了这些概念,保证小白也能看懂,并且最后还提到了gateway的一些配置。
9727 2
【微服务】一文读懂网关概念+Nginx正反向代理+负载均衡+Spring Cloud Gateway(多栗子)
|
10月前
|
应用服务中间件 定位技术 网络安全
住宅IP和运营商IP有什么区别?
随着数字化发展,网络安全与隐私保护日益重要,代理IP成为热门选择。住宅IP由ISP分配给家庭用户,通常是动态的,适合日常上网,费用较低,且具有较高隐私保护。运营商IP则分配给企业或数据中心,多为静态,适用于高稳定性和带宽需求的业务,安全性更高但成本也更高。两者在用途、特性和成本上存在显著差异,用户可根据需求选择。
262 1
|
6月前
|
人工智能 IDE 定位技术
通义灵码 AI IDE 正式上线,智能体自动写代码,首创自动记忆,工程感知全面升级
阿里云发布的通义灵码AI IDE深度适配千问3大模型,集成智能编码助手功能,支持编程智能体、工具调用、工程感知等能力。其核心亮点包括:支持最强开源模型千问3,全面集成通义灵码插件能力,自带编程智能体模式,支持长期记忆与行间建议预测(NES)。通义灵码已覆盖主流IDE,助力开发者实现高效智能编程,插件下载量超1500万,生成代码超30亿行,成为国内最受欢迎的辅助编程工具。立即体验更智能的开发流程!
1935 1
|
4月前
|
固态存储 Windows
固态硬盘如何正确分区?SSD实用分区方案
固态硬盘(SSD)已成为提升电脑速度的关键。本文详解SSD正确分区方法,避免性能下降与寿命缩短,教你如何合理分区分区、设置4K对齐,并提供Windows磁盘管理与DiskGenius两种实用分区方案,助你高效使用SSD。
计算机组成原理(9)----硬布线控制器
计算机组成原理(9)----硬布线控制器
571 1
|
存储 NoSQL 算法
Redis地理散列GeoHash
GeoHash作为一种高效的地理位置编码算法,在Redis中得到了很好的支持。通过使用Redis的GeoHash命令,可以方便地进行地理位置的存储、查询和计算。GeoHash在位置存储、附近位置搜索、距离计算和实时定位等场景中有着广泛的应用。掌握GeoHash及其在Redis中的使用方法,可以极大地提高地理位置相关应用的开发效率和性能。
229 5
|
Java 关系型数据库 MySQL
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第4天】本文分析了Spring Boot应用在连接数据库时可能遇到的问题及其解决方案。主要从四个方面探讨:配置文件格式错误、依赖缺失或版本不兼容、数据库服务问题、配置属性未正确注入。针对这些问题,提供了详细的检查方法和调试技巧,如检查YAML格式、验证依赖版本、确认数据库服务状态及用户权限,并通过日志和断点调试定位问题。
1331 6
|
存储 NoSQL 算法
分布式唯一 ID 的 7 种生成方案
在互联网的业务系统中,涉及到各种各样的ID,如在支付系统中就会有支付ID、退款ID等。那一般生成ID都有哪些解决方案呢?特别是在复杂的分布式系统业务场景中,我们应该采用哪种适合自己的解决方案是十分重要的。下面我们一一来列举一下,不一定全部适合,这些解决方案仅供你参考,或许对你有用。
分布式唯一 ID 的 7 种生成方案