高斯分布Gaussian概率密度函数:
其中,σ为总体标准差,μ为总体均值。
"""
@Title: Gaussian distribution
@Time: 2024/2/18
@Author: Michael Jie
"""
import numpy as np
from numpy import random
class MjGaussian:
def __init__(self):
self.data_sets = None # 数据
self.mu = 0 # 均值
self.sigma = 0 # 标准差
# 计算符合数据集的高斯分布
def calculating(self, data_sets):
data_sets = np.array(data_sets)
self.mu = np.sum(data_sets) / len(data_sets) # 均值
for data_set in data_sets:
self.sigma += (abs(data_set - self.mu)) ** 2
self.sigma = np.sqrt(self.sigma / len(data_sets)) # 标准差
# 计算概率
def gaussian(self, x):
return (1 / (np.sqrt(2 * np.pi) * self.sigma)) * \
np.exp(-((x - self.mu) ** 2) / (2 * self.sigma ** 2))
if __name__ == '__main__':
data = random.normal(loc=0, scale=2, size=10000)
print("数据集为:{x}".format(x=data))
mj_gaussian = MjGaussian()
mj_gaussian.calculating(data)
print("数据集的均值为:{mu}".format(mu=mj_gaussian.mu))
print("数据集的标准差为:{sigma}".format(sigma=mj_gaussian.sigma))
"""
数据集为:[ 2.41444529 -3.0405191 0.49136134 ... -1.97885873 0.80926748
3.47828956]
数据集的均值为:0.03061806508840724
数据集的标准差为:1.9761535640834953
"""