【入門者・初心者向け】【随時更新】Pythonで機械学習や統計モデリングをしたい方のための環境構築まとめ

f:id:lib-arts:20190127194618p:plain

Pythonを用いたプログラミングについて色々と書いていますが、環境構築についてがメインの記事が今までなかったのでこちらにまとめられればと思います。入門者・初心者向けに解説させていただく機会もしばしばあるので、その内容も踏まえた上で随時ベストエフォートの更新を行っていければと考えています。(なかなか目的・目標やスキルのレベル感も違うので統一していくのが難しい内容なのですが、それぞれの人に最適な環境にできればと思います)

以下目次になります。

1. 環境構築にあたっての前提

2. OSごとの環境構築

3. Jupyterでの動作確認

4. 目的に応じた追加パッケージのインストール

5. 環境構築が終わった後の推奨記事

 

1. 環境構築にあたっての前提

1節では環境構築にあたっての前提知識についてまとめておきます。そもそも環境構築とは何かですが、プログラム言語を実行する環境を整えるということです。PythonではJupyterという対話型の実行環境があるので初学にあたっての勉強やデモ用に最適です。

f:id:lib-arts:20190127200810p:plain

Jupyterを導入することで、上記のように対話型でプログラミングを学習していくことができます。こちらの記事の目標としては、Jupyterを導入した上でそれぞれの目的に基づいて環境を構築するところにおきます。

大枠の目的が把握できたところで2節ではOSごとの環境構築に移りたいと思います。

 

2. OSごとの環境構築

MacOSの場合

趣味程度でとにかく動かしてみたい場合はAnacondaの導入で十分だと思います。

 上記サイトからAnacondaをインストールすることができます。インストーラの手順に従うことで導入することができます(基本はデフォルト設定で十分だと思います)。

 

※ pyenv+virtualenv環境の方が自由度は高いのでこちらもおすすめですが、ある程度慣れてきたタイミングでプロジェクトを複数行いたいなどあればまた構築し直すでも十分かと思います。下記にpyenv+virtualenvの手順をまとめておきます。

A. ソースのダウンロード

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

まずターミナルを開き、上記に従って開発元からソースを落とします。~/はホームディレクトリ、.は隠しフォルダを意味しているのでホームディレクトリ下に.pyenvという隠しフォルダを作成しそちらにpyenvのフォルダを作成することを意味しています。

B. pyenvのパス設定

$ echo "export PYENV_ROOT=$HOME/.pyenv" >> ~/.bashrc
$ echo export PATH=$PYENV_ROOT/bin:$PATH >> ~/.bashrc
$ echo eval "$(pyenv init -)" >> ~/.bashrc
$ echo eval "$(pyenv virtualenv-init -)" >> ~/.bashrc
$ source ~/.bashrc

上記を実行することでpyenvのパスの設定を行います。

C. Pythonのインストール

$ pyenv install -l

上記を実行するとインストール可能なPythonのバージョンリストが確認できますが、新しすぎるメリットはさほどないので、以下では3.6.3を前提としていきます。(最新版は不具合などのデメリットもあるので、少し前のもので基本は十分だと思います)

$ pyenv install 3.6.3

上記のインストールを行い、3.6.3をインストールします。

D. Pythonのバージョン設定

$ pyenv versions

* system
  3.6.3

pyenv versionsを実行すると上記のようになるので「$ pyenv global 3.6.3」を実行することで、全体の環境を3.6.3に変更します。

$ pyenv versions

  system
* 3.6.3

上記のようになれば成功です。virtualenvを用いた方法についてはここでは割愛します。

 

Windowsの場合

Downloads - Anaconda

基本的にはAnaconda一択で考えていて良いと思います。

 

◆ Anacondaを用いる際の注意

Pythonのバージョンが3.7.0を用いた場合にモジュールのインストールなどでエラーが起きる可能性があるので、トラブルの際は3.6.xなどへのダウングレードも試してみてください。

Frequently asked questions — Anaconda 2.0 documentation

 

Linuxの場合

pyenv+virtualenvで良いと思います。手順についてはMacOSのところで記載した物を参考にしていただけたらと思います。(Linux前提であれば細かい解説は不要だと思われるので省略します)

 

3. Jupyterでの動作確認

Pythonのパッケージ管理コマンドとしてはpipがあり、これによりPyPIに上がっているパッケージを「$ pip install モジュール名」というコマンド一つで導入することができます。

PyPI – the Python Package Index · PyPI

pipコマンドについてはAnacondaもしくはpyenvを導入した際に使用できるようになっています。3節ではJupyterが使えれば十分なので、Anacondaを入れた場合はそのまま、pyenvを入れた場合は「$ pip install jupyter」でJupyterをインストールして次に進んでください。

Jupyterの立ち上げに関しては、ターミナル(Windowsの場合はAnaconda Prompt)から「$ jupyter notebook」と打つことで立ち上げることができます。

f:id:lib-arts:20190127200639p:plain

ブラウザ上に上記のようなFinderライクなUIが出てくるので右上のNewボタンで、Python3を選択し、Jupyterのファイルを生成します。生成したファイルにおいて上記のように実行確認を行ってPythonが使えるようになっているか確認してください。

f:id:lib-arts:20190127200810p:plain

上記のような動作確認が取れれば一旦OKなので、起動したターミナル(Anaconda Prompt)を一旦閉じてください。

 

4. 目的に応じた追加パッケージのインストール

3節ではJupyterを起動して諸々確認を行いましたが、機械学習や統計モデリングをする際に専用のモジュールを入れることがあります。この際にAnacondaでは大体プリインで入っているのですが、場合によっては入っていないこともあります。

その際にAnacondaの場合は「conda install パッケージ名」、pyenvの場合は「pip install パッケージ名」で追加で導入することができます。とはいえ毎回確認するのは面倒なので、基本はスクリプトを動かす際に「xxx not found」などが出てからインストールするなどでも十分だと思います。

ちなみにこの際の注意点は二点で、一点目はGitHubなどからリポジトリごと落としてきた際はそもそもそのリポジトリの実装のパスを読んでいる可能性があり、そちらのパスの不具合である可能性があることと、二点目としてはPyPIでのモジュール名がimport文に現れるものと違う可能性があるのでパッケージが見つからない際は「xxx PyPI」などで検索してモジュールを探す必要があることです。

上記に気をつければ大体のトラブルは解決できるかと思います。

 

5. 環境構築が終わった後の推奨記事

色々と実行例試したいと思うので、過去書いたもののリンクを貼っておきます。

FizzBuzzPythonプログラミング(基本)

【入門者向け】FizzBuzzを通して掴むPythonプログラミングの概要|Python入門 #1 - lib-arts’s diary

-> FizzBuzz問題を題材に簡単にPythonを用いたベーシックなプログラミングを解説しています。FizzBuzzはシンプルな一方でプログラミングの基本の要素のほとんどが入った非常にいい問題なので、入門者も必ず抑えたい内容です。

 

・言語処理シリーズ(応用)

NLP カテゴリーの記事一覧 - lib-arts’s diary

-> 言語処理系の諸々についてまとめているので興味があれば試してみていただけたらと思います。

 

・TPOT(応用)

TPOT(Code Reading)|Implementing Original AutoML #1 - lib-arts’s diary

AutoMLの実装例の一つであるTPOTを実際に実行してみることができます。