机器学习的概率统计模型(附代码)(一)

article/2025/11/5 9:05:08

目录

概率论

1.1 离散随机变量分布

1)伯努利分布

 2)二项分布

 3)泊松分布

1.2 连续随机变量分布

1)均匀分布

 2)指数分布

 3)正态分布

总结

 系列文章目录


概率论

概率论,是研究随机现象数量规律的数学分支。随机现象是相对于决定性现象而言的,在一定条件下必然发生某一结果的现象称为决定性现象。

事件的概率是衡量该事件发生的可能性的量度。虽然在一次随机试验中某个事件的发生是带有偶然性的,但那些可在相同条件下大量重复的随机试验却往往呈现出明显的数量规律。

 由于本文章会多次运用到matplotlib库的知识,如有需要请移步前往matplotlib库巩固知识点。 

1.1 离散随机变量分布

1)伯努利分布

        伯努利分布又称为两点分布或0-1分布,指的是对于随机变量X有, 参数为p(0<p<1),如果它分别以概率p和1-p取1和0为值。EX= p,DX=p(1-p)。伯努利试验成功的次数服从伯努利分布,参数p是试验成功的概率。

伯努利分布的概率用python代码绘制如下:

import numpy as np
from scipy import stats
import matplotlib.pyplot as pltdef bernoulli_pmf(p=0.0):ber_dist =stats.bernoulli(p)x = [0, 1]x_name = ['0', '1']pmf = [ber_dist.pmf(x[0]),ber_dist.pmf(x[1])]plt.bar(x, pmf, width = 0.15)plt.xticks(x,x_name)plt.ylabel('Probability')plt.title('Pmf of bernoulli distribution')plt.show()bernoulli_pmf(p=0.3)

运行结果如下:

 2)二项分布

        如果把一个伯努利分布独立的重复n次,就得到了一个二次分布。二项分布是最重要的离散型概率分布之一。随机变量X要满足这个分布有两个重要条件:

  • 各次试验的条件是稳定的;
  • 各次试验之间是相互独立的;

下面利用python代码模拟抛一枚不均匀的硬币20次,设正面朝上的概率为0.6:

import numpy as np
from scipy import stats
import matplotlib.pyplot as pltdef binom_dis(n=1,p=0.1):binom_dis = stats.binom(n,p)x = np.arange(binom_dis.ppf(0.0001), binom_dis.ppf(0.9999))print(x)fig, ax = plt.subplots(1, 1)ax.vlines(x, binom_dis.pmf(x), 'bo', label='binom pmf')ax.legend(loc='best', frameon = False)plt.ylabel('Probability')plt.title('PMF of binomial distribution(n={},p={})'.format(n,p))plt.show()binom_dis(n=20,p=0.6)

运行结果如下:

 3)泊松分布

        泊松分布的参数λ是单位时间(或单位面积)内随机事件的平均发生次数。 泊松分布适合于描述单位时间内随机事件发生的次数。当二项分布的n很大而p很小时,泊松分布可作为二项分布的近似,其中λ为np。通常当n≧20,p≦0.05时,就可以用泊松公式近似得计算。事实上,泊松分布正是由二项分布推导而来的。

下面是参数μ=8时的泊松分布python实现,在Scipy中将泊松分布的参数表示为μ:

import numpy as np
from scipy import stats
import matplotlib.pyplot as pltdef poisson_pmf(mu=3):poisson_dis= stats.poisson(mu)x = np.arange(poisson_dis.ppf(0.001), poisson_dis.ppf(0.999))print(x)fig, ax = plt.subplots(1, 1)ax.plot(x, poisson_dis.pmf(x), 'bo', ms=8, label = 'poisson pmf')ax.legend(loc = 'best', frameon = False)plt.ylabel('Probability')plt.title('PMF of poisson distribution(mu={})'.format(mu))plt.show()poisson_pmf(mu=8)

1.2 连续随机变量分布

1)均匀分布

        均匀分布也叫矩形分布,它是对称概率分布,在相同长度间隔的分布概率是等可能的。 均匀分布由两个参数a和b定义,它们是数轴上的最小值和最大值,通常缩写为U(a,b)。

在python中用location和scale分别表示起点和区间长度,代码如下:

import numpy as np
from scipy import stats
import matplotlib.pyplot as pltdef uniform_distribution(loc=0,scale=1):uniform_dis = stats.uniform(loc=loc,scale=scale)x = np.linspace(uniform_dis.ppf(0.01), uniform_dis.ppf(0.99), 100)fig, ax = plt.subplots(1, 1)#直接传入参数ax.plot(x, stats.uniform.pdf(x, loc=2, scale=4), 'r-', lw=5, alpha=0.6, label='uniform pdf')#从冻结的均匀分布取值ax.plot(x, uniform_dis.pdf(x), 'k-', lw=2, label='frozen pdf')#计算ppf分别等于0.001,0.5,0.999时的x值vals = uniform_dis.ppf([0.001, 0.5, 0.999])print(vals)#[2.004 4.    5.996]#检测cdf和ppf的精确度print(np.allclose([0.001, 0.5, 0.999], uniform_dis.cdf(vals)))#结果为Truer = uniform_dis.rvs(size=10000)ax.hist(r, density=True, histtype='stepfilled', alpha=0.2)plt.ylabel('Probability')plt.title(r'PDF of Unit({}, {})'.format(loc, loc+scale))ax.legend(loc= 'best', frameon = False)plt.show()uniform_distribution(loc=2,scale=4)

运行结果如下:

 2)指数分布

        指数分布(也称为负指数分布)是描述泊松过程中的事件之间的时间的概率分布,即事件以恒定平均速率连续且独立地发生的过程。这表示如果一个随机变量呈指数分布,当s,t>0时有P(T>t+s|T>t)=P(T>s)。即,假如你在排队接受服务的时间长短服从指数分布,那么无论你已经排了多久的队,在排t分钟的概率始终是相同的,代码如下:

import numpy as np
from scipy import stats
import matplotlib.pyplot as pltdef exponential_dis(loc=0, scale=1.0):'''指数分布按照定义只有一个参数lambda,这里的scale = 1/lambdaparam loc:定义域的左端点,相当于将整体分布沿x轴平移locparam scale:lambda的倒数,loc+scale表示改分布的均值,scale^2表示该分布的方差'''exp_dis = stats.expon(loc=loc, scale=scale)x = np.linspace(exp_dis.ppf(0.000001), exp_dis.ppf(0.999999), 100)fig, ax = plt.subplots(1, 1)#直接传入参数ax.plot(x, stats.expon.pdf(x, loc=loc, scale=scale), 'r-', lw=5, alpha=0.6, label='uniform pdf')#从冻结的均匀分布取值ax.plot(x, exp_dis.pdf(x), 'k-', lw=2, label='frozen pdf')#计算ppf分别等于0.001,0.5,0.999时的x值vals = exp_dis.ppf([0.001, 0.5, 0.999])print(vals)#[2.004 4.    5.996]#检测cdf和ppf的精确度print(np.allclose([0.001, 0.5, 0.999], exp_dis.cdf(vals)))r = exp_dis.rvs(size=10000)ax.hist(r, density=True, histtype='stepfilled', alpha=0.2)plt.ylabel('Probability')plt.title(r'PDF of Exp(0.5)')ax.legend(loc= 'best', frameon = False)plt.show()exponential_dis(loc=0, scale=2)

运行结果如下:

 3)正态分布

正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人们又经常称之为钟形曲线。

若随机变量X服从一个数学期望为μ、方差为σ2的正态分布,记为N(μ,σ2)。其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。当μ = 0,σ = 1时的正态分布是标准正态分布。

import numpy as np
import matplotlib.pyplot as plt
import mathu = 0
#均值μ
u01 = -2
sig = math.sqrt(0.2)
#标准差x = np.linspace(u-3*sig, u+3*sig, 50)
y_sig = np.exp(-(x-u)**2/(2*sig**2))/(math.sqrt(2*math.pi)*sig)
print(x)
print('='*20)
print(y_sig)
plt.plot(x, y_sig, 'r-', linewidth=2)
plt.grid(True)
plt.show()


总结

        本文为大家重点介绍了与人工智能有关的梳理统计方法,概率统计知识在人工智能领域发挥着非常重要的作用,如深度学习理论,概率图模型等都依赖于概率分布作为框架的基本建模语言,学习了解机器学习的概率统计对你的掌握百利无一害~~

        欢迎大家留言一起讨论问题~~~


 系列文章目录

第二章:机器学习的概率统计模型(附代码)(一)

第二章:机器学习的概率统计模型(附代码)(二)


http://chatgpt.dhexx.cn/article/FVhMJp6k.shtml

相关文章

【统计模型】缺失数据处理方法

目录 一、缺失数据定义 二、缺失数据原因 三、缺失数据处理步骤 四、数据缺失机制 1.完全随机缺失&#xff08;MCAR&#xff09; 2.随机缺失&#xff08;MAR&#xff09; 3.非随机、不可忽略缺失&#xff08;NMAR&#xff09; 五、缺失数据处理方法 1.直接删除 2.缺失值…

数学统计建模

数据预处理 数据清洗 无量纲处理 检验数据来自哪个分布 正态分布检验 K-S检验的P值检验正态性 非正态数据处理 数据偏态处理 BOX-COX变换 成分数据处理 clr变换 ilr变换 logit变换 属性数据 相关性检验 假设检验方法使用时应首先判断数据是否为正态数据。如果是&#x…

【数学建模】统计分析方法

文章目录 1.回归分析2. 逻辑回归3. 聚类分析4. 判别分析5. 主成分分析6. 因子分析7. 对应分析 1.回归分析 数据量要多&#xff0c;样本总量n越大越好——>保证拟合效果更好&#xff0c;预测效果越好 一般n>40/45较好 方法 建立回归模型 yiβ0β1i……βkxkiεi 所估计的…

统计模型分类

传统统计模型->回归模型&#xff08;可解决过去和预测未来&#xff09; 数据挖掘模型->决策树、神经网络等&#xff08;只能预测未来&#xff09; 横截面模型&#xff1a;多元回归&#xff0c;逻辑回归&#xff0c;托宾回归&#xff08;涉及到泊松分布&#xff09; 向量…

(R语言)R的统计模型

1定义统计模型的公式 下面统计模型的模板是一个基于独立的方差齐性数据的线性模型 用矩阵术语表示&#xff0c;它可以写成 其中y是响应向量&#xff0c;X是模型矩阵&#xff08;model matrix&#xff09;或者设计矩阵&#xff08;design ma- trix&#xff09;。X的列 是决定变…

【统计学习方法】模型评估与模型选择

一、训练误差与测试误差 首先引入误差的概念&#xff0c;误差&#xff08;error&#xff09;是指&#xff1a;学习器的实际预测输出与样本的真实输出之间的差异。类似地&#xff0c;学习器在训练集上的误差被称之为训练误差&#xff08;training error&#xff09;或者经验误差…

statsmodels︱python常规统计模型库

之前看sklearn线性模型没有R方&#xff0c;F检验&#xff0c;回归系数T检验等指标&#xff0c;于是看到了statsmodels这个库&#xff0c;看着该库输出的结果真是够怀念的。。 文章目录 1 安装2 相关模型介绍2.1 线性模型2.2 离散选择模型(Discrete Choice Model, DCM)2.3 非参数…

数学建模——统计回归模型

前言&#xff1a;看完数学建模的统计回归模型&#xff0c;更是感到了数学建模的“细腻”之处&#xff0c;对比与机器学习&#xff0c;如果说机器学习像是“打一场仗”&#xff0c;那数学建模更是像“做一场手术”&#xff0c;一个简单的回归问题也可以从中感觉到他“细腻”的美…

统计模型 | 学习笔记

一.概述 任何统计模型都是对现实世界复杂联系的简化 根据目的分类 聚类方法&#xff08;细分类模型&#xff09;&#xff1a;市场细分&#xff0c;协同推荐 预测方法&#xff1a;回归模型&#xff0c;时间序列模型 关联归纳方法&#xff1a;购物篮分析&#xff0c;序列分析…

七大统计模型

一、多元回归 1、概述&#xff1a; 在研究变量之间的相互影响关系模型时候&#xff0c;用到这类方法&#xff0c;具体地说&#xff1a;其可以定量地描述某一现象和某些因素之间的函数关系&#xff0c;将各变量的已知值带入回归方程可以求出因变量的估计值&#xff0c;从而可…

03 常用统计模型简述

逻辑回归模型(LR) 原理&#xff1a;分类模型&#xff0c;依据逻辑斯蒂分布&#xff0c;将线性模型转化为逻辑回归模型&#xff0c;使结果分布0~1之间。 前置条件&#xff1a; 自变量为连续变量&#xff0c;分类变量转为虚拟变量&#xff08;哑变量&#xff09;使用 自变量与因…

不可不知的七大统计模型

一、多元回归 1、概述&#xff1a; 在研究变量之间的相互影响关系模型时候&#xff0c;用到这类方法&#xff0c;具体地说&#xff1a;其可以定量地描述某一现象和某些因素之间的函数关系&#xff0c;将各变量的已知值带入回归方程可以求出因变量的估计值&#xff0c;从而可…

数学建模笔记(十一):统计模型(MATLAB计算,函数参数解释待补充)

文章目录 一、概述二、参数估计——区间估计1.糖果称重&#xff08;求总体均值 μ \mu μ的双侧置信区间&#xff09;&#xff08;一&#xff09;根据公式计算结果&#xff08;二&#xff09;直接使用 t t e s t ( ) ttest() ttest()函数 2.灯泡寿命&#xff08; μ \mu μ的单…

scss和sass的区别,scss的基本使用

scss的官方文档 https://www.sass.hk/ sass和scss有什么关系&#xff1f; 1、sass和scss其实是一样的css预处理语言&#xff0c;SCSS 是 Sass 3 引入新的语法&#xff0c;其后缀名是分别为 .sass和.scss两种。 2、SASS版本3.0之前的后缀名为.sass&#xff0c;而版本3.0之后…

vue 安装 scss

安装scss (安装sass-loader node-sass 前者依赖于后者) sass-loader&#xff1a;把 sass编译成css node-sass&#xff1a;nodejs环境中将sass转css npm install sass-loader --save-dev npm install node-sass --sava-dev 安装指定版本&#xff1a;当由于版本过高报错时&#…

scss、sass 和 css 的区别

项目中&#xff0c;会经常使用诸如scss、sass的style样式&#xff0c;它们和css有什么区别呢&#xff1f; less大家应该都不陌生&#xff0c;同样的scss、sass一样&#xff0c;它们都可以称为&#xff1a;CSS预处理器语言。 简单来说&#xff0c;scss和sass的区别&#xff0c;就…

Scss 基本使用(变量、嵌套)

1. Scss 简介 Sass (Syntactically Awesome Stylesheets) 是一种动态样式语言&#xff0c;Sass 语法属于缩排语法&#xff0c;比 css 比多出好些功能 (如&#xff1a;变量、嵌套、运算,混入(Mixin)、继承、颜色处理&#xff0c;函数等)&#xff0c;更容易阅读。 Sass 的缩排语…

sass与scss的区别

用了很久css预编译器&#xff0c;但是一直不太清楚到底用的sass还是scss&#xff0c;直到有天被问住了有点尴尬&#xff0c;找了个教程撸了遍。。。 异同&#xff1a;简言之可以理解scss是sass的一个升级版本&#xff0c;完全兼容sass之前的功能&#xff0c;又有了些新增能力。…

SCSS的基本用法-入门篇

文章目录 前言一、什么是Sass二、SASS 和 SCSS 的区别三、Scss的基本语法1、声明变量 $2、默认变量 !default3、变量调用4、局部变量和全局变量5、嵌套5.1、选择器嵌套5.2、属性嵌套5.3、伪类嵌套 6、混合宏6.1、声明6.1.1、不带参数混合宏6.1.2、带参数混合宏 6.2、调用6.3、混…

Sass 和 SCSS

▣Sass (Syntactically Awesome StyleSheets)&#xff0c;是由buby语言编写的一款css预处理语言&#xff0c;和html一样有严格的缩进风格&#xff0c;和css编写规范有着很大的出入&#xff0c;是不使用花括号和分号的&#xff0c;所以不被广为接受。 Sass 是一款强化 CSS 的辅助…