備忘録 blog

Docker/Machine Learning/Linux

python

将棋の棋譜を自動解析して詰み逃しを見つける

将棋の棋譜から、詰みがあったのにも関わらず詰ませ損ねた局面を集め、詰将棋集を作って練習したいと思った。そこで、棋譜内に詰み逃しがあった時に Jupyter Notebook 上で表示されるようなコードを実装した。例として著作権の切れた古い棋譜を使って、どの…

先後差を考慮した将棋のプロ棋士の強さモデリング(2)

はじめに 本稿は前回に引き続き、先後差を考慮したプロ棋士の強さベイズモデリングをしていきたい。今回は棋士ごとの先手・後手の差をモデルに埋め込んで、先後の強さの差がどのぐらい出るかというのをみていきたい。 前回の記事はこちら。 sharply.hatenabl…

先後差を考慮した将棋のプロ棋士の強さモデリング(1)

はじめに 将棋は先手有利であるという通説があるが、実際にその効果はどのぐらいなのだろうか。また、「振り飛車党は先後の不利を克服できる」という説があるが、その説はどのぐらい信憑性があるのか、という点に対して、PyMC3 を用いたベイズモデリングによ…

ベイズ統計を用いた投票モデリングを目指して

はじめに 投票をある程度解釈可能なモデルによってモデリングすることによって、そのモデルのパラメータを変更した際に、選挙結果がどのぐらい変化するかというのを見積もることができる可能性がある。まず選挙に対するモデリング手法について、先行例として…

Python から Rust を呼ぶライブラリを比べる

tl;dr Rust で実装されたライブラリに対して Python 側から関数呼び出しをしたいと考えたとき、Rust に対して Python binding を提供してくれるライブラリとして maturin、setuptools-rust、milksnake があり、それぞれのツールの間で微妙に特徴が違うので、…

KerasのサンプルでMLPを使って文の分類を試してみる

tl;dr Kerasに付属しているサンプルを使って、MLPで簡単な文書解析を試してみた。 Kerasを試してみる 前回、紹介記事を書いたのでそちらを参照していただけると幸いです。 sharply.hatenablog.com MLPで文を分類してみる 単純なパーセプトロンはニューラルネ…

ディープラーニングをKerasというフレームワーク上で行う

はじめに 機械学習、特にディープラーニングが近頃(といってもだいぶ前の話になりますが)盛んになっています。CaffeやChainerといったフレームワークもありますが、特にGoogleがTensorflowでtensorboardと呼ばれる簡単に使える可視化基盤を提供して有名に…

Python2を高速化するtips(続)

sharply.hatenablog.com これの続き。 単純に高速なアルゴリズムを使う 例えば"ham"という文字列がある配列に含まれるか?という問いに対して、 some_list = ["spam", "ham", "eggs"] if "ham" in some_list というリスト検索ではO(log(n))ですが、Rubyにお…

Python2のコードを高速化するための覚書

実行時間の測定方法 CPythonでpythonの素のコードを実行するとヤバイぐらいに時間がかかる。実際にどのぐらいかかるのかを調べる。 import time def main(): start = time.time() hoge() elapsed_time = time.time() - start まあこれでもよいのだが、 pytho…

POH6をPythonで解く

動機 最近、学科内でPythonがブームとなっているようなので便乗して勉強してみた。 ただ勉強するだけでは面白くないので、オンラインハッカソンに挑戦して実際に書きながら学んでみたいと思う。 paiza.jp コード paiza.jp input_lines = int(raw_input()) wa…