old school magic

機械学習に関する備忘録です。

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

概要

MacPythonの管理と機械学習環境構築の備忘録です。
2015年2月版です。

簡単にまとめるとこんな感じです。

  • パッケージ管理システム : homebrew
  • Pythonの導入・管理 : pyenv
  • 機械学習ライブラリの構築 : Anaconda

前回は結構めんどくさかったのですが、各ライブラリのバージョンアップのお陰でかなり簡単にインストールできるようになりました。

前準備

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

  • 公式

Homebrew — The missing package manager for OS X

  • インストール、使い方

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

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

Pythonの導入・管理

Pythonの管理には、pyenvを使います。
yyuu/pyenv · GitHub
pyenvは、Pythonをバージョンごとに個別に管理するためのソフトです。
非常にややこしいPythonの環境構築を簡単にしてくれます。

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

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

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

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

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

例えば、(2015年2月時点で)最新版のPython 3.4.2は、

pyenv install 3.4.2

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

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

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

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

  • numpy
  • scipy
  • matplotlib
  • scikit-learn
  • pandas

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

Anacondaはpyenvでインストールできます。
2015年2月現在、AnacondaはPython2系のパッケージとPython3系のパッケージがあります。
Python 2系を使っている方は anaconda-2.1.0 を、Python3系を使っている方は anaconda3-2.1.0 をインストールしてください。

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

# Python2をベースにしたパッケージ
# Python2で仕様したい方はこちらをインストールしてください
pyenv install anaconda-2.1.0

# Python3をベースにしたパッケージ
# Python3で仕様したい方はこちらをインストールしてください
pyenv install anaconda3-2.1.0

以降の説明はPython3系を元に行います。

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

pyenv rehash

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

# 使用するPythonの選択
pyenv local anaconda3-2.1.0
pyenv global anaconda3-2.1.0

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

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

余談

pyenvでよく使うコマンドは

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

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

Pythonに関して言えば、一つのPythonをアップデートして使うより、バージョンごとに新しくPythonの環境を構築したほうが良いと思います。*1