機械学習で研究を始めるとき、最初に決めるべきことはアルゴリズム名ではありません。まず決めるべきなのは、「自分の研究は何を出力したいのか」です[1]。
退院時 FIM の点数を予測したいのか。歩行自立の有無を予測したいのか。似た回復パターンの患者群を見つけたいのか。あるいは、カルテ情報から退院支援サマリーを作成したいのか。出力したいものが変われば、選ぶモデル、評価指標、Methods で書くべき内容も変わります。
本稿では、医療AI研究でよく使われる4つのタスク、すなわち「回帰」「分類」「クラスタリング」「生成」を、リハビリテーション研究の具体例とともに整理します。
本稿は、第1部「医療AI・機械学習の基礎地図」の第3記事です。前記事「統計モデル・機械学習・生成AIの違い」では、説明・予測・生成という大きな目的の違いを整理しました。本稿では、機械学習や医療AI研究で実際に扱うタスクを、より具体的に見ていきます。次の記事「医療AI研究の進め方」と合わせて読むことで、研究疑問をどのようにモデル設計と評価指標につなげるかが見えやすくなります。
// 01 · LEARN OUTCOMESこの記事でわかること
読了後、次の4つを説明できるようになります。
- 回帰・分類・クラスタリング・生成の違いを、出力の型から整理できる
- FIM、自宅退院、歩行自立、回復パターン、退院支援サマリーを例に、適切なタスクを選べる
- 教師あり学習と教師なし学習の違いを、「正解ラベルの有無」から説明できる
- Methods に「本研究はどのタスクとして設計したか」を明確に書ける
// 02 · CONCLUSIONまず結論
// 03 · FIGURE直感的な図解
4つのタスクは、「何を出力したいか」で見分けると理解しやすくなります。連続値を出したいなら回帰、カテゴリを出したいなら分類、似た症例群を見つけたいならクラスタリング、文章・画像・波形などを新しく作りたいなら生成です。
// 04 · CLINICAL医療・リハビリでの具体例
同じ「脳卒中後リハビリテーション患者のデータ」を使っても、研究の問いが変わればタスクは変わります。タスク選択は、データの種類だけで決まるのではなく、「何を明らかにしたいか」「何を出力したいか」で決まります。
「退院時 FIM 運動項目は何点になるか?」
この問いでは、入院時の年齢、発症から入院までの日数、入院時 FIM、麻痺の重症度、認知機能などを用いて、退院時 FIM 運動項目の点数を予測します。出力は連続値です。
評価指標としては、MAE、RMSE、R²、予測区間などを用います。臨床的には、退院時の ADL 到達度を見積もり、目標設定や家族説明の参考にする場面が考えられます。
「この患者は退院時に歩行自立できるか?」
この問いでは、入院時情報から、退院時に歩行自立するかどうかを予測します。出力は「自立 / 非自立」の2値です。歩行自立を FIM 歩行項目 6点以上などで定義する場合もあります。
評価指標としては、AUC、感度、特異度、PPV、NPV、F1、calibration、decision curve analysis などを用います。臨床的には、退院支援、訓練目標、リスク説明に関わる予測モデルになります。
「リハビリ患者の回復パターンは何種類に分けられるか?」
この問いでは、入院から退院までの FIM 推移、歩行速度、訓練量、認知機能などを用いて、似た経過をたどる症例をグループ化します。あらかじめ「急速回復群」「緩徐回復群」という正解ラベルがあるわけではありません。
k-means、Gaussian mixture model、階層クラスタリングなどを用いて、データの中にある構造を探索します。ただし、得られたクラスタがそのまま臨床的サブタイプを意味するとは限りません。クラスタの安定性、解釈可能性、別データでの再現性を確認する必要があります[2]。
「退院支援サマリーの下書きを作成できるか?」
この問いでは、匿名化されたカルテ情報やリハビリ記録をもとに、退院支援カンファレンス用の要約文を作成します。出力は文章です。LLM を用いた退院支援サマリー作成は、生成タスクの一例です。
評価では、文章の自然さだけでなく、事実誤認、重要情報の抜け、ハルシネーション、個人情報保護、医療者による確認体制を考える必要があります。生成AIの出力は、臨床判断の代替ではなく、医療者が確認する下書きとして扱うのが原則です[5]。
FIM 項目のように 1〜7 点の順序を持つ尺度は、単純な回帰や分類だけでは扱いに迷うことがあります。連続値に近い尺度として回帰で扱うこともありますが、厳密には順序のあるカテゴリとして、順序回帰(ordinal regression)を検討する場面があります[3]。
また、「歩行自立 / 監視 / 介助」のように3カテゴリ以上に分ける場合は、多値分類になります。臨床尺度を機械学習に使うときは、点数の意味、順序性、臨床的なしきい値を確認してからタスクを決めることが重要です。
// 05 · THEORY数式・理論
4つのタスクは、数式で見ると「何を小さくしたいのか」「何を学習したいのか」が異なります。初学者は式を完全に覚える必要はありません。ここでは、タスクごとに最適化している対象が違うことだけ押さえてください。
回帰
回帰では、予測値と実測値の差を小さくすることを目指します。退院時 FIM を予測する場合、実際の FIM 点数と予測点数のズレが小さいほどよいモデルと考えます。代表的な損失は二乗誤差(MSE)です。
θ̂ = argmin_θ (1/N) Σᵢ ( yᵢ - f(xᵢ; θ) )²
分類
分類では、正しいカテゴリに高い確率を割り当てることを目指します。歩行自立を予測する場合、実際に自立した患者には「自立」の確率を高く、非自立だった患者には「非自立」の確率を高く出せるモデルが望ましいと考えます。2値の場合は交差エントロピー(対数損失)が標準です。
θ̂ = argmin_θ -(1/N) Σᵢ [ yᵢ log p̂ᵢ + (1-yᵢ) log (1-p̂ᵢ) ]
ただし p̂ᵢ = σ( f(xᵢ; θ) ), σ はシグモイド
クラスタリング
クラスタリングでは、同じグループ内の症例は似ていて、異なるグループ同士はできるだけ違うように分けることを目指します。ただし、正解ラベルがないため、得られたグループが臨床的に意味を持つかは別途検討が必要です。k-means の場合、クラスタ内の散らばりを最小化します。
(C₁,...,C_K) = argmin Σ_k Σ_{x ∈ C_k} ‖ x - μ_k ‖²
μ_k はクラスタ k の重心
生成
生成では、学習データの分布をもとに、新しい文章、画像、波形などを作ります。生成された出力が自然に見えるだけでは不十分で、医療では事実性、安全性、臨床的妥当性を確認する必要があります。形式的には、データの確率分布 p(x) を学習し、そこからサンプリングします。
θ̂ = argmax_θ E_x [ log p_θ(x) ] ← 尤度最大化
or argmin_θ D( p_data(x), p_θ(x) ) ← 分布距離最小化
生成: x' ~ p_θ(x)
注目すべき点は、4つのタスクで最適化している対象が異なることです。回帰は連続値の誤差、分類はカテゴリ予測の誤り、クラスタリングはデータ内部の構造、生成は新しい出力の分布を扱います。したがって、評価指標も論文での書き方も変わります。
// 06 · IMPLEMENTATION · PYTHON実装
ここでは、4つのタスクの違いをコードの形で確認します。同じリハビリテーション領域のデータを使っていても、出力したいものが変われば、モデル、評価指標、コードの書き方も変わります。以下は教育用の仮想データを想定したサンプルです。
# ============================================
# 教育用サンプル
# 実臨床データを使う場合は、個人情報保護、
# 倫理審査、施設ルール、利用規約を必ず確認してください。
# ============================================
# ============================================
# (1) 回帰:
# 「退院時FIM運動項目は何点になるか?」
# ============================================
from sklearn.linear_model import Ridge
from sklearn.metrics import mean_absolute_error, r2_score
reg = Ridge(alpha=1.0)
reg.fit(X_train, y_train_fim_motor)
y_pred_fim = reg.predict(X_test)
print("MAE:", mean_absolute_error(y_test_fim_motor, y_pred_fim))
print("R²:", r2_score(y_test_fim_motor, y_pred_fim))
# 出力:
# 退院時FIM運動項目の予測値
# 評価:
# MAE, RMSE, R², 予測区間など
# ============================================
# (2) 分類:
# 「退院時に歩行自立できるか?」
# ============================================
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score
clf = LogisticRegression(max_iter=1000)
clf.fit(X_train, y_train_walk_independent)
y_prob_walk = clf.predict_proba(X_test)[:, 1]
print("AUC:", roc_auc_score(y_test_walk_independent, y_prob_walk))
# 出力:
# 歩行自立の予測確率
# 評価:
# AUC, 感度, 特異度, calibration, decision curve analysisなど
# ============================================
# (3) クラスタリング:
# 「似た回復パターンの症例をグループ化する」
# ============================================
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
km = KMeans(n_clusters=3, n_init=10, random_state=42)
cluster_labels = km.fit_predict(X_fim_trajectory)
print("Silhouette:", silhouette_score(X_fim_trajectory, cluster_labels))
print("Cluster labels:", cluster_labels)
# 出力:
# 各症例のクラスタ番号
# 注意:
# クラスタ番号に臨床的意味があるとは限らない。
# 安定性、解釈可能性、別データでの再現性を確認する。
# ============================================
# (4) 生成:
# 「退院支援サマリーの下書きを作成する」
# ============================================
# 注意:
# 以下は特定のAPIに依存しない擬似コードです。
# 実データを使う場合は、患者情報を匿名化し、
# 個人情報保護、倫理審査、施設ルール、利用規約を確認してください。
anonymized_rehab_note = """
教育用に匿名化されたリハビリ記録をここに入れる。
実在患者の情報は入れない。
"""
prompt = f"""
以下の匿名化済みリハビリ記録から、
退院支援カンファレンス用の要約を300字で作成してください。
条件:
- 事実と推測を分ける
- 不明な情報は「不明」と書く
- 医学的判断を断定しない
- 退院支援に必要な情報を優先する
リハビリ記録:
{anonymized_rehab_note}
"""
summary = llm.generate(prompt)
print(summary)
# 出力:
# 退院支援サマリーの下書き
# 評価:
# 事実性、安全性、重要情報の抜け、ハルシネーション、人間による確認
4つのコードは、同じ「リハビリテーション領域のデータ」を扱っていても、出力がまったく異なります。回帰は連続値、分類はカテゴリまたは確率、クラスタリングはグループ番号、生成は文章やデータを出力します。
研究計画の段階で「自分が欲しい出力は何か」を明確にしておくと、アルゴリズム、評価指標、論文での説明が自然に決まります。
// 07 · MYTHSよくある誤解
- 分類は回帰の結果をしきい値で切ればよい
- 場合によっては回帰の出力をしきい値で分類に使うこともありますが、最初から分類が目的なら分類タスクとして設計するのが基本です。回帰は連続値の誤差を小さくするように学習し、分類はカテゴリや確率予測の誤りを小さくするように学習します。目的が違えば、損失関数も評価指標も変わります。
- クラスタリングで見つかった群は、すぐ臨床的サブタイプと呼べる
- クラスタリングは、数学的に似ている症例をグループ化する方法です。得られた群が臨床的に意味のあるサブタイプかどうかは、別の問題です。クラスタ数の妥当性、特徴量の選び方、安定性、外部データでの再現性、臨床的解釈を確認してから慎重に述べる必要があります。
- 生成AIで作ったデータは、不足している実データの代わりになる
- 生成データは、教育、シミュレーション、プライバシー保護、プロトタイプ作成には役立つことがあります。しかし、合成データだけで学習したモデルを実患者に適用する場合は慎重な検証が必要です。実データとの分布の違い、重要な少数例の欠落、バイアスの再現、安全性を確認しなければなりません。
- タスクはアルゴリズム名で決まる
- タスクはアルゴリズム名ではなく、研究の問いと出力の型で決まります。たとえばロジスティック回帰は分類に使われますが、「回帰」という名前が入っているから回帰タスクになるわけではありません。逆に、ニューラルネットワークは回帰、分類、生成のいずれにも使えます。まず研究目的を決め、その後にアルゴリズムを選ぶことが重要です。
// 08 · WRITING論文での書き方
Methods 冒頭で示すべきこと
- 本研究が、回帰・分類・クラスタリング・生成のどのタスクとして設計されたかを明記する
- 出力したい変数の型を明確にする(例:連続値、2値、多値、順序カテゴリ、クラスタ番号、生成文)
- 教師あり学習か教師なし学習かを説明する
- なぜそのタスクとして扱うのが臨床的に妥当なのかを説明する
- タスクに合った評価指標を事前に定める
タスク別の評価指標
- 回帰:MAE、RMSE、R²、予測区間、Bland-Altman plot など。FIM や歩行速度などの連続値をどの程度正確に予測できるかを評価する。
- 分類:AUC、感度、特異度、PPV、NPV、F1、calibration、decision curve analysis など。歩行自立や自宅退院などの確率予測と臨床的有用性を評価する。
- クラスタリング:Silhouette、Davies-Bouldin、Calinski-Harabasz、クラスタ数を変えた感度分析、再現性、臨床的解釈可能性など。数値指標だけでなく、得られた群が臨床的に意味を持つかを検討する。
- 生成:人間評価、事実性、安全性、重要情報の抜け、ハルシネーション率、専門職による評価、下流タスクでの有用性など。医療文書生成では、自然さよりも正確性と安全性を重視する。
査読者に指摘されやすい点
- 分類タスクなのに、AUC や calibration を示していない
- 回帰タスクなのに、誤差の大きさが臨床的に許容できるかを議論していない
- クラスタリングでクラスタ数を固定した根拠がない
- クラスタリングで得られた群を、検証なしに臨床的サブタイプと断定している
- 生成AIの出力を、人間評価や安全性評価なしに「有用」と結論づけている
- タスクと評価指標が一致していない
- 「なぜこのタスクとして設計したのか」が Methods に書かれていない
報告ガイドラインは、研究の種類に応じて選びます。回帰や分類として予測モデルを作る研究では、TRIPOD+AI[4] の確認が基本になります。観察研究として因子の関連を検討する場合は STROBE が参考になります。AI を組み込んだ介入の臨床試験であれば、CONSORT-AI[5] や SPIRIT-AI[6] を確認します。生成AIを用いる研究では、使用したモデル、バージョン、プロンプト、入力データの扱い、匿名化、評価者、評価基準、ハルシネーション対策、安全性確認を明記することが重要です。
// 09 · CHECKLISTチェックリスト
研究計画段階でタスクを決めるためのチェックリスト 7 項目。
- 01研究で出力したいものが、連続値・カテゴリ・グループ・生成物のどれかを説明できる
- 02回帰・分類・クラスタリング・生成のどれとして設計するかを Methods に明記している
- 03アウトカム変数または出力の型を、連続値・2値・多値・順序カテゴリ・生成文などとして説明している
- 04タスクに合った評価指標を選んでいる
- 05分類では calibration や臨床的有用性を検討している
- 06クラスタリングではクラスタ数の根拠、安定性、臨床的解釈を確認している
- 07生成AIでは事実性、安全性、ハルシネーション、人間による確認体制を評価している
// 10 · QUIZミニクイズ
-
Q1「入院時情報から退院時 FIM 運動項目の点数を予測したい」。最も適切なタスク類型は?
- 分類
- 回帰
- クラスタリング
- 生成
SHOW ANSWER
B. 退院時 FIM 運動項目の点数という連続値を予測したいので、回帰タスクです。評価には MAE、RMSE、R²、予測区間などを用います。 -
Q2「入院時情報から、退院時に歩行自立できるかどうかを予測したい」。最も適切なタスク類型は?
- 回帰
- 分類
- クラスタリング
- 生成
SHOW ANSWER
B. 歩行自立の有無というカテゴリを予測したいので、分類タスクです。AUC、感度、特異度、calibration、decision curve analysis などで評価します。 -
Q3「週ごとの FIM 推移から、似た回復パターンの患者群を見つけたい」。最も適切なタスク類型は?
- 回帰
- 分類
- クラスタリング
- 生成
SHOW ANSWER
C. あらかじめ正解ラベルがなく、データの構造から似た症例をグループ化したいので、クラスタリングです。ただし、得られた群が臨床的に意味を持つかは、安定性や外部データでの再現性を確認する必要があります。 -
Q4「匿名化されたリハビリ記録から、退院支援サマリーの下書きを作成したい」。最も適切なタスク類型は?
- 回帰
- 分類
- クラスタリング
- 生成
SHOW ANSWER
D. 新しい文章を作成するため、生成タスクです。評価では、文章の自然さだけでなく、事実性、安全性、重要情報の抜け、ハルシネーション、人間による確認を重視します。
// REF参考文献
- Hastie T, Tibshirani R, Friedman J. The Elements of Statistical Learning. 2nd ed. Springer, 2009.
- Murphy KP. Probabilistic Machine Learning: An Introduction. MIT Press, 2022.
- Agresti A. Analysis of Ordinal Categorical Data. 2nd ed. Wiley, 2010.
- Collins GS, Moons KGM, et al. TRIPOD+AI statement: updated guidance for reporting clinical prediction models that use regression or machine learning methods. BMJ 2024;385:e078378.
- Liu X, Rivera SC, Moher D, Calvert MJ, Denniston AK. Reporting guidelines for clinical trial reports for interventions involving artificial intelligence: the CONSORT-AI extension. BMJ 2020;370:m3164.
- Rivera SC, Liu X, Chan AW, Denniston AK, Calvert MJ. Guidelines for clinical trial protocols for interventions involving artificial intelligence: the SPIRIT-AI extension. BMJ 2020;370:m3210.