• 高斯分布可视化


    高斯分布

    基本概念

    服从一元高斯分布的一组样本 X = ( x 1 , x 2 , … , x n ) X=(x_1,x_2,\dots,x_n) X=(x1,x2,,xn),其中每一个样本都是一个随机数值。但是在多元高斯分布中,每一个样本不是一个数值,而是多维的随机向量,每一个样本都是p维:
    x = [ x 1 x 2 ⋮ x p ] \pmb{x}=[x1x2xp] xx= x1x2xp
    假设有n个样本,每一个都是p维,那么可以表示成:
    X = [ x 11 x 12 ⋯ x 1 p x 21 x 22 ⋯ x 2 p ⋮ ⋮ x n 1 x n 2 ⋯ x n p ] \pmb{X}=[x11x12x1px21x22x2pxn1xn2xnp] XX= x11x21xn1x12x22xn2x1px2pxnp
    如何去表示这样的样本矩阵?使用多维高斯分布!!

    均值参数表示成:
    μ = [ μ 1 μ 2 ⋮ μ p ] \pmb{\mu}=[μ1μ2μp] μμ= μ1μ2μp
    多维高斯分布的方差参数表示成协方差矩阵(协方差矩阵表示里面不同随机变量的相关性):
    Σ = [ σ 11 σ 12 ⋯ σ 1 p σ 21 σ 22 ⋯ σ 2 p ⋮ ⋮ σ n 1 x n 2 ⋯ σ p p ] \pmb{\Sigma}=[σ11σ12σ1pσ21σ22σ2pσn1xn2σpp] ΣΣ= σ11σ21σn1σ12σ22xn2σ1pσ2pσpp
    概率密度函数:
    p ( x ∣ θ ) = 1 ( 2 π ) p 2 ∣ Σ ∣ 1 2 e x p [ − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ] p(x|\theta)=\frac{1}{(2\pi)^{\frac{p}{2}}|\Sigma|^{\frac{1}{2}}}exp[-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)] p(xθ)=(2π)2p∣Σ211exp[21(xμ)TΣ1(xμ)]

    二元高斯分布的实例:

    可以看到,不同协方差矩阵和不同均值的高斯分布在形状上是不一样的。而且呈椭圆分布,越接近椭圆中心,样本密度越大;反之越稀疏。而且,协方差矩阵的特征值与椭圆的长短轴的长度有关系,而协方差矩阵的特征向量和椭圆的长短轴的方向有关:

    
    # -*- coding: utf-8 -*-
    # @Use     : 
    # @Time    : 2022/8/24 19:22
    # @FileName: Gaussian.py
    # @Software: PyCharm
    
    import numpy as np
    import matplotlib.pyplot as plt
    
    mean_1 = np.array([0, 0])
    conv_1 = np.array([[1, 0],
                      [0, 1]])
    
    mean_2 = np.array([0, -5])
    conv_2 = np.array([[4, 0],
                      [0, 0.25]])
    
    mean_3 = np.array([4, 4])
    conv_3 = np.array([[4, -3],
                      [-3, 0.25]])
    
    x_1, y_1 = np.random.multivariate_normal(mean=mean_1, cov=conv_1, size=2000).T
    x_2, y_2 = np.random.multivariate_normal(mean=mean_2, cov=conv_2, size=2000).T
    x_3, y_3 = np.random.multivariate_normal(mean=mean_3, cov=conv_3, size=2000).T
    
    plt.plot(x_1, y_1, 'ro', alpha=0.05)
    plt.plot(x_2, y_2, 'bo', alpha=0.05)
    plt.plot(x_3, y_3, 'go', alpha=0.05)
    
    plt.gca().axes.set_xlim(-10, 10)
    plt.gca().axes.set_ylim(-10, 10)
    plt.grid(ls='--')
    plt.show()
    
    #求协方差矩阵的特征值和特征向量
    evalue. evevtor = linalg.eig(conv1)
    evalue. evevtor = linalg.eig(conv2)
    evalue. evevtor = linalg.eig(conv3)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    在这里插入图片描述

  • 相关阅读:
    与目前主流的消费返利平台对比,共享购模式有什么优势呢?
    地方/园区产业规划之 “ 如何进行产业定位 ”
    【python基础】生成式、装饰器、高阶函数
    【设计模式】十、组合模式
    echart 两个柱状图并列,共用一个y轴的label
    SpringBoot原理篇
    JAVA小游戏 “拼图”
    最好的开放式蓝牙耳机有哪些?排名前五的开放式耳机五强
    爬虫-(4)
    pm2使用
  • 原文地址:https://blog.csdn.net/KPer_Yang/article/details/126511506