mcpField
M
ml-researcher

ml-researcher

github.com/awslabsデータ・データベース6884 回インストール4 週間前に更新
リポジトリ

ml-researcher について

医療・ライフサイエンス分野の機械学習研究を支援する推論スキルです。実験設計やパイプライン評価、モデルの次段階への移行判断を助け、リーク、校正、実運用に即した評価、公平性、報告基準を重視します。

主な機能

  1. 01臨床課題と判断時点に沿った実験設計
  2. 02患者・施設・時間単位の分割選択
  3. 03前処理におけるデータリークの監査
  4. 04識別能・校正・臨床的有用性の評価
  5. 05サブグループ公平性と報告基準の計画

活用シーン

  1. 01臨床予測モデルの学習・検証計画を評価
  2. 02多施設データの施設ホールドアウトを選定
  3. 03縦断 EHR 特徴量の時間リークを確認
  4. 04医療 AI 研究の評価と報告をレビュー

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/awslabs/hcls-agent-skills --skill ml-researcher

インストール後、Claude Code で/ml-researcherを入力して読み込まれたか確認します。

同梱ファイル.gitkeep

詳細

ML Researcher — HCLS 向け推論スキル

概要

このスキルでは、医療・ライフサイエンスデータを使った機械学習実験について、エージェントがどのように考えるべきかを学びます。HCLS の ML は一般的な ML とは異なります。サンプルが少なく、ラベルにノイズがあり、施設や時間によって分布が変化し、サブグループへの害が実際に生じ、導入には報告基準や規制当局への準拠が求められます。主な失敗要因はモデルの選択ではなく、データリーク、キャリブレーションの不備、そして導入環境を反映しない評価です。

このスキルは、コードを書く前に研究を構成するとき、既存のパイプラインを批評するとき、またはモデルを次の段階に進める準備ができているか判断するときに使用してください。

使用方法

ユーザーが次のことを行った場合に、このスキルを呼び出してください。

  • 臨床または生物医学の予測問題を提示し、取り組み方を尋ねる。
  • データセットの説明(EHR、WSI、オミクス、分子、ノート)を共有し、どのモデルを使うべきか尋ねる。
  • データ分割、CV、指標、キャリブレーション、公平性、報告について尋ねる。
  • ML 計画や原稿の厳密さ、規制への適合性をレビューしてほしいと求める。

出力は具体的な提案にしてください。設計、分割方法、指標、報告チェックリストを明示します。前提に疑問を投げかけ、モデルを提案する前に、インデックス時刻、コホートの定義、判断時点、施設の構成について確認してください。

回答形式

  • 直接的な推奨または分類を冒頭に述べます(3 文以内)。
  • 次の構成にします:推奨 → 根拠(具体的な基準や閾値を引用)→ 注意点
  • 比較には表を、基準の一覧には箇条書きを使用します。
  • ユーザーがすでに知っている背景情報は省きます。ユーザーが尋ねている内容に答えてください。
  • 目安:200~400 語。ただし、ユーザーが網羅的な説明を求めている場合は除きます。 このスキルの意思決定ツリーとフレームワークは、内部での推論にのみ使用してください。結論に至るために適用しますが、回答にそのまま再掲しないでください。根拠を添えた最終的な推奨のみを提示します。

コアコンセプト

メンタルモデル(毎回使用)

次の一連の流れを順番にたどります。どこかに抜けがあると、その後の選択も妥当ではなくなります。

  1. 臨床上の問い — どの判断が変わるのか?
  2. 対象集団 — 選択・除外条件、コホートへの組み入れ基準。
  3. 判断時点 — 臨床ワークフローの中でモデルに問い合わせるタイミング。
  4. アウトカムの定義 — ラベル、判定、打ち切り、時間枠。
  5. データ生成プロセス — 特徴量の取得方法、欠測の仕組み、施設や機器によるばらつき。
  6. 導入環境を反映した評価 — 同じ対象集団、同じ判断時点、予測時に利用可能な同じ特徴量、同じ時間的・施設的境界。

評価が導入環境を反映していなければ、モデルは評価されたとは言えません。

主要用語
  • インデックス時刻:予測を行うタイムスタンプです。それ以降の情報はすべて特徴量として使用できません。
  • 観察期間:インデックス時刻で終了する、特徴量のための遡及期間です。
  • 予測ギャップ:インデックス時刻とアウトカム期間の間に設けるバッファーです(ターゲットリークを防ぎます)。
  • 予測期間:アウトカム期間の長さです。
  • 患者単位のグループ化:同じ患者が複数の分割にまたがらないようにします。
  • 施設単位のホールドアウト:少なくとも 1 つの施設・病院を、学習時に一切使用しません。
  • スキャフォールド分割:Bemis–Murcko スキャフォールドごとに分子をグループ化し、テストデータに学習時未使用のスキャフォールドを含めます。

生物医学データの実験設計

少数サンプル・高次元(n < p)

オミクス、希少疾患の画像診断、バイオマーカー探索でよく見られます。

  • ネスト化交差検証を使用します。外側のループで性能を推定し、内側のループでハイパーパラメーターを調整します。交差検証のループが 1 つだけだと、テスト用フォールドに対してハイパーパラメーターが過剰適合します。
  • 正則化モデルを優先します。たとえば、elastic net、ridge、早期停止を用いた sparse GBM です。
  • 単一の特徴量ランキングではなく、安定性選択(サブサンプリング+再フィット+特徴量選択頻度の集計)を使用します。
  • CV の前にデータセット全体に対して特徴量選択、正規化、または補完を決して行わないでください。前処理はすべて、各学習用フォールド内で再フィットする必要があります。
  • 点推定値ではなく、外側のフォールドから信頼区間を報告します。
クラス不均衡

基本方針:データには何も手を加えません。

判断ツリー:

Is the positive class rare (e.g., <10%)?
├── No → standard training, report AUPRC alongside AUROC.
└── Yes → Is the model's ranking adequate (AUPRC vs. prevalence baseline)?
         ├── Yes → shift the decision threshold to match clinical costs.
         │        Use decision curve analysis to pick the operating point.
         └── No → try class weights or focal loss BEFORE resampling.
                  If you must resample:
                    - Resample only the training fold.
                    - Recalibrate probabilities afterward (Platt/isotonic on held-out fold).
                    - Never resample the validation or test fold.

リサンプリングは事前確率を歪め、キャリブレーションを損ないます。「不均衡の問題」の大半は、実際にはしきい値の問題です。

時間的リーケージ

患者のデータは経時的に蓄積されます。ランダム分割では、過去のデータに未来の情報が漏れ込みます。

すべての特徴量について、次のように確認してください。この値はインデックス時点で把握できていたか? そうでなければ、使用できません。

必須のデータ構築:

  • 患者ごとにインデックス時点を定義します。
  • 観察ウィンドウ(例:過去365日間)を定義します。
  • インデックス時点とアウトカムウィンドウの開始時点の間に、予測ギャップ(例:24時間)を設けます。
  • 予測期間(例:30日死亡率)を定義します。
  • フォワードチェイニングCVを使用します。 [t0, t1]で学習し、[t1, t2]で検証して、順次先へ進めます。未来の情報を参照してはいけません。
  • 最も新しい期間を、最終的な時間的テストセットとして保留します。

データモダリティ別のモデル選択

基本の選択肢です。正当な理由がある場合にのみ変更してください。

モダリティ第一候補有力な代替手段備考
臨床表形式データ(構造化EHR、検査値、バイタル)ロジスティック回帰+Elastic NetXGBoost / LightGBM解釈可能性とキャリブレーションを重視し、線形モデルから始めます。通常、ツリーベースのGBMは精度で上回りますが、その向上幅は小さい傾向にあります。
医用画像(2D、3D、WSI)ImageNet/RadImageNet/基盤モデルからの転移学習セグメンテーションにはnnU-Net強力なデータ拡張を行ってファインチューニングします。データが少ない場合は、初期層を凍結します。
時系列EHR(イベント系列)時間埋め込みを用いたGRUまたはTransformer表形式化(ウィンドウごとに集約)+GBM表形式化したGBMは強力なベースラインです。系列モデルが有効だと主張する前に、これを上回ってください。
ゲノミクス(発現、メチル化)経路集約特徴量に対するElastic Netタンパク質間相互作用グラフを用いたGNN経路集約により、次元を削減し、生物学的な解釈可能性を高められます。
グラフ/小分子スキャフォールド分割を用いたGNN(GIN、D-MPNN)フィンガープリント+GBM分子をランダム分割すると、性能が実際の2~5倍に過大評価されます。
臨床テキストドメイン適応済みエンコーダー(ClinicalBERT、BioClinicalBERT、Gatortron)検索機能を備えた指示調整済み臨床LLM一般ドメインのBERTは性能が劣ります。臨床用語に適応させてください。
判断ツリー:モデルの選択
What is the input?
├── Structured rows (one row per patient) → Tabular branch
│     ├── n small or interpretability required → logistic + elastic net
│     └── n moderate/large, accuracy priority → GBM (XGBoost/LightGBM)
├── Images → Imaging branch
│     ├── Classification → transfer learning (foundation model preferred if in-domain)
│     └── Segmentation → nnU-Net
├── Longitudinal events → Temporal branch
│     ├── Fixed feature set works → tabularize + GBM (baseline, often wins)
│     └── Irregular, long sequences, rich history → Transformer with time encoding
├── Sequences with biology (DNA/RNA/protein) → specialized encoder or pathway features
├── Molecules → GNN with scaffold split (or fingerprint + GBM baseline)
└── Free text → domain-adapted encoder; RAG if generative

必ず単純なベースライン(多数派クラス、ロジスティック回帰、既存の臨床スコア)を実行してください。ディープモデルが臨床的に意味のある差でそれを上回れない場合は、そこで中止してください。


交差検証での落とし穴

分割方法が、主張の範囲を決めます。デプロイ時の主張に合った分割方法を選んでください。

  • 患者単位でのグループ化は必須です。 同じ患者を学習とテストの両方に含めてはいけません。これに違反することは、HCLSの機械学習論文で最もよく見られる誤りです。
  • 主張が「病院間で汎化する」である場合は、施設単位で保留します。施設全体を保留し、施設をまたいだ患者のランダム分割はしないでください。
  • 主張が「前向きに機能する」である場合は、時間単位で保留します。古いデータで学習し、新しいデータでテストします。
  • 分子にはスキャフォールド分割を使用します。アッセイ日がある創薬では、時間ベースの分割を使用します。
  • 前処理は各フォールド内で行います。 正規化、欠損値補完、特徴選択、オーバーサンプリングはモデルの一部であり、各学習フォールド内で再適合する必要があります。ここでのリーケージは気づきにくく、よく起こります。
  • リーケージ監査チェックリスト:
    • ラベルから導出された特徴量はありませんか?
    • インデックス時点以降の情報を使って計算された特徴量はありませんか?
    • 同じ患者、来院、画像、または分子スキャフォールドが両方の分割に含まれていませんか?
    • 正規化の統計量を全データセットで計算していませんか?
    • テストセットを使ってハイパーパラメーターを選択していませんか?
判断ツリー:どの分割方法を使うか?
What claim is being made?
├── "Works on new patients at this hospital" → patient-level random split
├── "Works at other hospitals" → site-level holdout (leave-site-out CV)
├── "Works in the future" → temporal holdout + forward-chaining CV
├── "Works on new chemical series" → scaffold split
└── "Works on a new population/demographic" → demographic holdout + subgroup eval

3層評価

3つすべてを必ず報告してください。

  1. 識別能 — モデルは陽性例を陰性例より上位に順位付けできますか?
    • AUROC(全体的な順位付け)。
    • AUPRC(特に有病率が10%未満の場合。有病率をベースラインとして報告してください)。
  2. キャリブレーション — 予測確率は観測された割合と一致していますか?
    • キャリブレーションの傾きと切片。
    • Brierスコア。
    • 信頼区間を含む信頼性図。
    • AUROCが高くても、キャリブレーションされていない確率は臨床上危険です。
  3. 臨床的有用性 — モデルの使用によって意思決定は改善しますか?
    • 臨床的に妥当な閾値の範囲全体にわたる決定曲線分析(DCA)/純便益。
    • 以下と比較してください:全員治療、誰も治療しない、現在の標準治療。
    • モデルのAUROCが標準治療より高くても、純便益は低い場合があります。
決定木:評価戦略
Is the task classification with a clinical decision attached?
├── Yes → discrimination + calibration + DCA (all three).
│         Report subgroup performance for prespecified groups.
└── No (ranking only, research use) → discrimination + calibration; DCA optional.

Is prevalence < ~10%?
├── Yes → lead with AUPRC, include AUROC; show PR curve.
└── No → AUROC primary, AUPRC secondary.

Are probabilities used downstream (risk communication, triage threshold)?
├── Yes → calibration is mandatory. Recalibrate on a held-out fold if off.
└── No → calibration still reported for transparency.

公平性とサブグループ分析

HCLSデータにおけるバイアスは、偶然に生じることはほとんどありません。ラベル自体に、過去の医療格差が反映されています。

  • サブグループを事前に指定してください(性別、人種/民族[社会的に構築された概念として]、年齢層、保険、施設)。結果を見てから都合のよい分析を探してはいけません。
  • サブグループごとに識別能、キャリブレーション、純便益を報告してください。モデルの識別能が同等でも、キャリブレーションのずれによってサブグループに害を及ぼすことがあります。
  • 厳格な人口統計学的パリティよりも、サブグループ間で均衡した純便益を優先してください。パリティ指標(偽陽性率の一致、選択率の一致)は全体的な有用性を低下させ、最も不利な集団に害を及ぼす可能性があります。純便益は臨床的な影響を直接捉えます。
  • ラベルのバイアスを監査してください。 ラベルが「治療Xを受けた」であれば、アクセスの格差がラベルの格差になります。可能な場合は、アウトカムに基づくラベルと照合してください。
  • サブグループのnが小さい場合は、そのグループを隠すのではなく、幅の広い区間を報告してください。

報告基準

対象となる成果物に合わせて基準を選んでください。

  • TRIPOD+AI — 予測モデルの開発/検証。ほとんどのHCLS ML論文では、これをデフォルトで使用します。
  • PROBAST+AI — バイアスリスクの評価。投稿前の自己監査に使用してください。
  • CLAIM 2024 — 医用画像AIの報告。
  • MI-CLAIM-GEN — 医療分野の生成AI。
  • STARD-AI — AIを用いた診断精度研究。
  • SPIRIT-AI / CONSORT-AI — AI試験のプロトコルと報告。

執筆前にチェックリストの提出を求めてください。不足項目は、文章の不足ではなく、実験の不足であることがほとんどです。


FDA規制上の考慮事項(米国)

医療機器としてのソフトウェア(SaMD)を目的とするモデルの場合:

  • AI-DSF(AI/ML対応デバイスソフトウェア機能)ガイダンスでは、該当するものの範囲と、求められる文書を定めています。
  • **事前規定変更管理計画(PCCP)**では、承認後、新たな申請なしで行える更新の種類(再トレーニングの頻度、新たなデータソース、性能の範囲)を申請者が指定できます。早い段階で定義してください。
  • GMLP(Good Machine Learning Practice)の10原則 — 学際的なチーム、代表性のあるデータ、独立した学習/テスト、臨床ワークフローに適したモデル設計、ヒューマン・イン・ザ・ループでの性能、導入済みモデルのモニタリング。
  • HCLS MLデバイスのほとんどはクラスIIで、既存の比較対象機器がある場合は510(k)、新規でリスクが低度から中程度かつ比較対象機器がない場合はDe Novoを通じて承認されます。クラスIII(PMA)となるMLはまれです。
  • 規制対象外の研究モデルであっても、GMLPおよびPCCPの考え方を適用することで、実際の問題を早期に発見できます。

このスキルを使用しない場合

  • エンジニアリングレビューなしでモデルを本番環境にデプロイする場合
  • リアルタイム推論の最適化(システムエンジニアリング)が必要な場合
  • データパイプラインやMLOpsインフラストラクチャを構築する場合(プラットフォーム固有のツールを使用してください)

人間の専門家にエスカレーションする場合

  • SaMD(医療機器としてのソフトウェア)をFDAに申請する前
  • モデルの公平性監査で、保護対象集団間の格差が明らかになった場合
  • 臨床検証に前向き試験の設計が必要な場合

よくある間違い

これらはいずれも研究を無効にします。どれか一つでも見つけたら、直ちに作業を止めてください。

  • 誤り: 結果判明後のデータ(イベント後の検査値、退院時のコードなど)から導出した特徴量をトレーニングセットに含める 正しい対応: すべての特徴量をインデックス時点に照らして監査し、意思決定時点で利用可能なデータのみを使用します 理由: 結果を含む特徴量を使うと、開発時にはAUROCがほぼ完璧になる一方、実臨床では性能がゼロになります

  • 誤り: グループ分けを考慮せず、縦断的な患者データや分子データセットをランダムに分割する 正しい対応: 臨床データには患者単位のグループ分けを、分子データにはスキャフォールド分割を使い、トレーニングとテストの両方に同じエンティティが含まれないようにします 理由: ランダム分割では将来の情報や構造的な類似性が漏れ、性能推定が過大になります(分子では2~5倍の過大評価)

  • 誤り: 不均衡データ(有病率10%未満)でAUROCのみを報告する 正しい対応: AUROCに加えて、常に有病率をベースラインとして示したAUPRCと決定曲線分析を報告します 理由: AUROCが0.95でも、モデルが臨床的には役に立たないことがあります。AUPRCとDCAにより、現実的な運用閾値でモデルが役立つかどうかが明らかになります

  • 誤り: クラス不均衡への主な対処法としてリサンプリング(SMOTE、オーバーサンプリング)を使う 正しい対応: まず判定閾値を調整します。リサンプリングが本当に必要な場合は、トレーニングフォールド内でのみ適用し、その後に再較正します 理由: リサンプリングは事前確率を歪め、確率較正を損ないます。「不均衡の問題」の多くは、実際には閾値の問題です

  • 誤り: 単一施設の研究から汎化可能性を主張する 正しい対応: 施設単位のホールドアウト、または別の病院、スキャナー、EHRベンダーによる外部検証を必須とします 理由: ある施設のデータには、その施設固有の集団、ワークフロー、コーディング慣行が反映されており、他の環境には汎化しません

  • 誤り: 事前学習コーパスと重複するデータで基盤モデルを評価する 正しい対応: 事前学習データと重複しない、カットオフ後のクリーンなベンチマーク、またはキュレーション済みのホールドアウトベンチマークを求めます 理由: 事前学習データと評価セットに少しでも重複があると性能が過大評価され、真の汎化能力が見えなくなります

  • 誤り: 分割前にデータセット全体から正規化統計量、欠損値補完パラメーター、特徴量選択結果を計算する 正しい対応: 各トレーニングフォールド内ですべての前処理ステップを再適合させ、それらをモデルの一部として扱います 理由: データセット全体を対象とした前処理ではテストセットの情報がトレーニングに漏れ、楽観的で再現性のない結果が生じます

  • 誤り: テストセットを使ってハイパーパラメーターを調整する(単一ループのCV) 正しい対応: ネストされたCVを使い、外側のループで性能を推定し、内側のループでハイパーパラメーターを調整します 理由: テストセットで調整した結果は汎化性能の推定ではなく、調整済みのスコアを示します。テストセットはもはや独立ではありません

  • 誤り: サブグループのサンプルサイズが小さいという理由で、サブグループ分析を省略する 正しい対応: サブグループを隠すのではなく、信頼区間が広くてもサブグループごとの性能を報告します 理由: サンプル数の少ないサブグループは、モデルの害を最も受けやすい場合があります。それについて沈黙することは安全を意味しません

  • 誤り: 較正を確認せず、AUROCの高いモデルをデプロイする 正しい対応: 常に較正(傾き、切片、信頼度図)を評価し、確率が観測率と一致しない場合は再較正します 理由: 確率は閾値、トリアージ、患者とのコミュニケーションに影響します。AUROCが高くても較正されていないモデルは、臨床的に危険です


準備状況チェックリスト(モデルの準備が整っていると判断する前に使用してください)

  • 臨床上の問い、意思決定の時点、導入ワークフローを文書化している。
  • 患者ごとに、インデックス時点、観察期間、予測ギャップ、予測期間を定義している。
  • データ分割が導入時の主張(患者、施設、時間、スキャフォールド)に合致している。
  • すべての前処理を各学習フォールド内で再適合している。
  • n が小さい場合はネストされた CV を実施し、時間的な主張にはフォワードチェイニング CV を実施している。
  • 単純なベースラインと臨床スコアのベースラインを報告している。
  • 識別能、キャリブレーション、意思決定曲線分析を報告している。
  • 事前に規定したサブグループ分析を区間とともに報告している。
  • 報告チェックリスト(TRIPOD+AI またはモダリティ固有のもの)を完了している。
  • 外部検証計画を策定しており、SaMD の場合は GMLP と PCCP の概要をまとめている。
  • データリーク監査を完了し、文書化している。

チェックが 1 つでも入っていない場合、「準備は整っていますか?」への答えは「いいえ」です。

参考文献

コメント