Predictive Modeling
予測モデリングでは、過去のデータを使ってモデルを学習させ、未知の結果や将来の結果を推定します。ワークフロー、モデルの種類、評価、用途、コードを紹介します。
予測モデリングとは、過去のデータから統計モデルまたは機械学習モデルを構築し、顧客が解約するか、店舗が翌週にどれだけ販売するか、スキャン画像に病気の兆候があるかなど、まだ分からない、またはまだ起きていない結果を推定するプロセスです。モデルは、過去の例で入力特徴量と既知の結果との関係を学習します。これは教師あり学習の一種です。その後、その関係を新しいケースに適用し、多くの場合、予測値とともに確率や範囲も返します。予測分析は、マーケティング、金融、業務、医療の意思決定にこうしたモデルを適用するビジネス実務です。何が起きたかを要約する記述的分析と、何をすべきかを提案する処方的分析の中間に位置します。
予測モデリングのワークフロー#
プロジェクトではまず、予測対象と、その予測を活用する意思決定を定義します。次に、予測が行われる時点で入力が判明していた過去の例を集めます。特徴量エンジニアリングで生データをモデル入力に変換し、データを学習、検証、テストのセットに分割します。予測問題では時間順に分割し、モデルを学習期間より後の期間で常に評価します。ここでランダムに分割したり、答えを符号化した特徴量を使ったりすると、データリークが発生してスコアが水増しされます。保留データを使って候補モデルを単純なベースラインと比較し、デプロイ後はデータドリフトを監視します。環境の変化に伴い、モデルが学習した関係が弱まるためです。
評価には意思決定に合った指標を使います。分類では適合率、再現率、ROC曲線下面積、数値予測では平均絶対誤差(MAE)または二乗平均平方根誤差を使用します。交差検証では、複数の学習・テスト分割の平均を取ることで、小規模データセットでの性能を推定します。この例ではscikit-learnを使い、患者のベースライン測定値から1年後の糖尿病の進行を予測します。常に平均値を予測するベースラインと2つのモデルを比較します。
from sklearn.datasets import load_diabetes
from sklearn.dummy import DummyRegressor
from sklearn.ensemble import HistGradientBoostingRegressor
from sklearn.linear_model import Ridge
from sklearn.model_selection import cross_val_score
# 442 patients: 10 baseline measurements and disease progression one year later
X, y = load_diabetes(return_X_y=True)
models = {
"Baseline (always predict the mean)": DummyRegressor(),
"Ridge regression": Ridge(alpha=0.1),
"Gradient-boosted trees": HistGradientBoostingRegressor(max_depth=3, random_state=0),
}
for name, model in models.items():
# Mean absolute error on held-out folds of 5-fold cross-validation
scores = cross_val_score(model, X, y, cv=5, scoring="neg_mean_absolute_error")
print(f"{name}: MAE {-scores.mean():.1f}")ベースラインの平均誤差は進行スコアで66.0ポイント、リッジ回帰は44.6ポイント、勾配ブースティング木は46.5ポイントです。どちらのモデルも誤差を約3分の1削減し、この442人の患者では、より単純な線形モデルのほうが高精度です。
予測モデルの種類#
予測モデルは、推定する結果によって異なります。ロジスティック回帰や決定木などの分類モデルはカテゴリを予測し、通常はその確率も出力します。線形回帰などの回帰モデルは数値を予測します。時系列の予測モデルは、系列の過去の値、季節性、外部要因から将来の値を予測します。生存時間モデルは、機械の故障などのイベントが起きるまでの時間を予測し、イベントがまだ発生していないケースも扱います。表形式データでは、正則化線形モデルやランダムフォレスト、XGBoostなどの木のアンサンブルが一般的です。一方、ニューラルネットワークは画像、音声、テキストで主流となっており、表形式基盤モデルはデータセットごとにモデルを学習させずに新しいテーブルを予測します。
コンピュータービジョンにおける予測モデリング#
ビジョンモデルは、ピクセルを入力とする予測モデルです。YOLO26の予測モードは、画像内で検出した各物体について、予測クラス、信頼度スコア、ボックス座標を返します。予測から得られる物体数は、勤務人数を決めるための時間帯別の歩行者数など、後続の予測モデルに入力する特徴量としてよく使われます。
用途#
- 予知保全: 振動、温度、稼働時間のデータで学習したモデルが部品の故障時期を推定するため、固定スケジュールではなく故障前に修理できます。
- 医療: リスクモデルは患者記録から再入院や敗血症の可能性を推定し、画像モデルは放射線科医が優先して確認すべき所見の可能性を示します。
- 信用リスクおよび不正利用のスコアリング: 銀行は借り手が債務不履行に陥る確率やカード取引が不正である確率を予測し、承認時に各カード取引をリアルタイムでスコアリングします。
- 需要および在庫計画: 小売業者は過去の実績、価格、販促、休日のデータから店舗・商品別の売上を予測し、発注する在庫量を決定します。
予測モデリングと関連用語#
- データマイニング: 予測対象の有無にかかわらず、大規模なデータセットからパターン、クラスタ、関連性を探索します。一方、予測モデリングは常に特定の結果を推定します。
- 生成AI: データ自体の分布をモデル化して新しいテキスト、画像、音声を生成します。一方、予測モデルは入力を目標値に対応付けます。
- 因果推論: 介入した場合に何が起こるかを推定します。予測モデルは相関だけからその問いに答えることはできません。1990年代の肺炎患者の記録で学習したモデルは、喘息患者の死亡リスクが低いと学習しました。喘息患者は集中治療室に直接入院することが多かったためです。この予測に基づいて行動すれば、リスクの高い患者を帰宅させてしまう可能性がありました。










