thresholds/fitter.py 設計案#
スレッショルドスキャン結果を解析・フィットし、推定スレッショルド値を得るモジュール。
📌 主な責務#
スレッショルドスキャン(閾値 vs ヒット数)データのフィッティング
誤差関数(erf, erfc など)のモデルによるフィット
0σ, 1σ, 3σ, 5σ に対応するスレッショルド値の推定
必要に応じて、フィット結果の可視化や保存
🔧 提案関数一覧とその説明#
1. fit_scan_curve#
スキャン結果(しきい値とヒット数)をもとに、erf もしくは erfc 関数モデルでフィッティングを行う関数。
パラメータ推定やフィットの評価(決定係数など)も含まれる。
返り値は FittingResult というデータ構造を想定。
2. estimate_thresholds#
FittingResult に基づき、推定された mu(平均)と sigma(標準偏差)から、指定された σ(シグマ)レベル(例:0σ, 1σ, 3σ, 5σ)のしきい値を計算して返す。
返り値は { "0σ": 値, "1σ": 値, ... } の形式の辞書。
3. plot_fit_result(任意)#
スキャンデータとフィッティング結果を重ねてプロットし、表示またはファイルに保存する関数。 プロットツールとしては matplotlib, hvplot, altair などが利用可能。
🧾 データ構造 FittingResult#
フィットされたモデルとそのパラメータ、共分散行列(あれば)、フィットの良さを示す指標(例:R²)を保持するクラス。 以下のような情報を持つ:
モデル名(erf または erfc)
推定されたパラメータ(mu, sigma など)
パラメータの共分散行列(省略可能)
決定係数(R²)などのフィット評価指標
🚀 将来の拡張案#
シグモイドなど他のモデル関数への対応
FitConfigのような設定クラスで初期値や固定パラメータを柔軟に設定haniwers fitCLIコマンドとの統合や、バッチ処理対応フィット結果のログ出力・CSV保存機能の追加