読者です 読者をやめる 読者になる 読者になる

old school magic

機械学習と統計とプログラミングについてちょっとずつ勉強していきます。

MacでPythonの機械学習環境構築(2014年5月版)

Python 機械学習

この記事は古くなっています。
最新版の記事はこちらになります。


MacでPythonの機械学習環境構築(2015年2月版) - old school magic

概要

MacPythonの管理と環境構築の備忘録です。
色々試してみて今の形に落ち着いたのですが、コロコロ変わりそうな気もするので日付をつけときます。
簡単にまとめるとこんな感じです。

前回はこんな感じだったのでだいぶ変わりました。

前準備

バージョン管理システムはhomebrewを用います。
ソフトウェアをまとめて管理(インストールやアップデート、削除等)するためのソフトです。
homebrewについては次の解説が参考になります。

  • 公式

Homebrew — The missing package manager for OS X

  • インストール、使い方

MacOSX - パッケージ管理システム Homebrew - Qiita

# homebrewのインストール
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

Pythonの導入・管理

pyenvを用います。
yyuu/pyenv · GitHub
Pythonをバージョンごとに個別に管理するためのソフトです。
Pythonに関して言えば、一つのPythonをアップデートして使うより、バージョンごとにPythonの環境を構築したほうが良いと思います。*1

# pyenv のインストール
brew install pyenv

pyenvを使う前に環境変数を設定してあげる必要があります。
.bash_profileに次のコマンドを書き足します。

# 環境変数の設定
export PATH="$HOME/.pyenv/shims:$PATH"

pyenvは様々なバージョンのPython(やサードパーティ)に対応しています。
次のコマンドでインストールできるPythonの種類を確認できます。

# pyenvでインストールできるPythonの確認
pyenv install -l

例えば、(2014年5月時点で)最新版のPython 3.4.0は、

pyenv install 3.4.0

でインストールできます。
デフォルトではユーザディレクトリの.pyenv以下にインストールされます。

機械学習ライブラリの構築

機械学習ライブラリとして、Anacondaを使います。
Anaconda Scientific Python Distribution

Python機械学習ライブラリだと、

  • numpy
  • scipy
  • matplotlib
  • scikit-learn

あたりが定番なのですが、Anacondaはここらへんをひとまとめにしてインストールしてくれます。個別にインストールするよりすごい楽です。iPythonとか便利ツールもインストールしてくれます。

Anacondaはpyenvでインストールできます。

# Anacondaのインストール
# 数百Mあるので結構時間かかります。10分くらい?
# バージョンは適宜最新版に書き換えてください
pyenv install anaconda-1.9.1

インストールしたらおまじない(再ハッシュ)しましょう。

pyenv rehash

pyenvでは使用するバージョンのPythonを選択できます。
先程インストールしたAnacondaに設定する場合は、

# 使用するPythonの選択
pyenv local anaconda-1.9.1
pyenv global anaconda-1.9.1

といった感じです。
ローカル環境とグローバル環境で使い分けられます。が、とりあえずは両方同じPythonに設定しておきます。

その他、pyenvでよく使うコマンドは

# 現在使ってるPythonの確認
pyenv version
# インストールされてるPythonの確認
pyenv versions
# Pythonのアンインストール
pyenv uninstall

あたりです。詳しくはここに。
pyenv/COMMANDS.md at master · yyuu/pyenv · GitHub

AnacondaでインストールされるPythonは2系です。
3系を使いたい場合はここから一手間入ります。

# Anaconda自体のアップデート
conda update conda
# Python3なAnacondaのインストール
conda create -n py33 python=3.3 anaconda
# 現在のターミナルをPython3+Anacondaに設定
source ~/anaconda/bin/activate py33

py33というのは環境名というもので、好きな名前を付けても大丈夫です。

なお、このままだとAnaconda+Python3を使用したい時、毎回

source ~/anaconda/bin/activate py33

とコマンドを打たなければいけません。

解決策ですが、私はiPythonを使う派なので、こんな感じでエイリアスしました。*2

# ipython3 で Python3+Anaconda+iPythonを起動できるように設定
# .bash_profileに書き加えてあげてください
alias ipython3="source ~/.pyenv/versions/anaconda-1.9.1/bin/activate py33; ipython"

参考
Python 3 support in Anaconda
AnacondaでPython3.3 - Qiita

これでPython3+機械学習環境が整いました。

余談

開発環境はSublime Text 3 + iPython (+ iTerm2)を使用してます。

*1:Pythonをアップデートするとpipでインストールしたソフトがまるまる死んで面倒なので。

*2:直接パスを通すという手もありますが、それだとpyenvで切り替えられなくなるので...