均匀分布rand 正态分布randn 二元高斯分布random的图形 (python实现)

目录

一:介绍

1 什么是正态分布?

重点知识了解

2 什么是均匀分布 ?

3:二元高斯分布(二元正态分布)

二:编程实现

1: 正态分布

#直方图初判

2:均匀分布

3:高斯(正态)二元分布


一:介绍

1 什么是正态分布?

高斯分布(正态分布)是一个常见的连续概率分布。正态分布的数学期望值或期望值 μ等于位置参数,决定了分布的位置;其方差σ2的开平方或标准差σ等于尺度参数,决定了分布的幅度。

正态分布的概率密度函数曲线呈钟形,因此人们又经常称之为钟形曲线(类似于寺庙里的大钟,因此得名)。

重点知识了解

期望:

  • 期望,意思就是这个事情的总的平均结果会是怎样

  • 通俗的讲,就是平均值,也可以说是平均水平

 

期望的算法是:

  • 概率*取值的总和,反映的是事情达成的总的预期水平值

  • 这就是期待值

方差和标准差

  • 方差是标准差的平方

  • 方差和标准差.方差和标准差是测算离散趋势最重要、最常用的指标.方差是各变量值与其均值离差平方的平均数,它是测算数值型数据离散程度的最重要的方法.标准差为方差的平方根,用S表示.标准差相应的计算公式为

  • 标准差是方差开方后的结果(即方差的算术平方根) 假设这组数据的平均值是m 方差公式s^2=1/n[(x1-m)^2+(x2-m)^2+...+(xn-m)^2]

  • 假设方差是a.则标准差就是这个方差开方

  • 标准差与方差不同的是,标准差和变量的计算单位相同,比方差清楚,因此很多时候我们分析的时候更多的使用的是标准差.

2 什么是均匀分布 ?

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

3:二元高斯分布(二元正态分布)

拥有两个变元的正态分布模型

二:编程实现

1: 正态分布

必要了解:np.random.randn() 函数用于生成标准正态分布的伪随机数。

Y = randn(n):返回一个n*n的随机项的矩阵。如果n不是个数量,将返回错误信息。

Y = randn(m,n) 或 Y = randn([m n]):返回一个m*n的随机项矩阵。

Y = randn(m,n,p,...) 或 Y = randn([m n p...]):产生随机数组。

Y = randn(size(A)):返回一个和A有同样维数大小的随机数组。
 

 实例:

#直方图初判

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
% matplotlib inline

s = pd.DataFrame(np.random.randn(1000)+10,columns = ['value'])
print(s.head())
# 创建随机数据

fig = plt.figure(figsize = (10,6))
ax1 = fig.add_subplot(2,1,1)  # 创建子图1
ax1.scatter(s.index, s.values)
plt.grid()
# 绘制数据分布图

ax2 = fig.add_subplot(2,1,2)  # 创建子图2
s.hist(bins=30,alpha = 0.5,ax = ax2)
s.plot(kind = 'kde', secondary_y=True,ax = ax2)
plt.grid()
# 绘制直方图
# 呈现较明显的正太性

2:均匀分布

必要了解:np.random.rand()  产生均匀分布的随机数或矩阵

rand函数产生由在(0, 1)之间均匀分布的随机数组成的数组
Y = rand(n) 返回一个n x n的随机矩阵如果n不是数量,则返回错误信息
Y = rand(m,n) 或 Y = rand([m n]) 返回一个m x n的随机矩阵
Y = rand(m,n,p,...) 或Y = rand([m n p...]) 产生随机数组
Y = rand(size(A)) 返回一个和A有相同尺寸的随机矩阵
 

3:高斯(正态)二元分布

必要了解:np.random.multivariate_normal():np.random.multivariate_normal方法用于根据实际情况生成一个多元正态分布矩阵(正态分布基本概念戳这里

def multivariate_normal(mean, cov, size=None, check_valid=None, tol=None)

mean:mean是多维分布的均值,维度为1;也可表示二元高斯分布的中心

cov:协方差矩阵协方差基本概念戳这里),注意:协方差矩阵必须是对称的且需为半正定矩阵;一般二维的为cov = [[1,0.0],[0.0,1]]

size:指定生成的正态分布矩阵的维度(例:若size=(1, 1, 2),则输出的矩阵的shape即形状为 1X1X2XN(N为mean的长度))

tol:检查协方差矩阵奇异值时的公差,float类型。

check_valid:这个参数用于决定当cov即协方差矩阵不是半正定矩阵时程序的处理方式,它一共有三个值:warn,raise以及ignore。当使用warn作为传入的参数时,如果cov不是半正定的程序会输出警告但仍旧会得到结果;当使用raise作为传入的参数时,如果cov不是半正定的程序会报错且不会计算出结果;当使用ignore时忽略这个问题即无论cov是否为半正定的都会计算出结果。

个数呢??dot_num:

numpy.eye()   生成对角矩阵。

问题:一个二元高斯分布图,拥有5000个实例,实例的生成服从二元高斯分布,中心为(10,10),标准差为(1,1) 

mean = [10,10] #二元高斯分布的中心(10,10)
cov = [[1,0.0],[0.0,1]]  # diagonal covariance, cov是一个协方差矩阵     cov = np.eye(2)
data = np.random.multivariate_normal(mean,cov,5000) #生成一个多元正态分布矩阵

plt.plot(gdata[:,0],gdata[:,1],'+',c='blue')
print(np.corrcoef(gdata[:,0],gdata[:,1]))

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来回答你的问题。 首先是频数分布直方图的实现Python中可以使用matplotlib库来实现频数分布直方图。下面是一个简单的例子: ```python import matplotlib.pyplot as plt import numpy as np # 生成随机数据 data = np.random.randn(1000) # 绘制直方图 plt.hist(data, bins=30, density=True) # 显示图形 plt.show() ``` 其中,`data`是我们要绘制直方图的数据,`bins`表示直方图的柱子数量,`density=True`表示将直方图转换为概率密度图。 接下来是拆分多个正态分布曲线的实现。 可以使用scipy库中的`stats`模块来实现正态分布曲线的拟合。下面是一个简单的例子: ```python import matplotlib.pyplot as plt import numpy as np from scipy.stats import norm # 生成随机数据 data = np.concatenate([np.random.normal(-1, 1, 500), np.random.normal(2, 0.5, 500)]) # 绘制直方图 plt.hist(data, bins=30, density=True) # 拟合正态分布曲线 mu1, std1 = norm.fit(data[data < 0]) mu2, std2 = norm.fit(data[data >= 0]) # 绘制正态分布曲线 x = np.linspace(-5, 5, 1000) y1 = norm.pdf(x, mu1, std1) y2 = norm.pdf(x, mu2, std2) plt.plot(x, y1, label='Norm 1') plt.plot(x, y2, label='Norm 2') # 显示图形 plt.legend() plt.show() ``` 其中,`data`是我们要拟合正态分布曲线的数据,`norm.fit`方法返回拟合出的正态分布的均值和标准差,`norm.pdf`方法用于计算正态分布曲线上的点的纵坐标。 希望以上内容对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值