核心概念

多元高斯分布 维随机向量的概率分布,由均值向量 和协方差矩阵 定义,概率密度函数为: 其中:

  • 维数据点向量
  • 维均值向量
  • 协方差矩阵
  • :协方差矩阵的行列式

解题思路

  1. 参数提取:从输入字典获取数据点、均值向量和协方差矩阵
  2. 概率计算:使用 scipy.stats.multivariate_normal.pdf 计算概率密度
  3. 结果格式化:将结果四舍五入到两位小数

代码解析

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. 马氏距离
    • 衡量数据点与均值的距离,考虑特征相关性
  2. 归一化常数
    • 确保概率密度积分为1
  3. 指数项
    • 控制概率密度随距离衰减的速率

应用场景

  1. 异常检测:低概率密度点可能是异常值
  2. 聚类分析:高斯混合模型的基础组件
  3. 数据生成:基于概率密度生成新样本
  4. 模式识别:分类器的概率输出

复杂度分析

  • 时间复杂度
    • :特征维度
    • 主要开销:矩阵求逆和行列式计算
  • 空间复杂度
    • 存储协方差矩阵

总结

本题实现了多元高斯分布概率密度的计算:

  1. 使用 scipy.stats.multivariate_normal 高效计算概率密度
  2. 处理不同维度的输入数据
  3. 结果格式化保留两位小数
  4. 可广泛应用于用户行为分析、异常检测等场景