用 python 绘制正态分布曲线

作者: 橙子LifeX | 来源:发表于2017-03-14 13:45 被阅读3177次

打开 jupyter notebook

import pandas as pd # 导入另一个包“pandas” 命名为 pd,理解成pandas是在 numpy 基础上的升级包
import numpy as np #导入一个数据分析用的包“numpy” 命名为 np
import matplotlib.pyplot as plt # 导入 matplotlib 命名为 plt,类似 matlab,集成了许多可视化命令

#jupyter 的魔术关键字(magic keywords)
#在文档中显示 matplotlib 包生成的图形
# 设置图形的风格
%matplotlib inline 
%config InlineBackend.figure_format = 'retina'
data = pd.read_csv('stakes.csv') #载入数据文件
data.head(5) #查看前5个头部数据
len(data) #查看数据长度
89
time = data["time"] #把数据集中的 time 定义为 time
#mean均值,是正态分布的中心,把 数据集中的均值 定义为 mean
mean = time.mean()
mean
149.22101123595513
#S.D.标准差,把数据集中的标准差 定义为 std
std = time.std()
std
1.6278164717748154
#正态分布的概率密度函数。可以理解成 x 是 mu(均值)和 sigma(标准差)的函数
def normfun(x,mu,sigma):
    pdf = np.exp(-((x - mu)**2)/(2*sigma**2)) / (sigma * np.sqrt(2*np.pi))
    return pdf
概率密度函数公式
# 设定 x 轴前两个数字是 X 轴的开始和结束,第三个数字表示步长,或者区间的间隔长度
x = np.arange(142,157,0.1) 
#设定 y 轴,载入刚才的正态分布函数
y = normfun(x, mean, std)
plt.plot(x,y)
#画出直方图,最后的“normed”参数,是赋范的意思,数学概念
plt.hist(time, bins=10, rwidth=0.9, normed=True)
plt.title('Time distribution')
plt.xlabel('Time')
plt.ylabel('Probability')
#输出
plt.show()

对于正态分布的理解

  1. 把直方图和正态分布曲线放在一起看的时候,会发现不同的直方图组数会有完全不同的效果,上图采用的组数为10,如果把组数增加到40就会变成下图。因为样本数为89,并不是很大,所以看起来好像分布并不是很规则,只是有回归正态分布的倾向,如果增加样本数量的话,跟抛硬币一样,n 足够大的时候,也许会更加接近正态分布。所以数据的规律是一点点的呈现的,数据量越大,就越容易验证假说,找到规律,这也就是“大数据”的力量。
  1. 正态分布是很比较常见的,我觉得在数据分析中需要注意的是分布的变化,比如:原本认为应该符合正态分布的数据,结果不太符合,会不会有什么问题没有考虑到?或者出现了某种干扰因素。另外在对比两个不同数据集的差异时,也可以观察他们的正态分布情况,均值的差异和波动性的差异,可以反应出很多问题。

本文为 泰阁志-解密大数据 第三次作业,了解更多请关注微信“泰阁志”

关于 python 与 jupyter notebook,包括 magic keyword,参考了@鱼心 的教程:

相关文章

  • 用 python 绘制正态分布曲线

    打开 jupyter notebook 对于正态分布的理解 把直方图和正态分布曲线放在一起看的时候,会发现不同的直...

  • 瑞德学习R语言day07

    曲线绘制 dnorm(x, mean = 0, sd = 1, log = FALSE) 的返回值是正态分布概率密...

  • PPT版式设计第18期:PPT中的曲线设计

    今天和大家聊聊PPT中的曲线设计。 上图中的曲线是用PPT绘制的,也是本例设计的重点技能,曲线弧形的绘制,那绘制这...

  • 使用Python绘制白噪声序列

    导言 假设我们想用Python程序模拟并绘制白噪声过程 ,其中每一个 均服从独立正态分布,在绘制的图像中,横轴为...

  • 机器学习入门笔记系列(11) | 异常检测

    一、高斯分布 高斯分布又称为正态分布。高斯分布用函数描述 。其中 是平均值, 是方差。正态分布的 决定了曲线的...

  • CGContextSaveGState: invalid con

    用CAShapeLayer 绘制曲线时,报错信息如下: CGContextSaveGState: invalid ...

  • 自学Python:绘制余弦曲线

    用Python程序来画标准的图线是最标准了,下面试着绘制一条0~360°(2π)的余弦函数cos(x)曲线。 下面...

  • python学习第三天

    可视化展示 绘制曲线图 绘制饼图 绘制散点图 字典解析和集合解析 字典解析和列表推导式很像 集合解析 python...

  • 正态分布曲线

    付费专栏:第一讲几乎100%的人完成阅读,从第一讲到最后一讲学习过程中的完成阅读的人数逐渐变少如果将完成阅读的总讲...

  • caffe之loss曲线绘制

    Python 训练caffe之loss曲线绘制,以mnist为例:blog.csdn.net/Running_J/...

网友评论

  • 吃葡萄的小兔纸:这广告猝不及防哈哈哈 我也来~
    解答了我关于normed疑问 感谢~
  • 894bd9f703e5:想一想为什么很多时候要把样本假设成正太分布,整体分布有什么优良的特性?
  • TheTiger:数值计算中常用的技术就是拟合,可以用来作这些事
    TheTiger:@橙子LifeX 其实到不是必须的,这些慢慢来
    橙子LifeX:@泰阁志 哦哦,貌似我应该看看推荐书目,谢谢小虎
  • TheTiger:当数据大到一定程度后,再继续增加也不会提升,有一个瓶颈。
    橙子LifeX:@泰阁志 嗯,有道理
  • 鱼心DrFish:另外直方图并不能很好的判断是否是正态分布,如果用图形来看的话,最好是CDF图。
    橙子LifeX:@鱼心fishstar :smile:谢谢余博点评
    橙子LifeX:@鱼心fishstar 查了一下,CDF是PDF的积分,慢慢学
  • 鱼心DrFish:赞!首发!注释很完整!好习惯,继续保持!
    hist中的normed没那么高深,就是吧直方图纵坐标中的频数变成频率,仔细观察坐标轴,和第一课的作业比较。
    昆明石头:从图形中看,所有直方图的频率之和大于1,按理应该是小于等于1。这是为什么呢???
    橙子LifeX:@鱼心fishstar 哦哦,明白了,纵坐标不同了

本文标题:用 python 绘制正态分布曲线

本文链接:https://www.haomeiwen.com/subject/brthnttx.html