Python

Python

【Python】数式とコードで再現する! 交差点の交通流シミュレーション自作入門

こんにちは、JS2IIUです。通勤やドライブの最中、赤信号で止まっているときに「もっとうまく信号が変われば渋滞しないのに」と思ったことはありませんか? あるいは、自動運転車が普及したら交差点の景色はどう変わるのだろうと想像したことがあるかもしれません。現代の都市工学において、こうした疑問を解決するた...
Python

Pythonで学ぶモンテカルロ法:株価予測シミュレーション入門

こんにちは、JS2IIUです。「1年後の株価はいくらになっているか?」この問いに対して、ズバリ「12,500円です」と断言できる人は、預言者か詐欺師のどちらかでしょう。不確実な未来において、確実な一点を当てることは不可能です。しかし、「1年後に株価が10,000円から13,000円の間に収まる確率は...
Python

Pythonで学ぶモンテカルロ法:円周率の近似シミュレーションを可視化しよう

こんにちは、JS2IIUです。プログラミングの世界では、確定的なロジックを積み上げることが基本ですが、時には「デタラメな数(乱数)」が強力な武器になることがあります。その代表例がモンテカルロ法です。一見すると無秩序な乱数を使って、円周率(\(pi\))のような普遍的な定数を近似できるというのは、直感...
Python

Pythonで学ぶパーティクル・フィルタ入門 ― 「数」の力で確率分布を表現するモンテカルロ法

こんにちは、JS2IIUです。これまで、「カルマン・フィルタ(KF)」によるノイズ除去、「拡張カルマン・フィルタ(EKF)」による非線形システムの追跡と、確率ロボティクスの王道とも言える技術を紹介してきました。これらは非常に強力なツールですが、実はある一つの「呪縛」に囚われています。それは、「世界は...
Python

Pythonで学ぶ拡張カルマン・フィルタ(EKF)入門 ― 「非線形」な現実世界を「ヤコビ行列」で攻略する

こんにちは、JS2IIUです。これまで、「1次元カルマン・フィルタ」で基礎を固め、「2次元カルマン・フィルタ」で行列演算を用いたマルチトラッキングを体験してきました。ここまでは順調でしたね。しかし、私たちが生きているこの現実世界には、ある残酷な事実があります。それは、「世界は直線でできていない」とい...
Python

Pythonで体験カルマン・フィルタ入門

こんにちは、JS2IIUです。今回は、自動運転やロボット制御、さらには金融工学や時系列解析の分野で長年使われ続けている、少し「魔法」のようなアルゴリズム、「カルマン・フィルタ(Kalman Filter)」について解説します。「カルマン・フィルタ」という名前を聞いたことはあっても、「数式に行列がたく...
Docker

【Streamlit】Dockerfile構成とデプロイコマンドまとめ

こんにちは、JS2IIUです。Pythonで手軽にWebアプリケーションを作成できるフレームワークとして、StreamlitはもはやデータサイエンティストやAIエンジニアにとって必須のツールとなりました。手元のローカル環境でstreamlit run app.pyと叩くだけで、見栄えの良いダッシュボ...
Streamlit

【Streamlit】UIを自由に拡張する:st.components.v2.component徹底解説と実践コード

こんにちは、JS2IIUです。StreamlitはPythonで手軽にWebアプリケーションを構築できるフレームワークとして、多くの機械学習・データ分析エンジニアに支持されています。標準のウィジェットだけでも多くのアプリは構築できますが、「オリジナルのUIを作りたい」「JavaScriptライブラリ...
Python

【Python】パワポファイルを生成するpython-pptxの使い方

こんにちは、JS2IIUです。機械学習エンジニアやデータサイエンティストの皆さん、日々の業務お疲れ様です。Pythonで高度なデータ分析やモデル構築を行い、素晴らしいインサイトを得た後、最後に待っているのが「PowerPointでの報告資料作成」です。「Jupyter Notebookのグラフを画像...
Python

【Python】logging.configとYAMLファイルで設定を分離する

こんにちは、JS2IIUです。プロジェクトの規模が大きくなり、複数のモジュールに分かれてくると、ロギング の設定は複雑になりがちです。前回記事で logging の強力なハンドラ群を学びました。しかし、これらを全てPythonコード内に logger.addHandler() や handler.s...