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

old school magic

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

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

Python 機械学習

概要

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