数学之美_正态分布(Python代码)
1 在概率统计中,我们针对某个事件当中各个样本发生的概率的频率进行统计,用一个函数的形式写出的这个概率的频率函数就叫做分布函数。
2 分布函数顾名思义,就是某个连续事件发生频率的汇总表示。再直白一点儿来说,就是一堆事情我们把他们堆砌起来只管的去观察他们的组合特点就叫分布。
3 这种组合特点有很多种,我们很多时候用图像的形式表示出来,而且针对不同组合的这种图像出现了二项分布、伯努利分布、正态分布等等分布,其实就是把近似于某种组合特点的图像的差别进行分别研究他们的性质等。这里用到的是近似,因为根据iid(独立同分布)的这种性质,任何图形不可能百分比跟我们所观察的这种分布一样,但是随着样本的不断增加,观察的这种组合会越来越近似的趋于某一种分布图像。
4 在分布中,我们在很多软件中我们会看到这种图像
其中一根一根的紫色柱子就叫概率频率,其实求分布就是在求概率频率,什么叫做概率频率呢?比如一个样本有1000个数值,如果这个样本中存在各种重复(或者不重复都一样)把他们在这1000个数值中出现的次数进行记录,然后把这些次数按照数值的大小进行正负和大小排列起来就是形成了某种图像,然后我们把每种图像的每一个最高点进行连线,就是叫密度曲线。其实这个很好理解。
5 我们对于不同的分布,都会对应一个这种分布的标准形式,然后这个标准形式会对应一个分布函数。其实从上面我们就知道,这个分布函数就是求概率频率的值。给函数一个值,返回给你一个概率值,然后把这些值按照大小,出现次数堆砌起来就是这个分布图像。
6 最常见的就是如上图,曲线跟一个佛堂里面的鈡的外形很像,这个就叫做正太的分布,也叫正太分布,英文叫Normal Distribution。如果都是一一对应,左右对称的样子,那么它就叫做标准正太分布。(但是在处理实际问题的时候很少会遇到标准的正太分布,实际图像近似于这种分布,而且如果是正太的这种分布,随着你样本的不断增加,会无限趋近于标准正太分布,这也叫所谓渐进无偏性。)。这里的正太分布还有一个名字叫做“高斯分布”Guass Distribution,都是一会儿事儿。我们发现高斯大神在数学领域那个地方随时能见到他的身影。要不说是数学王子呢。
7 废话少说,对应每种分布我们先把他的分布函数写出了:
这个函数我们看到可以写做两种形式我们知道方差开方等于标注差,这就不用多说了。
另外,我们另方差为方差为1,均值为0,这个公式变形为如下形式:
这个玩意儿就叫做标准正太分布,也就是上面那个图像的样子。但是平时的分布如果不太标准的话,就用上面两个式子。
8 我们用python来写一下这个代码:
Sample = []
i = 0
with open("Raw.txt", "r", encoding="utf-8") as f:
TS = f.readlines()
while i < len(TS):
Sample.append(int(TS[i]))
i += 1
i = 0 NorN = int(input("输入1位求非标准正太分布,输入0位求标准正太分布"))
import numpy as np
# 求非标准的正太分布
if NorN == 1:
# step 1 求样本的均值
i = 0
avg = 0
while i < len(Sample):
avg = avg + Sample[i]
i += 1
avg = avg / len(Sample)
# step 2 求样本的方差
sigma2 = np.var(Sample, 0)
# step 3 求密度函数
Func = []
i = 0
for i in Sample:
Func.append(round((np.exp(-0.5 * ((i - avg) / sigma2)) / (np.sqrt(2*np.pi*sigma2))), 4))
print(Func) if NorN == 0:
# step 1 求样本的均值
avg = int(input("请输入均值,标准为0"))
# step 2 求样本的方差
sigma2 = int(input("请输入方差,标准为1"))
# step 3 求密度函数
Func = []
i = 0
for i in Sample:
Func.append(round((np.exp(-0.5 * ((i - avg) / sigma2)) / (np.sqrt(2 * np.pi * sigma2))), 4))
print(Func) # 输入结果:
# 输入1位求非标准正太分布,输入0位求标准正太分布1
# [0.1173, 0.128, 0.1226, 0.1593, 0.0943, 0.0864, 0.0943, 0.1173, 0.1173, 0.1338, 0.0902, 0.1226, 0.1173, 0.0985, 0.1397,
# 0.1123, 0.1338, 0.1173, 0.1173, 0.1338, 0.1075, 0.1075, 0.128, 0.1226, 0.1123, 0.1173, 0.0943, 0.1226, 0.128, 0.1029, 0.128,
# 0.1338, 0.128, 0.1075, 0.1338, 0.1173, 0.1816, 0.1123, 0.1397, 0.1173, 0.1029, 0.1397, 0.1075, 0.1226, 0.1593, 0.0985, 0.1525,
# 0.1075, 0.1226, 0.1664, 0.1525, 0.0864, 0.1029, 0.1173, 0.1029, 0.1075, 0.1173, 0.1173, 0.1173, 0.128, 0.1123, 0.1123, 0.1029,
# 0.128, 0.1397, 0.1029, 0.128, 0.1123, 0.1173, 0.1397, 0.1338, 0.1029, 0.1123, 0.1593, 0.1123, 0.1029, 0.0943, 0.1123, 0.1173,
# 0.1029, 0.1338, 0.128, 0.1226, 0.1173, 0.1338, 0.0985, 0.128, 0.1397, 0.1075, 0.1397, 0.1075, 0.1123, 0.1397, 0.1123, 0.1123,
# 0.1123, 0.1029, 0.1029, 0.1226, 0.1173, 0.1029, 0.128, 0.1173, 0.1173, 0.1075, 0.0943, 0.1397, 0.0864, 0.1226, 0.1226, 0.1525,
# 0.1397, 0.1226, 0.1075, 0.0943, 0.0792, 0.1338, 0.146, 0.1173] # 输入结果:
# [0.3989, 1.0844, 0.6577, 13.2112, 0.0327, 0.012, 0.0327, 0.3989, 0.3989, 1.7879, 0.0199, 0.6577, 0.3989, 0.054, 2.9478, 0.242,
# 1.7879, 0.3989, 0.3989, 1.7879, 0.1468, 0.1468, 1.0844, 0.6577, 0.242, 0.3989, 0.0327, 0.6577, 1.0844, 0.089, 1.0844, 1.7879,
# 1.0844, 0.1468, 1.7879, 0.3989, 59.2083, 0.242, 2.9478, 0.3989, 0.089, 2.9478, 0.1468, 0.6577, 13.2112, 0.054, 8.013, 0.1468,
# 0.6577, 21.7815, 8.013, 0.012, 0.089, 0.3989, 0.089, 0.1468, 0.3989, 0.3989, 0.3989, 1.0844, 0.242, 0.242, 0.089, 1.0844, 2.9478,
# 0.089, 1.0844, 0.242, 0.3989, 2.9478, 1.7879, 0.089, 0.242, 13.2112, 0.242, 0.089, 0.0327, 0.242, 0.3989, 0.089, 1.7879, 1.0844,
# 0.6577, 0.3989, 1.7879, 0.054, 1.0844, 2.9478, 0.1468, 2.9478, 0.1468, 0.242, 2.9478, 0.242, 0.242, 0.242, 0.089, 0.089, 0.6577,
# 0.3989, 0.089, 1.0844, 0.3989, 0.3989, 0.1468, 0.0327, 2.9478, 0.012, 0.6577, 0.6577, 8.013, 2.9478, 0.6577, 0.1468, 0.0327, 0.0044,
# 1.7879, 4.8601, 0.3989]
9 我们少说了一点儿就是直方图和正态分布图。
(1) 直方图表现的是频数、正态分布图表现的是频率。
(2) μ(均值)的大小是影响正太曲线的左移和右移的关系;sigma2(方差)的大小是影响正太曲线的胖瘦。
数学之美_正态分布(Python代码)的更多相关文章
- 机器学习_决策树Python代码详解
决策树优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据: 决策树缺点:可能会产生过度匹配问题. 决策树的一般步骤: (1)代码中def 1,计算给定数据集的香农熵: ...
- 代码规范 & 数学之美读后感
代码规范链接:https://zh-google-styleguide.readthedocs.io/en/latest/contents/ 数学之美读后感 一开始看名字我以为是一本讲数学是怎么发展的 ...
- Python基础篇(三)_函数及代码复用
Python基础篇_函数及代码复用 函数的定义.使用: 函数的定义:通过保留字def实现. 定义形式:def <函数名>(<参数列表>): <函数体> return ...
- Python代码样例列表
扫描左上角二维码,关注公众账号 数字货币量化投资,回复“1279”,获取以下600个Python经典例子源码 ├─algorithm│ Python用户推荐系统曼哈顿算法实现.py│ ...
- 六行python代码的爱心曲线
前些日子在做绩效体系的时候,遇到了一件囧事,居然忘记怎样在Excel上拟合正态分布了,尽管在第二天重新拾起了Excel中那几个常见的函数和图像的做法,还是十分的惭愧.实际上,当时有效偏颇了,忽略了问题 ...
- PEP 8 - Python代码样式指南
PEP 8 - Python代码样式指南 PEP: 8 标题: Python代码风格指南 作者: Guido van Rossum <python.org上的guido>,Barry Wa ...
- Python代码整洁之道(一)
很多新手在开始学一门新的语言的时候,往往会忽视一些不应该忽视的细节,比如变量命名和函数命名以及注释等一些内容的规范性,久而久之养成了一种习惯.对此呢,我特意收集了一些适合所有学习 Python 的人, ...
- 【路径规划】 Optimal Trajectory Generation for Dynamic Street Scenarios in a Frenet Frame (附python代码实例)
参考与前言 2010年,论文 Optimal Trajectory Generation for Dynamic Street Scenarios in a Frenet Frame 地址:https ...
- 一个 11 行 Python 代码实现的神经网络
一个 11 行 Python 代码实现的神经网络 2015/12/02 · 实践项目 · 15 评论· 神经网络 分享到:18 本文由 伯乐在线 - 耶鲁怕冷 翻译,Namco 校稿.未经许可,禁止转 ...
随机推荐
- 51nod 1105:第K大的数
1105 第K大的数 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 数组A和数组B,里面都有n个整数.数组C共有n^2个整数,分别是A[0] * ...
- list的泛型
更新记录 [1]2020.02.12-21:26 1.完善内容 正文 在学习list集合时,我看到书上写list的格式时 List<E> list = new ArrayList<& ...
- HTML笔记及案例
- 了解什么是标记语言 - 了解HTML主要特性,主要变化以及发展趋势 - 了解HTML的结构标签 - 掌握HTML的主要标签(字体,图片,列表,链接,表单等标签) ### 1.网站信息页面 #### ...
- 发送邮件的几种方法(C#发邮件 和 js前台实现都有)C#后台自动发邮件 js发邮件
1.后台自动发邮件 1)首先设置邮件参数,这里写在configuration里面 <appSettings> <add key="SMTP" value=&quo ...
- 关于torch.norm函数的笔记
先看一下它的参数: norm(p='fro', dim=None, keepdim=False, dtype=None) p: the order of norm. 一般来说指定 $p = 1, 2$ ...
- argv从控制台输入多个参数
arg多个参数: #!/usr/bin/env python3 import sys #控制台要输入的两个参数格式为:python script_name.py 参数1 参数2 input_file= ...
- css3 实现渐变边框
(1)一个渐变的底边线border:1px solid transparent;border-image: -webkit-linear-gradient(right, #FF9848,#FF2A2B ...
- salt教程1-理解saltstack
https://docs.saltstack.com/en/getstarted/system/index.html 1 基本介绍 通过观察它的实际运行,你可以大致理解salt如何工作.这意味着,在控 ...
- Condition接口及其主要实现类ConditionObject源码浅析
1.引子 任意一个Java对象,都拥有一组监视器方法(定义在java.lang.Object上),主要包括wait().wait(long timeout).notify()以及notifyAll() ...
- Vue 指令 v-text v-html
有三个指令达到的效果是一样的 {{JS表达式}} 差值表达式 v-text="JS表达式" v-html="JS表达式" //会自动解析tag js表达式 ...