さあ、Pythonで機械学習!Vol.1

2017.08.09

Lab研究員 北山

今回は、プログラミング言語「Python(パイソン)」をご紹介したいと思います。

■なぜ、Python?

Pythonは機械学習に便利なパッケージ(ライブラリ)が数多く提供されていますが、それだけではありません。

こちらのPythonコードをご覧ください。
配列Xの平均を求めています。

x = [1, 2, 3, 4, 5]
# 平均を求めるループ処理
n = len(x)total = 0.0
for i in range(0,n):# 標本のループ
  total += x[i]
xbar = total/n

よくあるループ処理ですが、Python は、この処理を1行で書くことができます。

# 平均を求める
xbar = a.T.dot(x)

詳細は後ほどご説明します。
このようにPythonは、わかりやすくシンプルで少ない行数でプログラムを書けることに加えて、Linux、Windows、OSXなどのマルチプラットフォームに対応し、Webアプリケーションフレームワークなどデータ解析以外の機能も充実しています。

■Pythonをインストールしてみよう

今回は、Windows10にPythonをインストールしてみます。

PythonにはAnacondaという科学技術演算、数学、データ分析などで利用されるパッケージがあらかじめ組み込まれたディストリビューションがあり、効率よくセットアップが行えることから、多くのPython開発者が利用しています。今回はこちらをインストールします。

なお、PythonのバージョンにはPython2系とPython3系がありますが、今回はPython3を使用します。

【Windows版のインストール手順】

1.Anacondaをダウンロード

ダウンロードサイトにてインストーラをダウンロードします。

https://www.continuum.io

ダウンロードしたファイル(64bitの場合)
Anaconda2-4.3.1-Windows-x86_64.exe

2.インストーラを実行

インストーラを起動し、画面の指示に従ってインストールを行います。

■Pythonを実行しよう

1.Jupyter Serverを起動

インストールが完了すると、WindowsのスタートメニューにAnacondaが現れます。[Anaconda]から[Jupyter Notebook]を実行します。すると、次のようなJupyter Serverのコンソール画面が開きます。

Python001.png

しばらく待つとブラウザが立ち上がり、フォルダ一覧が表示されます。

Vol001-02.png

2.新しいNotebookを作成

Vol001-03.png

3.Pythonコードを入力

NotebookにPythonコードを入力してみます。

print('Hello World')

Vol001-05.png

4.Pythonコードを実行

Vol001-06.png

Hello World と表示されれば成功です!

5.Notebookの名前を変更

Vol001-07.png

Vol001-08.png

6.Notebookを閉じる

Vol001-09.png

7.フォルダ一覧にNotebookが作成される

Vol001-10.png

※Notebookは、"ipynb"という拡張子のファイルとして保存されます。

8.Jupyter Serverを終了
Jupyter Serverのコンソール画面で[Ctrl+C]を入力してしばらく待つと、
Serverが停止してコンソール画面が閉じます。

■Pythonを書いてみよう

Pythonのいくつかの基本的な構文をご紹介します。

変数

変数の明示的な型宣言は不要です。

# 整数
a = 1
# 浮動小数点
b = 3.5
# 文字列
c = 'ABCDEF'
# リスト
d = [1, 2, 3, 4, 5]
# タプル
e = (50, 40, 30, 20, 10)
# 辞書
f = {'Fuji': 3776, 'Everest': 8848, 'Kilimanjaro': 5895}

スライス

文字列やリスト、タプルなどをシーケンス型といいます。
スライスを使うと、シーケンスの要素を切り出すことができます。

スライスの書式: c[開始位置:終了位置:増分]

 # 1文字目から3文字目の前まで
print(c[1:3])
# 1文字目から1つ飛ばし
print(c[1::2])
# 末尾から前方へ
print(c[::-1])
# 4文字目から前方へ1文字目の前まで
print(c[4:1:-1])

(実行結果)

BC
BDF
FEDCBA
EDC

関数

Pythonは同じ数の空白でインデント(字下げ)された文をブロックとみなします。Pythonの構文ならではの大きな特徴の一つです。

# 関数
def add(x, y):
 r = x + y
 return r  # ← ここで関数のブロック終了

print( add(a,b))

(実行結果)

4.5

if文

f a == 0:
 print(f['Fuji'])
elif a == 1:
 print(f['Everest'])
else:
 print(f['Kilimanjaro'])

(実行結果)

8848

for文

シーケンス型の要素を順に繰り返します。

組込みのrange関数を使って、0から3までを繰り返し

for i in range(0, 4):
 print(i)


(実行結果)

0
1
2
3

連番付きの要素を得る

for i, j in enumerate(c):
 print(i, j)
 if i > 2: break


(実行結果)

0 A
1 B
2 C
3 D

複数のシーケンスをまとめてループ

for i, j, k in zip(c, d, e):
 print(i, j, k)


(実行結果)

A 1 50
B 2 40
C 3 30
D 4 20
E 5 10

■Jupyterの環境設定

この環境設定は必須ではありませんが、知っておくと、より効率よく操作できるかと思います。

Jupyterフォルダ一覧のデフォルト・ディレクトリを変更する

1.Jupyter Serverを停止

2.Anaconda Prompt画面を開く
Windowsスタートメニューの[Anaconda3]から[Anaconda Prompt]を実行します。

3.Jupyterコマンドで設定ファイルの場所を確認

           > jupyter --config-dir 
             C:\Users\username \.jupyter

4.Jupyter設定ファイルを生成

           > jupyter notebook --generate-config
             Writing default config to: 
             C:\Users\username \.jupyter\jupyter_notebook_config.py

5.Jupyter設定ファイルを編集

テキストエディタなどでJupyter設定ファイルを開き、
[c.NotebookApp.notebook_dir]にデフォルト・ディレクトリを設定します。

(jupyter_notebook_config.py)

            :
## The directory to use for notebooks and kernels.
c.NotebookApp.notebook_dir = u'C:\\Users\\username \\Documents\\Python'
            :

6.設定ファイルの変更を保存

7.Jupyter Serverを起動
デフォルト・ディレクトリが変更されていることを確認します。

※ディレクトリが変更されていない場合
・Jupyter Serverのコンソール画面にエラーが出ていないか確認する
・Jupyterの起動ショートカットのリンク先末尾にある %USERPROFILE%を削除する

Python2系とPython3系を切り替える

Pythonのバージョンの切り替えは、Anacondaで仮想環境を作成することで行ます。

1.Anaconda Prompt画面を開く

2.仮想環境を確認

> conda env list

3.仮想環境を構築

> conda create -name python2 python=2.7 anaconda

4.jupyter_environment_kernelsパッケージをインストール

> pip install environment_kernels

5.Jupyter設定ファイルを生成
Jupyter設定ファイルを作成していない場合は作成します。

> jupyter notebook --generate-config

6.Jupyter設定ファイルに項目を追加

(jupyter_notebook_config.py) 

           :
c.NotebookApp.kernel_spec_manager_class =  
'environment_kernels.EnvironmentKernelSpecManager'
c.EnvironmentKernelSpecManager.conda_env_dirs = 
[ u'C:\\Users\\username\\Anaconda3\\envs\\' ]

※usernameは適宜、書き換えます

7.Jupyter Serverを起動

8.Notebookを開く

ここでPythonのバージョンを確認しましょう。

import platform
print(platform.python_version())

Vol001-11.png

9.Pythonのバージョンを切り替える

Python3からPython2へ切り替えます。切り替わるまで少し時間がかかります。

Vol001-12.png

ここでPythonのバージョンを確認しましょう。

Python2へと切り替わっていることがわかります。

Vol001-13.png

今回は、Pythonの導入から基本的な使用方法をご紹介しました。

次回は、Python で平均値を求めます。