ぺーぺーSEのブログ

備忘録・メモ用サイト。

機械学習環境の構築 Python編

主に以下の2つの方法がある。

  1. Pythonインストールからライブラリ取得まで自前でやる
  2. Anacondaを使う

基本的には前者で自分なりの環境を作っていくのが普通だが、
Windows環境だとライブラリのバイナリが提供されてなかったり、
pipインストールするときにコンパイルの環境が無かったりと何かとウザイ。

純粋にPython機械学習環境を手早く作成したいなら後者でおk。

Pythonインストールからライブラリ取得まで自前でやる

  1. Pythonをインストールする
  2. pip、setuptoolsを更新する
    • python -m pip install -U pip setuptoosl」(Windowsの場合)
    • pip install -U pip setuptoosl」(Windows以外)
    • pipはPython 2.7.9以降、Python 3.4以降にはデフォルトでインストールされている
    • pipのインストールはこちら
  3. 必要なライブラリをpip installする
    • (例)「pip install numpy

必要なライブラリがわからない場合は、後述の「データ分析系ライブラリ・ツール」を参照のこと。
また、pip installするとその場でライブラリのコンパイルが走る。
そしてコンパイル環境が無い場合はエラーでコケル。
コンパイル環境構築が面倒な人は事前に「pip install wheel」してここからwheel形式のライブラリをダウンロードしてきて 「pip install xxx.whl」してもよい。(ただし、非公式)
wheel形式は事前にコンパイルしてくれているパッケージ。

Anacondaを使う

Anacondaは、Continuum Analytics社によって提供されている、Python 本体に加え、科学技術、数学、データ分析など、よく利用されるPythonパッケージを一括でインストール可能にしたパッケージ。
ダウンロードはここ
含まれるライブラリ・パッケージの情報はここ
また、最小限の構成のみのminicondaというものもある。

conda

Anacondaをインストールすると「conda」というパッケージ管理システム・コマンドが利用できるようになり、720以上のパッケージに対応している。
また、バージョン管理や仮想環境管理にも利用でき、pyenv/virtualenv/venvの代わりとしても利用できる。
condaは下記のように利用する。

  • conda update conda」を実行してcondaを最新に
  • conda update anaconda」を実行してanacondaを最新に
  • conda install パッケージ名」を実行してパッケージをインストール

condaに存在しないパッケージはpipで導入してもおk。

データ分析系ライブラリ・ツール

Pythonで機械学習・深層学習などのデータ分析を行う場合は、以下ようなのライブラリ・パッケージ・ツールを組み合わせて行う。

  • インタラクティブシェル/統合分析環境
    • IPythonJupyter Notebook(旧IPython Notebook)、Rodeo
  • 数値計算を効果的に
    • NumPy
  • データ操作
    • Pandas
  • 統計・最適化・積分・線形代数など科学技術計算
    • Scipy
  • 機械学習
  • 強化学習
    • PyBrain
  • 自然言語処理
    • NLTK(Natural Language Toolkit)
  • トピックモデル
    • gensim
      • N-gramなどの作成にも有効
  • 画像処理
    • Pillowscikit-imageOpenCV
  • 深層学習:
    • TheanoCaffeTensorFlowChainer
      • TensorFlowChainerがオススメ
      • (他は開発が止まり気味だったり、Python3未対応だったり)
      • メリデメはここを参照。
      • Theano と TensorFlow の ラッパーに Kerasというのがある
  • 分散処理
    • PySpark
  • レコメンド
    • consensus
  • データ可視化・グラフ描画
    • Matplotlibseaborn
  • シミュレーション
    • SimPy

分析にscikit-learn、分析結果の可視化にMatplotlib、のように組み合わせて使うとよい。