yu9824's Notes

特徴量削減手法について、大体何かしらを漏らしてしまうことが多いので、一覧をメモ。

基本的に

  1. Filter法で大まかに削る
  2. Wrapper法もしくはEmbedded法によって削減する
    • 線形のモデルを用いるべきか非線形を用いるべきか

と言った流れで行うことが多い。


以前、モンテカルロ法により円周率を推算する方法を調べて、実装した。

https://note.yu9824.com/study/2022/07/30/monte-carlo-simulation-pi/

このとき、よく知られた無理数の定数のうちの一つであるネイピア数$e$はどうなんだろうと思った。

調べてみると結構面白かったので、簡単な証明を自分でしつつ、メモする。


マテリアルズインフォマティクスに関わっていると、MDなど、計算科学的シミュレーションに関する話を聞くことも多い。

このとき、しばしばモンテカルロ法という言葉を聞いた。しかし、自分は実験系の出身で計算科学の知識に乏しく、手法のイメージがつかなかった。

これについて調べてみたところとても面白く、概念としてはわかりやすものだったので、ここに記しておく。


ある材料の物性を予測して最適化したい場合、物性を一つだけ予測して済むケースは少ない。

たとえば簡単な例では、ある性能を高めたいけれど、値段が高くてはお客様に買ってもらえないので、価格を抑えたいケースを考える。このとき、価格とその材料の性能の二種類の最適化したい対象が存在し、両方ができる限り最適になるようにしていく、いわば、パレート解の探索を行う。

ここでは、ハイパーパラメータの探索などに用いられるブラックボックス最適化ライブラリoptunaで多目的最適化を行い、パレート解を列挙する方法や、それを図示する方法について記す。


最近jupyter notebookをnbconvertコマンドでmarkdownに変換してここの投稿を行うことがある。

そのときに勝手に、Pythonのスクリプト結果にもコードブロックを適用してくれるのだが、hightlight.jsの言語自動判別機能によりよくわからないハイライトをされてしまうことがある。

Pythonのセルにはpythonであることを明示してくれるので、highlight.jsの自動判別機能をオフにすれば解決すると考え、この方法を行った。


最近の投稿

【Python】実行可能なパッケージを開発する
python3 -m <package-name>や<package-name>により、特定のコマンドが実行できるようなPythonパッケージを開発する方法について調べた。
ついにRDKitで型ヒントが出るように!
RDKitは、Pythonで有機分子を取り扱うためにほとんど必須のライブラリであるにもかかわらず、型ヒント機能が脆弱であった。この度stubが実装されて、とても快適になった。
ruffで使ってないモジュールを消させない
以前は、black + flake8でコードをフォーマットしていた。最近はより高速に動作するruffを使用している。ruffにしてから使われていないモジュールが削除されるようになった。保存時に自動実行するように設定しているため、これから使うためにimportしたあとに保存してしまった場合も削除されてしまっていて困...
Github PagesからNetlifyに移行【備忘録】
これまではこのサイトをGithub Pagesでホスティングしてきた。プライベートリポジトリのままサイトをホスティングするにはGithub Proプランに入っている必要があるため、この度Netlifyに移行することにした。
【matplotlib】なにかプロットされているか確認する関数
matplotlibで描画する関数を自分で定義する際、すでになにかがプロットされている場合は新しいAxesにプロットし、Axesは存在するけれど何もプロットされていない場合はそのAxesにプロットする、のような関数を定義したかったのだが、少しハマったのでメモ。最終的に最善と思われる関数を定義した。