Bohrium
robot
新建

空间站广场

论文
Notebooks
比赛
课程
Apps
我的主页
我的Notebooks
我的论文库
我的足迹

我的工作空间

任务
节点
文件
数据集
镜像
项目
数据库
公开
Bk1_Ch26_05可视化二元高斯分布PDF
Book_1_《编程不难》 | 鸢尾花书:从加减乘除到机器学习
Book_1_《编程不难》 | 鸢尾花书:从加减乘除到机器学习
会飞的超级老乔
发布于 2024-06-02
推荐镜像 :Basic Image:bohrium-notebook:2023-04-07
推荐机型 :c2_m4_cpu
可视化二元高斯分布PDF

Chapter 26

可视化二元高斯分布PDF

Book_1《编程不难》 | 鸢尾花书:从加减乘除到机器学习

代码
文本
[ ]
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import multivariate_normal
代码
文本
[ ]
rho_array = [-0.9, -0.7, -0.5, -0.3,
0, 0.3, 0.5, 0.7, 0.9]
代码
文本
[ ]
sigma_X = 1; sigma_Y = 1 # 标准差
代码
文本
[ ]
mu_X = 0; mu_Y = 0 # 期望
代码
文本
[ ]
width = 4
X = np.linspace(-width,width,321)
Y = np.linspace(-width,width,321)
XX, YY = np.meshgrid(X, Y)
XXYY = np.dstack((XX, YY))
代码
文本
[ ]
# 曲面
fig = plt.figure(figsize = (8,8))
for idx, rho_idx in enumerate(rho_array):
# 质心
mu = [mu_X, mu_Y]
# 协方差
Sigma = [[sigma_X**2, sigma_X*sigma_Y*rho_idx],
[sigma_X*sigma_Y*rho_idx, sigma_Y**2]]
# 二元高斯分布
bi_norm = multivariate_normal(mu, Sigma)
f_X_Y_joint = bi_norm.pdf(XXYY)
ax = fig.add_subplot(3,3,idx+1,projection='3d')
ax.plot_wireframe(XX, YY, f_X_Y_joint,
rstride=10, cstride=10,
color = [0.3,0.3,0.3],
linewidth = 0.25)

ax.contour(XX,YY, f_X_Y_joint,15,
cmap = 'RdYlBu_r')

ax.set_xlabel('$x$'); ax.set_ylabel('$y$')
ax.set_zlabel('$f_{X,Y}(x,y)$')
ax.view_init(azim=-120, elev=30)
ax.set_proj_type('ortho')

ax.set_xlim(-width, width); ax.set_ylim(-width, width)
ax.set_zlim(f_X_Y_joint.min(),f_X_Y_joint.max())
# ax.axis('off')
plt.tight_layout()
# fig.savefig('二元高斯分布,曲面.svg', format='svg')
plt.show()
代码
文本
[ ]

代码
文本
Book_1_《编程不难》 | 鸢尾花书:从加减乘除到机器学习
Book_1_《编程不难》 | 鸢尾花书:从加减乘除到机器学习
点个赞吧
本文被以下合集收录
Book_1_《编程不难》 | 鸢尾花书:从加减乘除到机器学习
会飞的超级老乔
更新于 2024-06-06
210 篇3 人关注
推荐阅读
公开
Bk1_Ch26_04可视化一元高斯分布概率密度函数
Book_1_《编程不难》 | 鸢尾花书:从加减乘除到机器学习
Book_1_《编程不难》 | 鸢尾花书:从加减乘除到机器学习
会飞的超级老乔
发布于 2024-06-02
公开
Bk1_Ch25_03可视化正定性
Book_1_《编程不难》 | 鸢尾花书:从加减乘除到机器学习
Book_1_《编程不难》 | 鸢尾花书:从加减乘除到机器学习
会飞的超级老乔
发布于 2024-06-02