Skip to content

Experiments

humanbeans893 edited this page Jul 16, 2026 · 1 revision

実験の進め方

exp/ は試行錯誤を時系列で保存する場所です。1 実験を NNN_<slug>/ という 1 ディレクトリに閉じ込めます。

新しい実験を作る

既存の最大番号に 1 を足し、英語の短いスラッグを付けます。

cp -r exp/_template exp/001_baseline_fit

各実験には次を置きます。

項目 役割 Git
README.md 目的、方法、結果、考察、次の判断 コミットする
params.py シード、閾値、モデル設定など コミットする
run.py 実行入口。共有処理は src/ から呼ぶ コミットする
out/ 図、ログ、中間出力 コミットしない

run.py 冒頭の sys.path ブートストラップは、プロジェクトをパッケージとしてインストールせず configsrc を import するために必要です。

実行する

docker compose exec research-template uv run python exp/001_baseline_fit/run.py

実行前に入力の存在、列、型、単位、件数などを明示的に検証します。必要な入力がないときにダミー値で続行したり、例外を握りつぶしたりしないでください。

README に残す内容

  • 目的: 何を検証するか
  • 方法: データ、前処理、モデル、パラメータ、比較条件
  • 結果: 主要な数値、図、成功/失敗
  • 考察: 解釈、限界、想定外の点
  • 次の判断: 採用、棄却、追加実験、共有コード化

意味のある実行ごとに追記し、都合の悪い結果を消さないようにします。

完了した実験は書き換えない

条件や方法を変えて新しい結果を出す場合は、新しい番号を作ります。過去の run.pyparams.py を変更すると、README に残した結果を再生成できなくなります。README の追記や誤字修正は構いません。

共有コードと論文用成果物へ昇格する

  • 2 つ以上の実験で必要なロジックは src/ に移し、テストを追加する。
  • 論文で使う図表は手でコピーせず、実験の最終処理または scripts/ から result/ に生成する。
  • exp/*/out/ は一時的・局所的な結果、result/ は研究全体で採用した生成物として区別する。

実験レビューのチェック項目

  • 入力データとバージョンを特定できるか
  • 乱数シードと全パラメータがコードにあるか
  • 実行コマンドが書かれているか
  • 出力が out/ に閉じているか
  • 結果と結論を混同していないか
  • 次の実験が過去の実験を上書きしていないか