Python3による機械学習(数値解析)の実験を助けるツール -- Aizu AdC 2016
この記事はAizu advent calendar 2016 9日目の記事です。
前の人 @innocent_mame
次の人 @RomTin
ギリシャ-アテネからの投稿です!!! masapontoです。
今年は主に何をやっていたかって振り返ると、アニメを見てた 研究(機械学習)のためのPython3コードを書いてた気がします。
今回はその研究での実験を行うのために使っているツールやライブラリを紹介しようと思います。
なにか便利ツールやより良い使い方があれば教えてください。
Numpy、scipy、scikit-learn
Pythonで機械学習といえば、こいつらなしには語れないでしょう。(深層学習だとTensorflow, Keras, Chainerもありますね)
自分で学習器を実装する場合はNumpy, scipyをを使ってます。scikit-learnの分類器にしたがって実装する(fit(X, y)に学習、predict(X)に分類を行う関数を実装する)と、scikit-learnで実装されている交差検定が使えて便利です。
こんな感じです。(こういう使い方するもんなのか、不安なのだが)
https://github.com/masaponto/Python-ELM
https://github.com/masaponto/Python-MLP
Anaconda3 on pyenv-virtualenv
pyenv-virtualenv
anaconda
これも有名ですね。anaconda3の環境だと数値解析に必要なライブラリ(僕がほしいNumpy、scipy、scikit-learn, pandas)は大体そろってます。
pandas
pandas
pandasは今のところ、あまりつかってません。
実験スクリプトで吐いたcsv形式の結果を、グラフにするのに使ってます。(with matplotlib)
pandas.read_csvして、dataflame.plotすると楽です。
こんな感じ
graph.py · GitHub
参考
numpy/scipy/pandas/matplotlibメモ | mwSoft
Tabulate
みなさんも実験結果の資料を作成するのには主にmarkdownを用いると思います。
tabulateを使えば、実験結果をかんたんにmarkdown table にできて良いです。
こんな感じ。
tabulate_sample.py · GitHub
doctest
slacktee
実験スクリプトの実行が終わったら、ぼっちslackの実験チャンネルに結果を通知するようslackteeを使ってます。
以前kamebotなる、slackに投げるやつをを作ったりしてましたが、投げるのにコード書くのがめんどうなので最近はこちらをつかってます。
最後に
この記事を書いている間にJupyter notebookでいいんじゃね?って気持ちになってきました。 使っていた時期もあったのですが、さっとコードを書いて、試して、やり直して、というサイクルがやりにくくて、使わなくなってしまいました。(使い方が悪いのか) で、今は上で列挙したものを使ってやっています。なにか便利なツールがありましたら、教えてください!!
最近は、powerpoint(などのofficeソフト)スライドに実験結果の表を出すのが面倒なので、markdown -> tex -> pdf (or png via texclip)で貼り付けてやってます。 この辺を楽にできたらいいなーと感じています。(なんか作るか)
おまけ
次の人は @RomTinです。よろしくお願いします。