专栏首页机器学习入门Python数据可视化之高斯分布

Python数据可视化之高斯分布

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中,我们通过坐标变换来求得任意的高斯分布。

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}} 可视化数据样本点:

y = np.zeros((400))

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

可视化概率分布函数:

n, bins, patches = plt.hist(x, 50, normed=1, facecolor='r', alpha=0.75)
plt.axis([-5,5,0,1])
plt.show()

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

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()

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

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中,我们可以有如下形式:

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()

二维高斯分布模型

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

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()

参考文献

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 10分钟教你用python下载和拼接微信好友头像图片

    相信微信大家是用得再多也不过了。那么,对于python+微信,又能玩出什么新的花样呢?下面小编就给大家带来一个好玩的东西。用python下载所有的微信好友的头像...

    短短的路走走停停
  • 这里有8个流行的Python可视化工具包,你喜欢哪个?

    用 Python 创建图形的方法有很多,但是哪种方法是最好的呢?当我们做可视化之前,要先明确一些关于图像目标的问题:你是想初步了解数据的分布情况?想展示时给人们...

    CDA数据分析师
  • 这里有 8 个流行的 Python 可视化工具包,你喜欢哪个?

    用 Python 创建图形的方法有很多,但是哪种方法是最好的呢?当我们做可视化之前,要先明确一些关于图像目标的问题:你是想初步了解数据的分布情况?想展示时给人们...

    小小詹同学
  • 广告小程序后端开发(5.安装配置django-rest-framework,编写后台登录逻辑)

    玩蛇的胖纸
  • 独家 | 基于Python实现交互式数据可视化的工具(用于Web)

    这学期(2018学年春季学期)我教授了一门关于数据可视化的数据科学硕士课程。我们的数据科学硕士项目是一个为期15个月的强化项目,这个项目已经成功地培养了许多优秀...

    数据派THU
  • 13 个Python开发者必知的Python GUI库

    Python是一种高级编程语言,它用于通用编程,由Guido van Rossum 在1991年首次发布。Python 的设计着重于代码的可读性。

    昱良
  • 突发!Java首度承认失败,愿永久服软Python!网友:好想哭!

    最近,这个格局已经被悄然打破,正是被来自曾经的小弟,新晋网红Python给硬生生拽下神坛。对此,Java曾表示强烈质疑,最近一份数据榜单悄悄来了!

    AI科技大本营
  • leecode刷题(27)-- 合并k个排序链表

    以前做过合并两个有序链表的问题,所以刚开始想到的解法与之类似,我们可以先合并两个有序链表,再用合并的新链表去合并第三个链表:

    希希里之海
  • 自然语言处理背后的数据科学

    NLP是人与机器之间的沟通,使得机器既可以解释我们的语言,也可以就此作出有效回答。自20世纪50年代以来,这个领域一直存在,你可能听说过Alan Turing开...

    CDA数据分析师
  • Github标星过万,Python新手100天学习计划,这次再学不会算我输!

    作为目前最火也是最实用的编程语言,Python不仅是新手入门程序界的首选,也逐渐成为了从大厂到小厂,招牌需求list的必要一条。

    磐创AI

扫码关注云+社区

领取腾讯云代金券