我想我有一個“愚蠢”的問題。我有一個計算 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 函數可以與某些特定參數成線性關系,還是我做錯了什么?
2 回答

慕村225694
TA貢獻1880條經驗 獲得超4個贊
不,它不可能是線性的。我沒有你的完整代碼,但試試
x = np.linspace(-3, 3)
y = sigmoid(x)
plt.plot(x, y)
看形狀

www說
TA貢獻1775條經驗 獲得超8個贊
您看到的是您繪制 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()
添加回答
舉報
0/150
提交
取消