learning.ikeay.net

文系エンジニア、AI勉強中。

機械学習のためのPythonの基礎「NumPy」を学ぶ

機械学習といえば「Python」です。なぜPythonなのかというと、数値演算や機械学習に関するライブラリがたくさん揃っているからだそう。行列がとても扱いやすいNumPy、グラフ描画が簡単にできるmatplotlib、機械学習のscikit-learnなどなど… 機械学習ではこの3つのライブラリを大いに活用します。

まずは今回はscikit-learnを使った機械学習ではかなり重要になってくる「NumPy」を学びます。
私はPythonもはじめてなのでまずはPythonの概要を把握しつつ、「100 numpy exercises」というNumPyを基礎から学べる問題集を写経して学習したいと思います。

環境構築

まずは環境構築です。詳しくは下記のリンクに飛んで確認いただきたいのですが、Macの場合は、Pythonバージョン管理システムである「pyenv」と、分析環境を構築するのに便利な「Anaconda」をインストールします。Anacondaをインストールすることで、Pythonはもちろんのこと、NumPyやmatplotlib、scikit-learn などのパッケージをまとめてインストールすることができるのでとても便利です。
最近はpython3.x系はまだ不安定だから2.x推奨だったのが、3.x系だと動かないライブラリもある…程度に改善されたようです。が、機械学習界隈ではまだまだ2.xが現役なようです。(私は2.x系を入れました)

Mac(homebrew + pyenv + Anaconda)
qiita.com

その他OSはこちら qiita.com

Pythonを知ろう!

NumPyの前にPythonを知ろうと思って、ドットインストールの動画のざざっと流し見しました。流し見するだけでも自分が学んでいる言語との違いがわかるのでおすすめです。
Rubyistから見てみれば、PythonRubyと似ているところも多いのですが、違うところもちょこちょこあるので見ていて面白かったです。

なお、下の講座は最後の更新が2013年なので当然のようにPython2.x系が使われています。

dotinstall.com

100 numpy exercises を写経してNumPyを基礎から学ぶ!

100 numpy exercisesはNumPyをコードの中にインポートするところから問題にしてくれている、NumPyを基礎から学ぶためにはもってこいの問題集です。問題のすぐ下に答えも書いてあるので、Let's 写経!
私は星ふたつまで取り組んでみることにしました。

github.com

分からなくなったらGoogle先生に聞いたり、Numpyのドキュメントを読んだりしました。
あとあと、Pythonは配列操作が独特なので、こちらも見ておくと◎かもしれないです。

www.yoheim.net

ちなみに、学習するときにはJupyter(IPython Notebook)を使うのがおすすめです。
Jupyterは、私の中では「Markdownでメモも残せるし、プログラムを実行できる便利なメモ帳」という認識です。
もともとはIPython Notebookという名前だったらしいのですが、最近は多言語対応をしているため、Jupyterという名前に変わったそうです。

Anacondaをインストールしている場合は、もうすでにこちらもインストールされています。ターミナルにjupyter notebook もしくはipython notebook というコマンドを打ち込むと、ローカルサーバーが立ち上がり、homeディレクトリの一覧が表示されます。ここから任意の場所に移動し、ファイルを編集したり、新規で作成したりします。

f:id:ikeay:20160601142035p:plain

便利です。ぜひ使ってみてください!


Special Thanks: 松尾研 鈴木さん、PARTY 宮本さん