既にフィッティング済みのAxis5
モデルをターゲットのデータベースに適用し、その結果を
analysis_deltaのTier3状態とJOINして
axis5_fullを作ります——組織概要ページの
きっかけとなった疑問で触れている、規模の大きな解析システムの
うちの1ピースで、DOI 1.7のSection 4の結果が実際に問い合わせて
いたのは、まさにこのピースです。
| 収録場所 | DOI 1.7のZenodoアーカイブ(Merutan_DOI1.7.zip)に収録 |
|---|---|
| 役割 | 推論専用パイプライン:sorted_phase_v13_full.pyが既にaxis5_historyに保存した重みと閾値を読み込み、ターゲットのデータベースに適用し、結果をaxis5_fullとして書き出します。comp_*は平均中心化なしの生の形(xb,i × wi)で計算されます。 |
| 使用範囲 | DOI 1.6・DOI 1.7——その出力axis5_fullが、それらの報告書のTier3/Axis5 SQL結果とDOI 1.7で公開された4本の画面録画動画の問い合わせ対象になっています(動画自体は、さらに組み立てられたmeltan_integrated_viewer_*.duckdbという名前のデータベースに対して実行されたもの。このスクリプトの出力は、その動画・SQLがSection 4で問い合わせている全ての値を再現します——両者の関係は下の「生成物」を参照)。 |
| 状態 | DOI 1.7に文書化されている通り現行——訂正・置き換えの対象になったJOINベースの検証用パイプライン(置き換え済みファイル参照)とは全く別系統の関心事です。このスクリプトに対する訂正やバグの公表は一切ありません。 |
_axis5_results_v2.duckdbを付けた新しい出力
データベースを作成します。axis5_historyテーブルから最新の保存済みモデル
設定(特徴量リスト、平均、逆共分散行列、特徴量重み——
sorted_phase_v13_full.py
がフィッティングして保存した値そのもの)を読み込み、その
固定モデルを元データベースのanalysis_full
テーブルの全ブロックに適用します。Dを計算し、その分布からP50/P75とTukey fences
のT1/T2閾値を導出し、axis5重症度値
(−2〜1)とprimary_cause列(各ブロックの
距離に最も寄与したcomp_*特徴量はどれか)を新しい
axis5_results_v2テーブルに書き込みます。axis5_results_v2を、元データベースの
analysis_deltaテーブルと(image_id・
row・colで)JOINし、各ブロックの
noTTA/TTAのTier3値・
ローカルSSIM・Δssimを取り込み、統合した
tier3_stateラベル(Stable/Persistent/Escape/
BlindSpot——用語集
参照)を導出します——その結果がaxis5_full
として書き込まれ、DOI 1.7のSection 4のSQLクエリが直接
参照するテーブルになります。axis5_historyを無改変で出力データベースに
コピーし、この実行で実際に使われたP50/P75/T1/T2の閾値を、
記録として保存済みの設定に追記します。merutan_metadataテーブルに記録します。
SHA-256ハッシュ付きのParquet書き出し経路もコード内には
存在しますが、現在は無効化されています。
4つのテーブルを持つDuckDBデータベース
(…_axis5_results_v2.duckdb)です:
axis5_results_v2(Tier3とのJOIN前のAxis5推論
結果)、axis5_full(JOIN済みのテーブル——
Axis5とTier3状態が揃った、DOI 1.7の報告書が直接クエリする
対象)、axis5_history(コピーされたモデル設定
と閾値)、merutan_metadata(実行の来歴)です。
モデルごとに1回実行します。このスクリプト自身の出力データベース
は、DOI 1.7の動画・SQLで参照されている
meltan_integrated_viewer_*.duckdbファイルそのもの
ではありません——別途未公開の工程(generate_integrated_viewer_db.py)が、
このスクリプトのaxis5_fullを、同じパイプラインの
Axis1・Axis6の各データベース(組織概要ページで
触れている、より大きなシステム)と統合して、最終的な
そのデータベースを作ります。そのデータベースのスキーマ自体は
DOI 1.0
自身の付録(Section A.2)以来公開されており、生データベース
ファイルが配布されていないのは単にサイズの問題です(DOI 1.0
自身がSection A.3.3でそう明記しています)——これはこの
シリーズの後続の検証用データベースが配布されていないのと
同じ、容量上の理由です。ここで公開されている範囲は、完全な
組み立てパイプラインより狭いですが、DOI 1.7が実際に必要と
していたものは再現できます:このスクリプト(とその前段の
sorted_phase_v13_full.py)
を実行すれば、DOI 1.7のSection 4が
meltan_integrated_viewer_*.duckdbに問い合わせて
いた値を全て再現できます。
対話式で、コマンドライン引数はありません:スクリプトを実行すると ファイル選択ダイアログが開き、元データベースを選びます。出力 データベースは、同じフォルダ内に書き込まれます。