核心概念
多元高斯分布: 维随机向量的概率分布,由均值向量
和协方差矩阵
定义,概率密度函数为:
其中:
:
维数据点向量
:
维均值向量
:
协方差矩阵
:协方差矩阵的行列式
解题思路
- 参数提取:从输入字典获取数据点、均值向量和协方差矩阵
- 概率计算:使用
scipy.stats.multivariate_normal.pdf
计算概率密度 - 结果格式化:将结果四舍五入到两位小数
代码解析
import numpy as np
from scipy.stats import multivariate_normal
def calculate_pdf(data):
# 提取输入参数并转换为NumPy数组
x = np.array(data["x"]) # 数据点向量
mu = np.array(data["mu"]) # 均值向量
sigma = np.array(data["sigma"]) # 协方差矩阵
# 计算多元高斯分布概率密度
pdf = multivariate_normal.pdf(x, mean=mu, cov=sigma)
# 四舍五入保留两位小数
return round(pdf, 2)
# 主程序
data = eval(input()) # 读取输入字典
print(calculate_pdf(data))
关键函数说明
multivariate_normal.pdf(x, mean, cov)
:
- 功能:计算多元高斯分布概率密度
- 参数:
x
:数据点向量mean
:均值向量cov
:协方差矩阵
- 返回值:概率密度值(浮点数)
数学原理
- 马氏距离:
- 衡量数据点与均值的距离,考虑特征相关性
- 归一化常数:
- 确保概率密度积分为1
- 指数项:
- 控制概率密度随距离衰减的速率
应用场景
- 异常检测:低概率密度点可能是异常值
- 聚类分析:高斯混合模型的基础组件
- 数据生成:基于概率密度生成新样本
- 模式识别:分类器的概率输出
复杂度分析
- 时间复杂度:
:特征维度
- 主要开销:矩阵求逆和行列式计算
- 空间复杂度:
- 存储协方差矩阵
总结
本题实现了多元高斯分布概率密度的计算:
- 使用
scipy.stats.multivariate_normal
高效计算概率密度 - 处理不同维度的输入数据
- 结果格式化保留两位小数
- 可广泛应用于用户行为分析、异常检测等场景