使用Python生成Sigmoid函数的等高线图
发布时间:2023-12-11 04:54:47
Sigmoid函数是一种常用的激活函数,用于将输入值映射到0到1之间。它的定义是:
$$
f(x) = \frac{1}{1 + e^{-x}}
$$
在Python中,我们可以使用numpy库来生成Sigmoid函数的等高线图。下面是一个完整的例子:
import numpy as np
import matplotlib.pyplot as plt
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 生成x和y的范围
x = np.linspace(-10, 10, 100)
y = np.linspace(-10, 10, 100)
# 生成meshgrid
X, Y = np.meshgrid(x, y)
# 计算对应网格点的z值
Z = sigmoid(X)
# 绘制等高线图
plt.contourf(X, Y, Z, levels=20, cmap='RdBu_r')
# 绘制等高线图的轮廓线
C = plt.contour(X, Y, Z, levels=[0.5], colors='black')
# 添加轮廓线的标签
plt.clabel(C, inline=True, fontsize=10)
# 添加标题和坐标轴标签
plt.title('Sigmoid Contour Plot')
plt.xlabel('x')
plt.ylabel('y')
# 显示图像
plt.show()
在上面的代码中,我们首先定义了Sigmoid函数sigmoid(x)。然后,我们生成了x和y的范围,并使用np.meshgrid生成了网格点坐标矩阵X和Y。接下来,我们使用Sigmoid函数计算对应网格点的值,得到Z矩阵。
然后,我们使用plt.contourf函数绘制了等高线图,并使用levels参数指定了等高线的数量。cmap参数指定了等高线图的颜色映射,这里我们使用了Red-Blue色谱。
接下来,我们使用plt.contour函数绘制了等高线图的轮廓线,将等高线的高度设为0.5。使用colors参数可以指定轮廓线的颜色。
最后,我们使用plt.clabel函数为轮廓线添加标签,并使用inline参数指定标签是否显示在轮廓线上,fontsize参数指定标签的字体大小。
最后,我们添加了标题和坐标轴标签,并使用plt.show函数显示图像。
运行以上代码,将会生成一个带有Sigmoid函数等高线的图像。图像的颜色越深表示Sigmoid函数的值越大。轮廓线表示Sigmoid函数的值为0.5的区域,可以看到这个区域将图像分成了两部分。
使用Sigmoid函数的等高线图可以帮助我们直观地理解Sigmoid函数的性质,以及它在机器学习中的应用。
