参考書籍
『ゼロから作るDeep Learning Pythonで学ぶディープラーニングの理論と実践』
(2016年/著者:斎藤康毅/発行人:ティム・オライリー/発行所:株式会社オライリー・ジャパン)

C言語を用いた機械学習方法のまとめの続きです。


Pythonで機械学習のシステムを実装する方法をまとめていこうと思っていたのですが、最近忙しかったのと中々Pythonの理解が追いつかなくて時間が経ってしまいました。

今後は上記の書籍を参考にDeepLearningの理論についてまとめていきたいと思います。
 

少しずつ作業をしておりましてコマンドプロンプト上でPythonの実行の仕方を把握することが出来たのですが、機械学習に必要不可欠なnumpyなどのライブラリをimportする方法が不明でした。
今回進捗がいい所まで進んだ為、まとめていきます。
 
pythonの端末上で
以下のコマンドでエラーが出たら、numpyがインストールされてことになる。
 
> import numpy

一旦普通の端末画面に戻り、以下のコマンドでインストールをする。
 
$ pip install numpy
 
 
以下、numpyを使って演算してみた結果を少し掲載。
C:\PythonPJ\sample20161106>python
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (
Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named numpy
>>> import numpy as np
>>> x = np.array([1.0, 2.0, 3.0])
>>> y = np.array([2.0, 4.0, 6.0])
>>> x + y
array([ 3.,  6.,  9.])
>>> x - y
array([-1., -2., -3.])
>>> x * y
array([  2.,   8.,  18.])
>>> x / y
array([ 0.5,  0.5,  0.5])
>>>
>>> x / 2.0
array([ 0.5,  1. ,  1.5])

>>> A = np.array([[1, 2], [3, 4]])
>>> print (A)
[[1 2]
 [3 4]]
>>> A.shape
(2, 2)
>>> A.dtype
dtype('int32')
>>> B = np.array([[3, 0], [0, 6]])
>>> A + B
array([[ 4,  2],
       [ 3, 10]])
>>> A * B
array([[ 3,  0],
       [ 0, 24]])

>>> printA
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'printA' is not defined
>>> print(A)
[[1 2]
 [3 4]]
>>> A * 10
array([[10, 20],
       [30, 40]])
>>> A = np.array([[1, 2], [3, 4]])
>>> B = np.array([10, 20])
>>> A * B
array([[10, 40],
       [30, 80]])
>>> X = np.array([[51, 55], [14, 19], [0, 4]])
>>> print(X)
[[51 55]
 [14 19]
 [ 0  4]]
>>> X[0]
array([51, 55])
>>> X[0][1]
55
>>> for row in X:
... print(row)
  File "<stdin>", line 2
    print(row)
        ^
IndentationError: expected an indented block
>>> for row in X:
...     print(row)
...
[51 55]
[14 19]
[0 4]
>>> X = X.flatten()
>>> print(X)
[51 55 14 19  0  4]
>>> X[np.array([0, 2, 4])]
array([51, 14,  0])
>>> X > 15
array([ True,  True, False,  True, False, False], dtype=bool)
>>> X[X>15]
array([51, 55, 19])
>>>
 
 
 

 
さて、次はmatplotlibをインストールする
 
 
C:\>pip install matplotlib
Collecting matplotlib
  Downloading matplotlib-1.5.3-cp27-cp27m-win32.whl (6.0MB)
    100% |################################| 6.0MB 112kB/s
Requirement already satisfied (use --upgrade to upgrade): numpy>=1.6 in c:\pytho
n27\lib\site-packages (from matplotlib)
Collecting pytz (from matplotlib)
  Downloading pytz-2016.7-py2.py3-none-any.whl (480kB)
    100% |################################| 481kB 966kB/s
Collecting python-dateutil (from matplotlib)
  Downloading python_dateutil-2.6.0-py2.py3-none-any.whl (194kB)
    100% |################################| 194kB 1.1MB/s
Collecting cycler (from matplotlib)
  Downloading cycler-0.10.0-py2.py3-none-any.whl
Collecting pyparsing!=2.0.4,!=2.1.2,>=1.5.6 (from matplotlib)
  Downloading pyparsing-2.1.10-py2.py3-none-any.whl (56kB)
    100% |################################| 61kB 2.3MB/s
Collecting six>=1.5 (from python-dateutil->matplotlib)
  Downloading six-1.10.0-py2.py3-none-any.whl
Installing collected packages: pytz, six, python-dateutil, cycler, pyparsing, ma
tplotlib
Successfully installed cycler-0.10.0 matplotlib-1.5.3 pyparsing-2.1.10 python-da
teutil-2.6.0 pytz-2016.7 six-1.10.0

書籍にあった例題を試しに端末上でやってみる。
 
C:\PythonPJ\sample20161106>python
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (
Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> x = np.arange(0, 6, 0.1)
>>> y = np.sin(x)
>>> plt.plot(x, y)
[<matplotlib.lines.Line2D object at 0x03B32990>]
>>> plt.show()

すると、以下の画面が出力される!!

pythonpic20161112


すげー!!これがmatplotlibの力か!
 
ちなみに上記の処理をpyファイルに書いて実行しようとしても上手く行かず。

現状の設定だと日本が記述されていてもダメだった。
エンコーディングの問題。

pyファイルを実行しようとすると、エラーが出力されるけど、さっきのグラフが出力されない。

もう少し検証が必要だけど端末上で書いて実行したほうが良さそう。

 
 
C:\PythonPJ\sample20161106>python sample20161112.py
  File "sample20161112.py", line 4
SyntaxError: Non-ASCII character '\x83' in file sample20161112.py on line 4, but
 no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
 
C:\PythonPJ\sample20161106>python sample20161112.py
  File "sample20161112.py", line 4
SyntaxError: Non-ASCII character '\xe3' in file sample20161112.py on line 4, but
 no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
 
C:\PythonPJ\sample20161106>python sample20161112.py
  File "sample20161112.py", line 4
SyntaxError: Non-ASCII character '\xe3' in file sample20161112.py on line 4, but
 no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
 
C:\PythonPJ\sample20161106>python sample20161112.py
 
C:\PythonPJ\sample20161106>python sample20161112.py


続きは次回です。