ライブラリーを使わずにPYTHONでニューラルネットワークを構築してみようを自分の環境でやってみたの1日目。
PRMLでニューラルネットワーク辺りまでを読んだので練習としてやってみる。
環境設定
ライブラリを使わずにと書いているが、当たり前のpythonライブラリは必要なようなので整える。
今回必要無いものも含まれてるが、このシリーズの後にPython機械学習プログラミングでもやろうよ思うので入れておいた。
pip install --upgrade pip
pip install NumPy
pip install SciPy
pip install scikit-learn
pip install pandas
pip install matplotlib
pip install ipython
matplotlib
のインストールには成功したのだが、実際使おうとimportすると(対話式とかで)エラーになった。
現象はここPython 3.3でmatplitlibとpylabを使おうとしたら RuntimeErrorと同じだったので設定ファイルmatplotlibrc
を作成してバックエンド設定を変更した。
自分の環境ではこんな感じになっている
python --version
Python 3.5.0
pip list
appnope (0.1.0)
cycler (0.10.0)
decorator (4.0.10)
gnureadline (6.3.3)
ipython (4.2.1)
ipython-genutils (0.1.0)
matplotlib (1.5.1)
networkx (1.11)
numpy (1.11.1)
pandas (0.18.1)
pexpect (4.1.0)
pickleshare (0.7.2)
pip (8.1.2)
ptyprocess (0.5.1)
pyparsing (2.1.5)
python-dateutil (2.5.3)
pytz (2016.4)
scikit-learn (0.17.1)
scipy (0.17.1)
setuptools (24.0.2)
simplegeneric (0.8.1)
six (1.10.0)
traitlets (4.2.2)
データ生成
データ生成に書いてある通りにそのままScikit-learnを使用した。
make_moon
で生成されたデータは200個のデータ点で、
- 2次元の変数
X
- それぞれの変数
X
に対するラベルy
(0 or 1)
の情報を持つ。
2つの半円状の2次元データになっていて、線形識別が付加なサンプルデータになっている。
ipython --pylab
Python 3.5.0 (default, Oct 17 2015, 16:12:04)
Type "copyright", "credits" or "license" for more information.
IPython 4.2.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
Using matplotlib backend: TkAgg
In [1]: import numpy as np
In [2]: import matplotlib.pyplot as plt
In [3]: from sklearn.datasets import make_moons
In [4]: np.random.seed(0)
In [5]: X, y = make_moons(200, noise=0.20)
In [6]: plt.scatter(X[:,0], X[:,1], s=40, c=y, cmap=plt.cm.Spectral)
Out[6]: <matplotlib.collections.PathCollection at 0x119813ef0>
今日はここまで。