猿问

sigmoid函数图可以是线性的吗?

我想我有一个“愚蠢”的问题。我有一个计算 sigmoid 函数的 python 代码:


def sigmoid(z):    

    return 1 / (1 + np.exp(-z))

我想看看什么样的图形是给定数据的 sigmoid 函数,所以我将函数更改为:


def sigmoid(z):

    s = 1 / (1 + np.exp(-z))

    plt.plot(s)

    plt.title("Sigmoid")

    plt.show()

    return s

我得到的是:

数据取自https://www.kaggle.com/azzion/credit-card-fraud-detection-using-neural-network

所以问题是:sigmoid 函数可以与某些特定参数成线性关系,还是我做错了什么?


千万里不及你
浏览 302回答 2
2回答

慕村225694

不,它不可能是线性的。我没有你的完整代码,但试试 x = np.linspace(-3, 3) y = sigmoid(x) plt.plot(x, y)看形状

www说

您看到的是您绘制 sigmoid 的范围的伪影。考虑以下三个绘图范围。正如您将看到的,第一个图看起来或多或少是线性的。此外,当你这样做时,你只是在绘制sigmoid plt.plot(s)。所以基本上你扔掉了你这样做之间s的所有关系。z您应该将因变量和自变量绘制为ax.plot(z, s)fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(14, 3))z1 = np.linspace(0, 1, 100)z2 = np.linspace(-5, 5, 100)z3 = np.linspace(-50, 50, 100)def sigmoid(z, ax):    s = 1 / (1 + np.exp(-z))    ax.plot(z, s)    ax.set_title("Sigmoid")    return for ax, z in zip(axes.flatten(), [z1, z2, z3]):    sigmoid(z, ax)plt.tight_layout()    
随时随地看视频慕课网APP

相关分类

Python
我要回答