k01ken’s b10g

He110 W0r1d!

matplotlibでシグモイド関数を描画する

開発環境はWindows7 Professional(32bit)+ActivePython 2.7.10.12。
事前にnumpyとmatplotlibをインストールしておくこと。

シグモイド関数は、-∞~∞の値を0~1の範囲内で表すことができる特徴があります。

# -*- conding:utf-8 -*-

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-6,6,0.1)
y = np.zeros(len(x)) # 値を入れるために初期化しておく

for i in range(len(x)):
	y[i] = 1.0 / (1.0 + np.exp(-x[i]))

plt.plot(x,y)
plt.show()

描画した画像↓
f:id:k01ken:20171219152525p:plain

np.arangeの-6~6の幅をどんどん伸ばしていくほど、中央部分の曲線が、ステップ関数のように、直角になっていく。-6~6を-150~150にすると、

f:id:k01ken:20171219155010p:plain

形状を変えないで、データ量を増やしたい場合は、np.arangeの第3引数の0.1の部分を、0.01,0.001などとより細かく刻むことで、形状は変わらずに、データ量は増やせる。

参考リンク
シグモイド関数 - Wikipedia