機械学習といえば「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から見てみれば、PythonはRubyと似ているところも多いのですが、違うところもちょこちょこあるので見ていて面白かったです。
なお、下の講座は最後の更新が2013年なので当然のようにPython2.x系が使われています。
100 numpy exercises を写経してNumPyを基礎から学ぶ!
100 numpy exercisesはNumPyをコードの中にインポートするところから問題にしてくれている、NumPyを基礎から学ぶためにはもってこいの問題集です。問題のすぐ下に答えも書いてあるので、Let's 写経!
私は星ふたつまで取り組んでみることにしました。
分からなくなったらGoogle先生に聞いたり、Numpyのドキュメントを読んだりしました。
あとあと、Pythonは配列操作が独特なので、こちらも見ておくと◎かもしれないです。
ちなみに、学習するときにはJupyter(IPython Notebook)を使うのがおすすめです。
Jupyterは、私の中では「Markdownでメモも残せるし、プログラムを実行できる便利なメモ帳」という認識です。
もともとはIPython Notebookという名前だったらしいのですが、最近は多言語対応をしているため、Jupyterという名前に変わったそうです。
Anacondaをインストールしている場合は、もうすでにこちらもインストールされています。ターミナルにjupyter notebook
もしくはipython notebook
というコマンドを打ち込むと、ローカルサーバーが立ち上がり、homeディレクトリの一覧が表示されます。ここから任意の場所に移動し、ファイルを編集したり、新規で作成したりします。
便利です。ぜひ使ってみてください!
Special Thanks: 松尾研 鈴木さん、PARTY 宮本さん