【決定版】MacでPythonを使って『機械学習』を学ぶための環境構築

# はじめに

[![logo_horizontal.png](https://qiita-image-store.s3.amazonaws.com/0/130181/be63b003-0dfa-e1c1-9282-ca12b02f00a4.png)](http://www.kikagaku.co.jp/)


『**機械学習や人工知能を勉強したいけれども、プログラミングを学ぶ前の環境構築で躓いてしまう**』との声を多くいただき、**絶対に環境構築で失敗しないための記事**を執筆することになりました。
Pythonで機械学習の環境構築をする方法は１通りではなく、HomebrewやAnaconda、その他諸々の方法でインストールを試みることができます。
方法が複数あることは失敗しても他の方法で試せるためありがたいことですが、**初心者にとってはどの方法で環境構築をすれば良いか迷ってしまう原因**にもなってしまいます。

そこで、本記事では次のような方をターゲットに書いています。

* **Pythonを初めて使う方**
* Pythonはプロジェクトでなく**自分用で使う方**（要するに、仮想環境は不要な人）

失敗しない環境構築を行うためにも、ぜひこちらの記事を参考にしてみてください。

#### ご協力お願いします！

こちらの記事が参考になった方は、こちらの記事に『**いいね**』をしていただけると嬉しいです。

## 著者紹介

![02.jpg](https://qiita-image-store.s3.amazonaws.com/0/130181/32a1e616-fe1c-6ffa-fa7f-430138c52b3d.jpeg)

私は[**株式会社キカガク**](http://www.kikagaku.co.jp/)代表取締役の[**吉崎亮介**](http://blog.kikagaku.co.jp/)と申します。
現在は『[**機械学習・人工知能 脱ブラックボックスセミナー**](http://www.kikagaku.co.jp/services/seminar/)』や『[**機械学習のオンライン家庭教師**](http://www.kikagaku.co.jp/services/online-tutor/)』を運営しております。

#### 略歴

|所属|学科・部署|研究内容|賞罰|
|:--|:--|:--|:--|
|舞鶴高専|電子制御工学科|画像処理（AR）を研究||
|舞鶴高専|電気・制御システム工学専攻|ロボット工学・システム制御・最適化を研究|
|京都大学大学院|情報学研究科（[加納研](http://human.sys.i.kyoto-u.ac.jp/)）|製造業に向けた機械学習の応用研究|ADCHEM2016最優秀論文賞、[化学工学会技術賞](http://www2.scej.org/sis/awards/)|
|株式会社SHIFT|社長室|人工知能によるソフトウェアテスト自動化の研究|[CEDEC2016登壇](http://cedec.cesa.or.jp/2016/session/PRD/12366.html)|
|株式会社Carat|取締役兼COO|最適な旅程提案アプリ（自然言語処理・最適化）||
|[株式会社キカガク](http://www.kikagaku.co.jp/)|代表取締役社長|[機械学習・人工知能セミナー](http://www.kikagaku.co.jp/services/seminar/)や[オンライン家庭教師](http://www.kikagaku.co.jp/services/online-tutor/)||

#### 株式会社キカガク

[![logo_horizontal.png](https://qiita-image-store.s3.amazonaws.com/0/130181/be63b003-0dfa-e1c1-9282-ca12b02f00a4.png)](http://www.kikagaku.co.jp/)

機械学習や人工知能の教育サービスを提供


#### フォローお待ちしております

ビジネス目線の機械学習・人工知能の情報やオススメの参考書について発信しています。

代表取締役社長　吉崎 亮介
Twitter：[@yoshizaki_kkgk](https://twitter.com/yoshizaki_kkgk)
Facebook：[@ryosuke.yoshizaki](https://www.facebook.com/ryosuke.yoshizaki)
Blog：[キカガク代表のブログ](http://blog.kikagaku.co.jp/)

それでは、前置きが長くなりましたが、環境構築をはじめていきましょう！

# ローカル環境（Mac）

環境の違いにより、設定がうまくいく場合があります。
現在、私の手元のPCはMacの最新版OSが入っています。

・macOS Sierra 10.12.3

うまくいかない場合はこちらに合わせてみてください。

<img width="599" alt="スクリーンショット 2017-02-10 10.31.51.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/ab5294d2-e082-ecf1-c70e-41749d303e2c.png">



# Homebrewのインストール

**Homebrew**というパッケージマネージャーを導入します。
日頃プログラミングをしない方は聞き慣れないかもしれませんが、プログラミングの世界では「**Webで検索→インストール用のファイルをダウンロード→手元でインストールの実行**」と人間が行っていた作業を自動的にコマンド１つでできるような仕組みがあります。
それが「**パッケージマネージャー**」です。

これがあれば百人力。
プログラミングの世界に必要な**ソフトウェアをダウンロードからインストールまで**コマンド１つで行ってくれます。

Macでは「**Homebrew**」と呼ばれるパッケージマネージャーが有名であり、他にも「MacPorts」というものもありますが、最近のWeb情報はだいたいHomebrewで書いてあるので、**Homebrewの方がおすすめ**です。

## Homebrewのサイトへアクセス

まず、[**Homebrew**](http://brew.sh/index_ja.html)のサイトへアクセスします。

<img width="1127" alt="スクリーンショット 2017-02-09 20.05.56.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/b17d3675-fccc-f1fb-24bd-7314224a5bf0.png">

この**一番上のスクリプトをコピー**します。


## ターミナルを開く

プログラミングをする人にとっては当たり前の存在である「**ターミナル**」を使います。
「**黒い画面**」のあれです。

**spotlight**をお使いの方は「**ターミナル**」と検索すると、以下のような画面がでてくるので、これでEnterを押すと、ターミナルが立ち上がります。

<img width="725" alt="スクリーンショット 2017-02-09 20.12.35.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/0de318d6-1c80-9a96-c526-c4ed851bcbb9.png">


よくわからない場合は、macのFinderの左上の「**移動**」から「**アプリケーション**」を開いてください。


<img width="580" alt="スクリーンショット 2017-02-09 20.13.57.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/3ceeb9c6-23f3-e9bb-2339-601f0b38e0c5.png">


<img width="644" alt="スクリーンショット 2017-02-09 20.15.26.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/9b7c4779-83d5-3d5d-a35c-c30ae2a2d120.png">

<img width="1283" alt="スクリーンショット 2017-02-09 20.15.33.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/8ba86ccc-a1e8-c0ad-213a-28c9e1db7e95.png">

「**ユーティリティ**」の中に「**ターミナル**」があると思います。

開くとこのように**ターミナル**が立ち上がりました。

<img width="995" alt="スクリーンショット 2017-02-09 20.17.12.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/cfe970fd-c5cc-39ad-2e3b-a46fc0645cfe.png">

## ターミナルからHomebrewのインストール

それでは、先程のHomebrewをインストールしていきます。
インストールといっても、**ターミナルに先程のHomebrewでコピーしたスクリプトを貼り付けて、Enterを押すだけ**です。


<img width="988" alt="スクリーンショット 2017-02-09 20.17.23.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/ba05473f-a1ab-3839-19ba-3f1ba278a84e.png">


いかがでしょうか。非常に簡単ではないでしょうか。

途中で、このような画面になります。

<img width="991" alt="スクリーンショット 2017-02-09 20.17.33.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/cd3e667c-da09-f568-461d-457a4e35609d.png">

処理を続けるなら「Return」と書いてあるので、Enter(Return)を押します。

<img width="999" alt="スクリーンショット 2017-02-09 20.17.42.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/0bf30428-30f0-a5d4-95eb-f9233346c48f.png">

つぎに、パスワードの入力を求められるので、**Macで設定しているパスワード**を入力してください。
このとき、ターミナルが初めての方は「**文字を入力しても反映されない**」とエラーと間違われる方が多いのですが、ちゃんと文字が入力されているので、騙されたと思って文字を入力してEnterを押してみてください。
問題なければ、その次の処理に進むと思います。

<img width="906" alt="スクリーンショット 2017-02-09 20.22.56.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/996ff98d-e66a-7938-2cc1-60051e2de3b3.png">

５分ほど待つと、このようにインストールが完了します。

## HomeBrewが正しくインストールされているか確認

ターミナルで使用するコマンドは基本的に**Linux**と同じです。
※ Linuxはサーバーなどで多く使用されているOS(WindowsやMacの仲間)です。

そして、Homebrewを使ったコマンドは `brew` を使用します。

例えば、何かをインストールしたい場合はターミナルに以下のように入力します。

```bash:Homebrewを使ったソフトウェアのインストール
$ brew install ソフトウェア名
```

いかがでしょうか。
非常に直感的ではないでしょうか。

Homebrewさえ正しくインストールされていれば、上記のようなコマンドでソフトウェアを管理できます。
それでは、本題のHomebrewが正しくインストールされているか確認してみましょう。

```bash:Homebrewが正しくインストールされているか確認
$ which brew
```

これだけです。
この `which` というコマンドは、使用するコマンドの元となるプログラムがどこに保存されているかを調べるためのコマンドですが、これにより、インストールされていなければ何も保存されていないので、空白の文字が返ってきて、ちゃんとインストールされていれば、保存されている場所が返ってきます。

<img width="276" alt="スクリーンショット 2017-02-09 20.29.58.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/9ce7c31c-019b-bb7c-b4fa-8df9026f8df9.png">

このように、`/usr/local/bin/brew` という場所に保存されているよと返ってきたので、無事インストールできていることがわかります。
これで何も返ってこなかった方は正しくインストールできていないので、上記の手順をもう一度繰り返してみてください。


# Python3のインストール

Macの方はPythonが最初からインストールされているのですが、**最初からインストールされているPythonは2系**という日本語を扱うには多少面倒くさいバージョンですので、今回はPythonの3系をインストールしていきます（わからなければ特に気にされなくて大丈夫です）。

## Python3がインストールされていないことの確認

Python3がすでにインストールされている方はこの章の手順が不要です。
そのため、まずPython3がインストールされているかどうかを確認してみましょう。

先程、Homebrewで正しくインストールされているかの確認に使用した `which` コマンドを使います。

```bash:Python3がインストールされているか確認
$ which python3
```

<img width="230" alt="スクリーンショット 2017-02-09 20.35.25.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/b8eae59b-aafd-630a-550c-8d91e4b89850.png">

何も返ってこないため、インストールがされていないことが確認できます。
それでは、Python3をインストールしていきましょう。


## HomebrewでPython3をインストール

Homebrewを使えば、以下のコマンドひとつでインストールが完了します。

```bash:Python3をインストール
$ brew install python3
```

これでEnterを押すと、以下の画像のように続々とインストール用のコマンドが実行されていきます。

<img width="670" alt="スクリーンショット 2017-02-09 20.38.47.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/9cc63697-b272-d71e-759f-d81b7313749a.png">


そして、最終的に以下のような画面になるとインストール完了です。

<img width="877" alt="スクリーンショット 2017-02-09 20.39.37.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/e64de48e-358a-89ef-3350-7e8372839e2d.png">


インストールができているか確認しましょう。

```bash:インストールができているか確認
$ which python3
```

<img width="632" alt="スクリーンショット 2017-02-09 20.40.38.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/7471af7b-ec0d-cc85-0378-fa3442f039ac.png">

このように、python3が保存されている場所が返ってきたため、インストールが完了できています。

また、`python3` をHomebrew経由でインストールした際に `pip3` というコマンドも一緒にインストールされていると思います。

```bash:pip3がインストールされているか確認
$ which pip3
```

<img width="273" alt="スクリーンショット 2017-02-09 20.45.34.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/f9aff03f-1196-aadd-3b8b-7bf63d4f81ff.png">

この `pip3` とは、pythonの中で使用する **ライブラリ** と呼ばれる便利なツールを管理してくれるためのツールです。

#### よくある質問：Homebrewとpipって何が違うの？

`brew` も `pip3` も何かをインストールするために使うものですが、どうやって使い分けるのでしょうか？

答えは『**Macの中のソフトウェアのインストールがHomeBrew**』、『**Pythonの中のライブラリのインストールがpip**』です。

HomebrewがMac内で使用する `python3` や `pip3` などのソフトウェアを管理し、`pip3`がその`python3`で使用するためのライブラリを管理するといった構造になっています。

```
Homebrew
 |- python3
 |- pip3
     |- python3で使用するライブラリ...
 |- etc...
```

## Pythonのバージョンを確認

Python3をインストールしたのですが、その時々によって、インストールされるバージョンが変わります（基本的には最新のバージョンをインストールするため）。

ここで、私がインストールしたバージョンを確認しておきましょう。
※ これと全く同じでなくてもおそらく大丈夫です。

```bash:python3のバージョンの確認
$ python3 --version
```

<img width="527" alt="スクリーンショット 2017-02-09 20.42.55.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/a653e299-4c4d-3cf8-cf93-d0aae6af3049.png">

私のバージョンは`3.6.0`でした。
最初の数字が`3`から始まっていれば、基本的には大丈夫です。


## python3でよく使うライブラリをインストール

`numpy` (線形代数) や `scipy`（数式処理）、 `matplotlib` (プロット）、`pandas` （データベース） は、基本的に何をするにも必須のライブラリですので、インストールしておきましょう。

```bash:numpyとmatplotlibのインストール
$ pip3 install numpy  # 線形代数
$ pip3 install scipy  # 数式処理
$ pip3 install matplotlib   # 描画 
$ pip3 install pandas  # データ操作
```

数分程度でインストールが完了します。

# 機械学習で使用するライブラリのインストール

## scikit-learn

分類や予測のためのモデルが詰まった機械学習用パッケージです。
Pythonでのデータ分析ではほぼデファクトと言っても良い地位を得ています。

```bash:scikit-learnのインストール
$ pip3 install scikit-learn
```

## Chainer

ディープラーニング（ニューラルネットワーク）を実装する上で有名な国産のライブラリです。
日本語のリファレンスも豊富で、GoogleのTensorflowと並んで人気です。

```bash:Chainerのインストール
$ pip3 install chainer
```

## Jupyter notebook

お手軽にPythonを実行できる環境です。
初心者がプログラムの動作確認をするときは、このJupyter notebookを使うことをおすすめしています。

```bash:JupyterNotebookのインストール
$ pip3 install jupyter
```

これで『機械学習』を学ぶための環境構築は完了です。

# （おまけ）Atomのインストール

必要なソフトウェアのインストールは完了しましたが、もう少しスムーズにプログラミングをするために「**Atom**」と呼ばれる「**エディター**」をインストールします。
「**エディター**」とはよく見慣れたメモ帳と基本機能的には同じで、文字を書いて保存するためのものです。
しかし、近年のエディターは非常に進化しており、プログラミングが見やすくなるように色付けがされたり、ターミナルをエディター内に内蔵して、スムーズにプログラムを実行できたりします。

そのエディターの中でも、筆者の吉崎が最近推しているのが「**Atom**」です。
GitHub社が作っているということもあり、非常に扱いやすい上に安定しています。

Atomのインストールは[公式ページ](https://atom.io/)より、インストールファイルをダウンロードします。

<img width="1373" alt="スクリーンショット 2017-02-09 21.05.41.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/d5440382-1d12-d817-eb0c-7fb94cfa6daa.png">

ダウンロードしたファイルを展開（ダブルクリックすれば展開されます）し、展開できれば完了です。
このファイルを一番はじめにターミナルで説明したアプリケーションフォルダにコピーしておいてください。

<img width="159" alt="スクリーンショット 2017-02-09 21.07.39.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/32790775-bc92-7e69-ca9c-f8e881c642d3.png">

これでAtom自体のインストールは完了です。

Atomのアプリケーションを開くと、このような画面になります。

<img width="1558" alt="スクリーンショット 2017-02-09 21.09.52.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/37fcc7f6-0f62-86a5-c9c9-eff6b424b0af.png">

## Atomでオススメの設定

Atom内部の設定を簡単にしていきましょう。

開いて直後の右画面に出ている「Install a Package」を選択しましょう。

Welcome Guideを閉じてしまった方は、上部のツールバーから
「Atom」→「Preferences」→左下の「Install」
でも同じ画面にたどり着けます。

<img width="1099" alt="スクリーンショット 2017-02-09 21.12.17.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/a7ca1a45-a5d1-e6b3-061c-af5f7544e767.png">

こちらの検索画面で「terminal」と検索してください。

検索結果から「platformio-ide-terminal」をインストールしてください。
※ Xcodeをインストールしていない人はエラーがでるため、「AppStore」からXcodeをインストールして、再度Atom内でのインストールをお試しください。

<img width="1293" alt="スクリーンショット 2017-02-09 21.13.21.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/de0d52ee-d35d-17b1-6367-347dcd2d8e80.png">

これのインストールが完了すると、Atomのエディター内でターミナルを立ち上げることができ、プログラムを書く場所と実行する場所を一緒にできるため、開発が非常に楽になります。
『**生産性**』という言葉が大好きな方にはぜひおすすめしたい設定です。

<img width="1440" alt="スクリーンショット 2017-03-14 13.47.22.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/642f52e7-62f0-4b99-44c2-d36c557e34ad.png">

<img width="1440" alt="スクリーンショット 2017-03-14 13.47.27.png" src="https://qiita-image-store.s3.amazonaws.com/0/130181/758c5ed1-3c43-00bc-9ad4-28333dcfa54f.png">



# おわりに

Macでの環境構築、お疲れ様でした。
スムーズに環境構築を行うことができたでしょうか。

Homebrewを使用して、非常にスッキリした状態でインストールを行ったため、今後他のライブラリが必要になった際も `pip3` のコマンドを使えば、だいたいうまくいくので今後もご安心ください。

みなさまがこれから機械学習を学ばれ、色々な産業で革命を起こしていただけることを非常に楽しみにしており、この記事がその一助となっていれば嬉しく思います。
この記事が役に立った方は、記事に『**いいね**』をしていただけると幸いです。


#### フォローお待ちしております

ビジネス目線の機械学習・人工知能の情報やオススメの参考書について発信しています。

代表取締役社長　吉崎 亮介
Twitter：[@yoshizaki_kkgk](https://twitter.com/yoshizaki_kkgk)
Facebook：[@ryosuke.yoshizaki](https://www.facebook.com/ryosuke.yoshizaki)
Blog：[キカガク代表のブログ](http://blog.kikagaku.co.jp/)


最後までお読みいただき、ありがとうございました。