人工智能数据基础之概率论入门-学习篇

目录

  1. 基本概念
  2. 随机变量及其分布
  3. 期望、方差、协方差
  4. 常见概率分布
  5. 大数定律与中心极限定理

一、基本概念

1. 试验、事件与样本空间:

试验(Experiment)
试验是指对一个或多个试验对象进行一次观察或测量的过程。试验具有以下几个特点:

  • 可以在相同条件下重复进行。
  • 每次试验的可能结果不止一个,但试验的所有可能结果在试验之前是确切知道的。
  • 在试验结束之前,不能确定该次试验的确切结果。

例如,抛掷一枚均匀硬币、投掷一枚骰子或从一批产品中随机抽取一件观察其质量等,都是典型的试验。

事件(Event)
事件是试验的结果,也称为随机事件。它通常由大写英文字母(如A、B、C)表示。事件可以是基本事件、复合事件、必然事件或不可能事件。

  • 基本事件:基本事件是试验中不能再分解的最简单的事件,也称为简单事件。它只包含一个样本点,即试验中一个特定的结果。
  • 复合事件:复合事件由两个或两个以上的基本事件组合而成。
  • 必然事件:在一定条件下必然发生的事件,用Ω表示。
  • 不可能事件:在一定条件下一定不发生的事件,用φ表示。

样本空间(Sample Space)
样本空间是试验中所有可能结果的集合,用Ω(大写的Omega)表示。样本空间中的每一个元素(即每一个可能的结果)被称为样本点,用ω(小写Omega)表示。

样本空间可以是有限的、可数的无限集合或不可数的集合。例如,抛掷一枚硬币的样本空间是有限的(Ω={正面, 反面}),而投掷一枚骰子的样本空间是可数的无限集合(尽管对于投掷骰子来说实际上是有限的,但这里指的是类似情况,如一直投掷直到出现特定结果的无限序列),而检测灯泡使用寿命的样本空间则可能是不可数的(Ω={t: t≥0})。

2. 条件概率与独立事件

条件概率
定义:条件概率是指事件A在另外一个事件B已经发生条件下的发生概率。条件概率表示为P(A|B),读作“在B的条件下A的概率”。其计算公式为P(A|B)=P(AB)/P(B),其中P(AB)表示事件A和事件B同时发生的概率,P(B)表示事件B发生的概率。
特点:

  • 条件概率是带有附加条件的概率,它描述了在一个事件已经发生的情况下,另一个事件发生的可能性。
  • 条件概率的计算依赖于两个事件的联合概率以及条件事件本身的概率。
  • 条件概率在决策分析、风险评估等领域有广泛应用。

独立事件
定义:如果事件A(或B)的发生与否对事件B(A)发生的概率没有影响,则称事件A与事件B是相互独立的。即P(AB)=P(A)P(B),这里P(AB)表示事件A和事件B同时发生的概率,P(A)和P(B)分别表示事件A和事件B单独发生的概率。
特点:

  • 独立事件之间互不影响,一个事件的发生不会改变另一个事件发生的概率。
  • 在计算独立事件的联合概率时,可以直接将两个事件的概率相乘。
  • 独立事件在概率论中占有重要地位,许多复杂的概率问题都可以通过分解为独立事件来简化计算。
使用Python模拟随机试验
import random

# 模拟投硬币函数,‘H’代表正面,‘T’代表反面
def toss_coin():
    return 'H' if random.random() < 0.5 else 'T'
N = 10
results = [toss_coin() for _ in range(N)]
print(results)

结果如下:

['T', 'H', 'T', 'H', 'T', 'H', 'T', 'T', 'T', 'H']

二、随机变量及其分布

1. 随机变量的定义

设随机试验的样本空间为S,如果由样本空间S中的每一个样本点(即随机试验的每一个可能结果)e可以唯一确定一个实数X(e),则称X(e)为随机变量,记为X,其中X是定义在样本空间S上的单值实值函数。

根据随机变量可能取值的全体所构成的集合的不同,随机变量可以分为两大类:

  • 离散型随机变量:如果随机变量X只可能取有限个或可列无穷多个值,则称X为离散型随机变量。例如,抛掷一枚骰子,其朝上的点数就是一个离散型随机变量,它只能取1,2,3,4,5,6这六个值。
  • 连续型随机变量:如果随机变量X的所有可能取值不可以一一列出,而是可以取某一区间内的任意实数,则称X为连续型随机变量。例如,在某一区间内测量的温度、长度、重量等都可以看作是连续型随机变量。
2. 概率质量函数与概率密度函数

概率质量函数(PMF)是离散随机变量的概率表示。它给出了这个随机变量取特定值的概率。例如,掷一个公平的六面骰子,每个面上的数字出现的概率都是1/6 ,这就可以通过一个概率质量函数来描述。

概率密度函数(PDF ) 是连续随机变量的概率表示。由于连续随机变量取任何一个具体数值的概率都是0 ,所以概率密度函数不直接给出概率,而是给出了随机变量落在某一区间内的概率密度。 PDF下某区间的面积代表随机变量落在这个区间的概率。例如,描述人的身高分布的随机变量就会用到概率密度函数。

3. 使用Python实现概率质量函数示意图

在这里插入图片描述

代码如下:

import random

import matplotlib.pyplot as plt


# 模拟投硬币函数,‘H’代表正面,‘T’代表反面
def toss_coin():
    return 'H' if random.random() < 0.5 else 'T'
N = 10
results = [toss_coin() for _ in range(N)]
print(results)

#计算正面和反面的频率
heads = results.count("H")
tails = results.count("T")
#概率质量函数的值
pmf = [heads/N, tails/N]
#绘制概率质量函数
labels = ['Heads', 'Tails']
plt.bar(labels, pmf,color=['blue','orange'])
plt.title("Probability of Heads and Tails")
plt.ylabel("Probability")
plt.show()

三、期望、方差与协方差

1. 期望的定义与性质

期望,又称为数学期望、均值,是指随机事件在多次重复实验中的平均值。在射击比赛中,如果一个射击运动员多次射击同一目标,他的子弹击中目标的平均位置就可以看作是期望值。期望值代表的是射手的准确度,一个射手的期望命中点越靠近靶心,说明他越准确。

2. 方差与偏差

方差 是衡量随机变量或数据与其均值(即算术平均数)之间偏离程度的量,方差的一个重要性质是它是非负的,且当且仅当所有数据点都等于均值时,方差为0。方差越大,表示数据或随机变量的分布越分散;方差越小,表示数据或随机变量的分布越集中。
偏差 通常用于描述一个估计量(如统计模型的预测值)与真实值(或目标值)之间的差异。在统计学中,偏差可以分为几种类型,但最常见的是指系统偏差(Systematic Bias),即估计量在多次重复测量或估计时,其平均值与真实值之间的偏差。
如果估计量的平均值等于真实值,则称该估计量是无偏的(Unbiased);如果估计量的平均值不等于真实值,则称该估计量是有偏的(Biased)。偏差是衡量估计量准确性的一个重要指标。
如下图所示:
在这里插入图片描述

3. 协方差与相关系数

协方差 就是描述两个变量之间的变动关系。通俗地理解为:两个变量是同向变化?还是反向变化?同向或反向程度有多少?
X变大,Y也变大,说明两个变量是同向变化的,这时协方差就是正的。X变大,Y变小,说明两个变量是反向变化的,这时协方差就是负的。并且从数值大小来看,协方差的绝对值越大,则两个变量同向或反向的程度也越大,即有较强的相关。
相关系数 其实就是用X、Y的协方差除以X和Y的标准差。所以相关系数可以看成剔除了两个变量单位的影响、标准化后的特殊协方差。它可以反映两个变量变化是同向还是反向的,同向为正,反向为负。并且它又是标准化后的协方差,则它出现最重要的目的来了,就是消除两个变量单位的影响,使得不同变量的相关系数之间具有可比性

4. 使用Python计算期望、方差与协方差
import numpy as np

#生成两组随机数据
data1 = np.random.randn(1000)
data2 = np.random.randn(1000)
#计算期望(平均值)
expectation1 = np.mean(data1)
expectation2 = np.mean(data2)
#计算方差
variance1 = np.var(data1)
variance2 = np.var(data2)
#计算协方差
convariance_matrix = np.cov(data1, data2)

print(f"期望值 data1:{expectation1},data2:{expectation2}")
print(f"方差 data1:{variance1},data2:{variance2}")
print(f"协方差矩阵:\n{convariance_matrix}")
#从协方差矩阵中提取data1he data2的协方差
convariance = convariance_matrix[0,1]
print(f"data1和data2的协方差为:{convariance}")

运行结果为:
在这里插入图片描述

四、常见的概率分布

伯努利分布:描述只有两种可能结果的单次随机试验
二项分布:描述固定N次的独立伯努利试验中成功的次数。
正态分布:描述自然和社会现象中出现的许多随机变量的分布情况
指数分布:描述独立随机事件发生的时间间隔

使用Python生成常见概率分布图
import matplotlib.pyplot as plt
import numpy as np

#设定随机数种子,以便复现实验结果
np.random.seed(0)

#伯努利分布(假设p为成功概率)
p = 0.5
bernoulli_dist = np.random.binomial(1,p,1000)
#二项分布(参数n为实验次数,p为每次成功概率) 是对伯努利分布重复n次
n = 10
binomial_dist = np.random.binomial(n,p,1000)
#正态分布(参数mu为均值,sigma为标准差)
mu,sigma = 0,0.1
normal_dist = np.random.normal(mu,sigma,1000)
#指数分布
lambd = 1.0
exponential_dist = np.random.exponential(1/lambd,1000)
#Logistic分布(参数mu为位置参数,s为尺度参数)
mu,s = 0,1
logistic_dist = np.random.logistic(mu,s,1000)

#绘制柱状图  画面分为五行一列,图片大小是5x8
fig,axs = plt.subplots(5,1,figsize = (5,8))
#伯努利分布柱状图
axs[0].hist(bernoulli_dist,bins=2)
axs[0].set_title('Bernoulli Distribution')
#二项分布柱状图
axs[1].hist(binomial_dist,bins=range(n+2))
axs[1].set_title('Binomial Distribution')
#正态分布柱状图
axs[2].hist(normal_dist,bins=30)
axs[2].set_title('Normal Distribution')
#指数分布柱状图
axs[3].hist(exponential_dist,bins=30)
axs[3].set_title('Exponential Distribution')
#Logistic分布
axs[4].hist(logistic_dist,bins=30)
axs[4].set_title('Logistic Distribution')

plt.show()

运行结果如下:
在这里插入图片描述

五、大数定律与中心极限定理

1. 大数定率

随着尝试次数的增加,实验的平均结果将趋近于期望值。
例如抛硬币,随着你扔的次数越来越多,你会注意到,正面和反面出现的次数开始趋近于各占一半。如果你扔了成千上万次,你几乎可以肯定,正反面各自出现的次数会非常接近于总扔硬币次数的50%

使用Python模拟大数定律
进行一个抛硬币游戏,记录每次抛的正反面信息,正面是1,反面是-1,抛10000次,记录累计的盈亏和平均盈亏,并绘制相应的折线图,会发现最终的结果将趋近于期望值,也就是0,下面用代码实现此逻辑

#抛硬币大数定律
import numpy as np
import matplotlib.pyplot as plt

def gamble_game(trail):
    # 抛硬币游戏,正面是1,反面是-1
    results = np.random.choice([1,-1],size=trail)
    return results

def simulate_gambling(trails):
    results = gamble_game(trails)
    #计算累计盈亏
    cumulative_sum = np.cumsum(results)
    #计算平均盈亏
    average_win_loss = cumulative_sum/np.arange(1, trails + 1)
    return cumulative_sum,average_win_loss
#画图的方法
def plot_results(trails):
    cumulative_sum, win_loss = simulate_gambling(trails)
    #绘制累计盈亏图
    plt.figure(figsize=(12,6)) #画面的尺寸
    plt.subplot(1,2,1) #在第一行两列的第一个位置进行画图
    plt.plot(cumulative_sum) #画一个累计盈亏折线图
    plt.title("Cumulative Sum")
    plt.xlabel("Trails")
    plt.ylabel("Cumulative Sum")

    #平均盈亏图
    plt.subplot(1,2,2)#在第一行两列的第二个位置进行画图
    plt.plot(win_loss)
    plt.axhline(y = 0, color = 'red',linestyle = '--')
    plt.title("Average Win/Loss Over Trails")
    plt.xlabel("Trails")
    plt.ylabel("Win/Loss")
    plt.tight_layout()
    plt.show()

plot_results(10000)

执行结果如下:

在这里插入图片描述
每次执行的结果都是不一样的。

2. 中心极限定理

当独立随机变量的数量足够大时,它们的总和将趋近于正态分布,无论原始随机变量的分布如何。
即使单个骰子的结果是完全随机的,但是当许多随机结果加在一起时,总和的分布将趋向于形成一个特定的、可预测的形状,也就是正态分布。

使用Python模拟中心极限定理
取一个骰子,一次游戏投30次,一共进行一万次游戏,记录每一次实验的结果,绘制出试验平均值的直方图,会发现随机变量的数量足够大时,它们的总和将趋近于正态分布,无论原始随机变量的分布如何。下面代码证明这个结论。

import numpy as np
import matplotlib.pyplot as plt


def roll_dice():
    #模拟投掷一个六面骰子
    return np.random.randint(1,7)

def experiment(num_rolls):
    #进行一次试验试验包括num_rolls次投掷骰子
    total = 0
    for _ in range(num_rolls):
        total += roll_dice()
    return total / num_rolls

def run_experiment(num_experiments,num_rolls):
    #进行多次试验,并记录平均值
    averages = [] #用来记录每一次实验的结果
    for i in range(num_experiments): #进行 num_experiments 次试验
        averages.append(experiment(num_rolls)) #每次试验的结果都保存到averages中
    return averages

def plot_histogram(averages):
    #绘制试验平均值的直方图
    plt.hist(averages,bins=20,edgecolor='black',density=True)
    plt.xlabel('Averages')
    plt.ylabel('Frequency')
    plt.title('Histogram of Averages')
    plt.show()

#参数设置
num_experiments = 10000 #实验次数
num_rolls = 30 #每次试验骰子次数
#运行试验,把试验结果绘制图像
averages = run_experiment(num_experiments,num_rolls)
plot_histogram(averages)

结果为:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/874061.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络】电路交换、电报交换、分组交换

【计算机网络】电路交换、电报交换、分组交换 目录 【计算机网络】电路交换、电报交换、分组交换1. 电路交换2. 电报交换3. 分组交换4. 基于分组交换~“虚电路交换”技术 1. 电路交换 电路交换&#xff08;Circuit Switching&#xff09;:通过物理线路的连接&#xff0c;动态地…

JavaScript练手小技巧:利用鼠标滚轮控制图片轮播

近日&#xff0c;在浏览网站的时候&#xff0c;发现了一个有意思的效果&#xff1a;一个图片轮播&#xff0c;通过上下滚动鼠标滚轮控制图片的上下切换。 于是就有了自己做一个的想法&#xff0c;顺带复习下鼠标滚轮事件。 鼠标滚轮事件&#xff0c;参考这篇文章&#xff1a;…

【人工智能学习笔记】4_2 深度学习基础之多层感知机

感知机概述 感知机是人工智能最早的模型,是一种有监督的算法,本质上是一个二分类问题,是神经网络和支持向量机的基础缺点:感知机智能解决单纯的线性问题 感知机的过程 多层感知机的层级结构 多层感知机的层级结构主要包括输入层、隐藏层和输出层、可以用于拟合非线性函数。…

初中生台灯哪个牌子的质量好?五款真的有护眼效果的台灯

现在市面上形形色色的打着“护眼”口号的台灯太多了&#xff0c;因为眼睛对于我们来说很重要&#xff0c;我们看到美丽的事物都因为有他&#xff0c;所以大家一听到护眼就会选择购买。初中生台灯哪个牌子的质量好&#xff1f;很多商家为了赚钱&#xff0c;随便贴个标签就说护眼…

【Mysql】系统服务启动访问报错问题处理:this is incompatible with sql_mode=only_full_group_by

一、背景&#xff1a; 本来已经正常运行的平台&#xff0c;突然有一天由于对服务器进行部分操作迁移&#xff0c;发现jar可以正常启动&#xff0c;但是访问功能一直报错&#xff0c;监控后台日志后&#xff0c;发现了问题&#xff1a; 报错的具体信息如下&#xff1a; Caused…

安全产品概述

防火墙 防火墙的核心功能是过滤掉有害的流量&#xff0c;在专用网络和公共网络之间建立保护屏障。防火墙过滤通常基于一系列规则&#xff0c;如 IP 地址、域名、协议、端口号、关键字等&#xff0c;对入站和出站的流量进行过滤。这些规则也称为访问控制列表&#xff08;ACCESS…

JSON格式

JSON&#xff08;JavaScript Object Notation, JS对象简谱&#xff09;是一种轻量级的数据交换格式。JSON 就是一种字符串格式,这种格式无论是在前端还是在后端,都可以很容易的转换成对象,所以常用于前后端数据传递 说明&#xff1a; JSON的语法 ​ var obj“{‘属性名’:‘…

Vue3.0项目实战(三)——大事件管理系统首页 layout 架子与文章分类的实现

目录 1. 首页 layout 架子 [element-plus 菜单] 1.1 基本架子拆解 2. 登录访问拦截 2.1 需求 2.2 vue3 和 vue2 中的 Vue-Router 区别 3. 用户基本信息获取&渲染 4. 退出功能 [element-plus 确认框] 5. 文章分类页面 - [element-plus 表格] 5.1 基本架子 - PageCo…

Tomcat Request Cookie 丢失问题

优质博文&#xff1a;IT-BLOG-CN 一、问题描述 生产环境偶尔(涉及到多线程处理)出现"前端传递Cookie为空"的告警&#xff0c;导致前端请求丢失&#xff0c;出现请求失败问题。告警内容如下 前端传递Cookie为空 告警内容&#xff1a;服务端获取request Cookie为空&…

大屏地图区域显示、复选框多选打点,自定义窗体信息(vue3+TS)

效果图&#xff1a; NPM 安装 Loader&#xff1a; npm i amap/amap-jsapi-loader --save 并设置 key 和安全密钥&#xff1a; import AMapLoader from amap/amap-jsapi-loader;//引入高德地图window._AMapSecurityConfig {securityJsCode: "「你申请的安全密钥」"…

[数据集][目标检测]百事可乐可口可乐瓶子检测数据集VOC+YOLO格式195张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;195 标注数量(xml文件个数)&#xff1a;195 标注数量(txt文件个数)&#xff1a;195 标注类别…

前端登录鉴权——以若依Ruoyi前后端分离项目为例解读

权限模型 Ruoyi框架学习——权限管理_若依框架权限-CSDN博客 用户-角色-菜单&#xff08;User-Role-Menu&#xff09;模型是一种常用于权限管理的设计模式&#xff0c;用于实现系统中的用户权限控制。该模型主要包含以下几个要素&#xff1a; 用户&#xff08;User&#xff09;…

【VSCode v1.93.0】手动配置远程remote-ssh

开发环境 VS Code版本&#xff1a;1.93.0 (Windows) Ubuntu版本&#xff1a;20.04 使用VS Code 插件remote-ssh远程访问Ubuntu服务器中的代码&#xff0c;若Ubuntu无法联网&#xff0c;在连接的时候会报错&#xff1a; Could not establish connection to "xxxx": F…

店匠科技携手Stripe共谋电商支付新篇章

在全球电商行业蓬勃发展的背景下,支付环节作为交易闭环的核心,其重要性日益凸显。随着消费者对支付体验要求的不断提高,以及跨境电商的迅猛发展,支付市场正经历着前所未有的变革与挑战。在这一充满机遇与竞争的领域,店匠科技(Shoplazza)凭借其创新的嵌入式支付解决方案—— Sho…

【Obsidian】同步插件 Remotely Save 的应用介绍

背景 引言&#xff0c;大多数的笔记软件数据都存储在云端&#xff0c;这样如果是没网络&#xff0c;或者笔记服务器崩溃故障&#xff0c;那么你就无法访问自己的笔记了&#xff0c;前段时间的语雀系统崩溃&#xff0c;不知道你有没有了解&#xff1f; 所以笔记在自己手里&…

第四届“长城杯”网络安全大赛 暨京津冀网络安全技能竞赛(初赛) 全方向 题解WriteUp

战队名称&#xff1a;TeamGipsy 战队排名&#xff1a;18 SQLUP 题目描述&#xff1a;a website developed by a novice developer. 开题&#xff0c;是个登录界面。 账号admin&#xff0c;随便什么密码都能登录 点击头像可以进行文件上传 先简单上传个木马试试 测一下&…

ComfyUI-图片表情控制工作流整合包,相关软件包及工作流均已打包好,一键启动即可

前言 本期给大家带来基于LivePortrait的ComfyUI图片表情控制工作流&#xff0c;还可以通过控制表情变化及参考视频生成动态肖像。 此工作流操作简单&#xff0c;相关ComfyUI软件包、模型、节点、工作流均已打包在内&#xff0c;一键启动即可。 # 配置要求&#xff1a; 建议电…

基于 TiDB 资源管控 + TiCDC 实现多业务融合容灾测试

导读 随着金融行业的不断发展&#xff0c;多个业务系统的整合成为了趋势&#xff0c;分布式数据库的应用也愈发广泛。为了应对多业务融合带来的复杂性&#xff0c;金融机构需要在保障各业务系统高效运行的同时&#xff0c;确保 IT 系统的高可用性和稳定性。本文将介绍 TiDB 如…

媒体服务器软件BUG说明及改进方案

媒体服务器软件BUG说明及改进方案 一、BUG描述二、问题分析三、改进方案四、实施计划五、预期效果六、总结一、BUG描述 在当前版本的媒体服务器中,存在一个关于静音媒体流处理的问题。具体表现为:当主叫连续发送静音帧到媒体服务器时,媒体服务器并未将这些静音帧转发给被叫…

2. Python之注释及缩进以及print和input函数使用

一. Python代码中的注释及缩进 Python中注释有单行注释&#xff0c;多行注释&#xff0c;声明注释 单行注释使用符号#&#xff0c;从#开始&#xff0c;后面到本行末尾都是注释内容。多行注释可以使用’‘’ ‘’三个引号&#xff0c;三个引号内的内容都是注释声明注释&#x…