16. 高斯分布函数实现及绘图#

16.1. 介绍#

朴素贝叶斯实验中提到了高斯分布,本次挑战通过 Python 实现高斯分布函数,并使用 Matplotlib 绘制不同参数下的高斯分布图像。

16.2. 知识点#

  • 高斯分布公式

  • 高斯分布函数

16.3. 高斯分布公式#

在朴素贝叶斯的实验中,我们知道可以依照特征数据类型,在计算先验概率时对朴素贝叶斯模型进行划分,并分为:多项式模型,伯努利模型和高斯模型。而在前面的实验中,我们使用了多项式模型来完成。

很多时候,当我们的特征是连续变量时,运用多项式模型的效果不好。所以,我们通常会采用高斯模型对连续变量进行处理,而高斯模型实际上就是假设连续变量的特征数据是服从高斯分布。其中,高斯分布函数表达式为:

\[ P=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x-\mu) ^{2}}{2\sigma ^{2}}) \tag{1} \]

其中 \(\mu\) 为均值,\(\sigma\) 为标准差。

Exercise 16.1

挑战:参考高斯分布公式,使用 Python 实现高斯分布函数。

"""实现高斯分布函数
"""
import numpy as np


def Gaussian(x, u, d):
    """
    参数:
    x -- 变量
    u -- 均值
    d -- 标准差

    返回:
    p -- 高斯分布值
    """
    ### 代码开始 ### (≈ 3~5 行代码)
    p = None

    return p
    ### 代码结束 ###

运行测试

x = np.linspace(-5, 5, 100)
u = 3.2
d = 5.5
g = Gaussian(x, u, d)

len(g), g[10]

期望输出

(100, 0.030864654760573856)

实现高斯分布函数之后,我们可以使用 Matplotlib 绘制出不同参数下的高斯分布图像。

Exercise 16.2

挑战:按规定的参数绘制高斯分布图像。

规定:

  • 绘制 4 组高斯分布线形图像,\(\mu\)\(\sigma\) 分别为:(0, 1), (-1, 2), (1, 0.5), (0.5, 5)

  • 4 组高斯分布图像的线形颜色分别为红色、蓝色、绿色、黄色。

  • 绘制图例,并以 \(u=\sigma\) 样式呈现。

from matplotlib import pyplot as plt

%matplotlib inline

## 代码开始 ### (≈ 5~10 行代码)

## 代码结束 ###

期望输出

image