LoginSignup
4

More than 5 years have passed since last update.

posted at

Pythonのお勉強1日目

ライブラリーを使わずに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> 

実施に出力されたデータ点は下記の通リ。
figure_1.png

今日はここまで。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
4