【Python】モンテカルロ法で円周率を推算してみた
マテリアルズインフォマティクスに関わっていると、MDなど、計算科学的シミュレーションに関する話を聞くことも多い。
このとき、しばしばモンテカルロ法という言葉を聞いた。しかし、自分は実験系の出身で計算科学の知識に乏しく、手法のイメージがつかなかった。
これについて調べてみたところとても面白く、概念としてはわかりやすものだったので、ここに記しておく。
optunaで多目的最適化
ある材料の物性を予測して最適化したい場合、物性を一つだけ予測して済むケースは少ない。
たとえば簡単な例では、ある性能を高めたいけれど、値段が高くてはお客様に買ってもらえないので、価格を抑えたいケースを考える。このとき、価格とその材料の性能の二種類の最適化したい対象が存在し、両方ができる限り最適になるようにしていく、いわば、パレート解の探索を行う。
ここでは、ハイパーパラメータの探索などに用いられるブラックボックス最適化ライブラリoptunaで多目的最適化を行い、パレート解を列挙する方法や、それを図示する方法について記す。
highlight.jsの自動言語判別を無効化する
最近jupyter notebookをnbconvertコマンドでmarkdownに変換してここの投稿を行うことがある。
そのときに勝手に、Pythonのスクリプト結果にもコードブロックを適用してくれるのだが、hightlight.jsの言語自動判別機能によりよくわからないハイライトをされてしまうことがある。
Pythonのセルにはpythonであることを明示してくれるので、highlight.jsの自動判別機能をオフにすれば解決すると考え、この方法を行った。
【OptunaでSHAP】ハイパーパラメータ探索での寄与率を計算してみた
optunaのv3のベータ版(v3.0.0b1)が公開された。リリース情報を見ていて個人的に気になったのがSHAP値の計算機能の追加であった。
SHAPは調べるといろいろな人が「使ってみた」や解説記事を書いているので詳細な説明はそれに譲るが、簡単に言えばどの特徴量やパラメータが予測に対してどのくらい寄与しているかを評価することができる。
これをoptunaに実装し、ハイパーパラメータチューニングの最中にどれくらいどのパラメータが影響を与えたかを簡単に確認することができる機能が実装されたので使ってみる。
自分の作ったパッケージをconda installできるようにする
以前から自分で作成したPythonパッケージをPyPIにリリースしていた。
https://note.yu9824.com/howto/pypi-package-release/
したがって、pip install <package-name>とすることでインストールできた。しかし、この度conda install -c conda-forge <package-name>でインストールしたいという要望をいただいたのでanaconda cloudにパッケージをアップロードする方法を学んだ。
https://github.com/yu9824/kennard_stone/issues/5
このときの手順をメモした。