前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python数据可视化之高斯分布

Python数据可视化之高斯分布

作者头像
用户1147447
发布2019-05-26 19:42:21
2.4K0
发布2019-05-26 19:42:21
举报
文章被收录于专栏:机器学习入门机器学习入门

Python数据可视化之高斯分布

一维高斯分布模型

高斯分布:

N(μ,δ2)=1δ2π−−√e−(x−μ)22δ2

N(\mu,\delta^2) = \frac {1}{\delta\sqrt{2\pi}} e^{-\frac{(x-\mu)^2}{2\delta^2}}

Python实现

在python中,我们通过坐标变换来求得任意的高斯分布。

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt

x = np.random.randn(400)

其中np.random.randn(400)生成400个符合正态分布的样本点,背后的生成模型为:

N(0,1)=12π−−√e−x22

N(0,1)=\frac {1}{\sqrt{2\pi}} e^{-\frac{x^2}{2}} 可视化数据样本点:

代码语言:javascript
复制
y = np.zeros((400))

plt.plot(x,y,'ro')
plt.axis([-5,5,-0.1,0.2])
plt.show()
Alt text
Alt text

可视化概率分布函数:

代码语言:javascript
复制
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='r', alpha=0.75)
plt.axis([-5,5,0,1])
plt.show()
Alt text
Alt text

当增大数据样本点时,上述样本分布近似于高斯分布:

代码语言:javascript
复制
x = np.random.randn(100000)
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='r', alpha=0.75)
plt.axis([-5,5,0,1])
plt.show()
Alt text
Alt text

通过坐标变化画出任意高斯分布模型,令

f(x)=12π−−√e−x22

f(x)= \frac {1}{\sqrt{2\pi}} e^{-\frac{x^2}{2}} 其中np.random.randn()函数生成了大量的x点。所以我们可以让

x=x′−μδ

x = \frac {x'-\mu}{\delta} 代入f(x)f(x)得

f(x′−μδ)=1δ2π−−√e−(x−μ)22δ2

f(\frac {x'-\mu}{\delta}) = \frac {1}{\delta\sqrt{2\pi}} e^{-\frac{(x-\mu)^2}{2\delta^2}} 我们不考虑纵轴的变化情况。因此要想得到任意的高斯分布模型,我们只需要解出x′x'即可,解得x′=μ+δxx' = \mu + \delta x

又因为xx由np.random.randn()生成,所以在python中,我们可以有如下形式:

代码语言:javascript
复制
mu,delta= 70,4.2
x = mu + delta * np.random.randn(100000)
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='r', alpha=0.75)
plt.axis([50,100,0,0.5])
plt.show()
Alt text
Alt text

二维高斯分布模型

对应的,只需要生成符合正态分布的x和y即可,代码如下:

代码语言:javascript
复制
mu_x,delta_x= 70,4.2
mu_y,delta_y = 20,2.1
x = mu_x + delta_x * np.random.randn(400)
y = mu_y + delta_y * np.random.randn(400)

plt.plot(x,y,'ro')
plt.axis([50,90,10,30])
plt.show()
Alt text
Alt text

参考文献

1.http://matplotlib.org/users/pyplot_tutorial.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年11月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python数据可视化之高斯分布
    • 一维高斯分布模型
      • Python实现
        • 二维高斯分布模型
          • 参考文献
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档