業界の最新動向をチェック

エリアマーケティングラボ

ノウハウ

過学習とデータリークの違いとは?機械学習で精度を誤る2つの落とし穴を徹底解説

2026/08/17

【本コラムで分かること】
・過学習とデータリーク、それぞれの定義と仕組み
・両者の決定的な違いと見分け方
・「最終モデルで全データを使うのはリークでは?」という疑問への回答
・前処理・変数選択で陥りやすいリークの具体例と対策
・GIS・需要予測の実務で注意すべき独自のリークパターン


専門用語には都度補足を添えていますので、データ分析を学び始めた方にも読み進めていただけます。過学習とデータリークはどちらも「評価では良い成績なのに本番で使えない」という結果を招きますが、原因はまったく別物です。本文で違いと対策を順に解説します。

「精度が良いのに本番で当たらない」のはなぜか

売上予測モデルや需要予測モデルを構築していると、「評価時は高い精度が出たのに、実際に運用してみると思ったほど当たらない」という経験をされた方は少なくないと思います。この現象の背景にあるのが、冒頭で挙げた過学習とデータリークです。

どちらも「手元の評価では良く見えるのに、実際には使えない」という点では似ていますが、原因が起きている場所も対処法もまったく異なります。この違いを理解しないまま対策を打つと、すれ違いが起こります。たとえば過学習対策(モデルを複雑にしすぎないようにする、サンプル数を増やすなど)をいくら重ねても、原因がリークであれば精度の過大評価は解消しません。

なお「データリーク」という言葉は、機械学習と情報セキュリティ(情報漏えい)の両分野で使われます。本コラムで扱うのは前者、すなわちモデルの学習・評価プロセスに本来使えない情報が混入する現象です。


過学習とは何か

過学習とは

過学習とは、モデルが学習データの特徴を必要以上に細かく学習し、偶然のノイズまで覚えてしまう状態です。テストの過去問を丸暗記した結果、少し出題パターンが変わると点が取れなくなる状況に似ています。見分け方は学習データと評価データの精度差(汎化ギャップ)です。学習精度だけが極端に高ければ過学習、両方とも低ければモデルの表現力不足(未学習)が疑われます。

過学習は、モデルの複雑さがデータ量に対して過大なときに起こります。決定木を必要以上に深くする、多項式回帰の次数を上げすぎる、変数を無闇に増やすといった操作がリスクを高めます。逆にデータ量を増やすとノイズが平均化されるため、過学習を抑える方向に働きます。

代表的な対処法としては、正則化(制約をかけてモデルをシンプルに保つ手法)、決定木系モデルの深さや葉の数に上限を設ける方法、勾配ブースティング(LightGBMなど)で評価誤差が下がらなくなった時点で学習を打ち切るearly stopping(早期終了)などがあります。いずれも「モデルにブレーキをかける」発想が共通しています。


データリークとは何か

データリークとは

データリークとは、本来その時点では知り得ないはずの情報が、学習や評価のプロセスに紛れ込んでしまうことです。過学習が「モデルが学びすぎる」問題であるのに対し、データリークは「使ってはいけない情報を使ってしまう」問題です。

目的変数そのものが説明変数に混ざるような分かりやすいケースより、実務で多いのは前処理段階のリークです。標準化・欠損値補完・変数選択といった処理は、平均・分散・補完値などの「データから学んだ情報」を生成します。この統計量を学習データと評価データを合わせた全体から計算してしまうと、評価データの情報が変換ルールに溶け込み、「未知のデータ」ではなくなります。判定の目安は「その変数を作る計算に、評価データの値が1つでも使われているか」です。

標準化・欠損値補完

平均・分散は学習データだけから計算し、評価データにはその値を当てはめます。全データから計算してしまうと評価データの情報が漏れ込みます。

カテゴリ変数(※)

都道府県などを「そのカテゴリの目的変数の平均」で数値化する手法は、全データで計算すると評価データの答えが変数に直接練り込まれます。リークの中でも影響が特に大きいパターンです。

※数値ではなく分類・グループを表す変数(都道府県、性別、店舗タイプなど)

変数選択・外れ値の決定

「どの変数を残すか」「外れ値の境界をどこにするか」を全データで判断すると、その判断に評価データの情報が含まれてしまいます。いずれも学習データの中だけで完結させる必要があります。

そのほか、時系列データをランダムに分割して未来の情報で学習してしまうケースや、同一の顧客・店舗・商品が学習と評価の両方に混在するケースも典型的です。時系列であれば学習・評価・テスト期間を時間順に分ける必要があります。


過学習とデータリークの決定的な違い

過学習とデータリークの決定的な違い

過学習とデータリークは、どちらも「評価では良かったのに本番で崩れる」という同じ症状を引き起こしますが、原因の在りかがまったく異なります。過学習はモデルの内側で起きる問題であり、データリークはデータの作り方・評価の手続きで起きる問題です。

この違いは評価データでの現れ方にも表れます。過学習は学習と評価の性能差として正直に姿を現すため、きちんと評価すれば気づけます。一方でデータリークは、評価データ自体にも同じ情報の漏れが含まれているため、評価段階では「素晴らしい性能」に見えてしまい、問題が発覚するのはたいてい本番投入後です。過学習は「見える」問題、データリークは「見えない」問題と言い換えることもできます。

観点 過学習 データリーク
原因の在りか モデル(複雑すぎる) データ・手続き(情報の混入)
手続きが正しくても起きるか 起きる 起きない(手続きのミスが原因)
評価データでの性能 高く出る(実力以上に見える) 高く出る(実力以上に見える)
評価で見抜けるか 見抜ける 見抜けない
対処 正則化、複雑さを下げる、サンプル数を増やす 前処理を分割後に行う、変数を精査、時系列は時間順に分割する

過学習を防ぐのは「良いモデルを作る」努力であり、データリークを防ぐのは「評価そのものを信じられるものにする」努力です。目的からして別物であることを意識しておくと、対策の優先順位を誤らずに済みます。正則化やデータ拡充をいくら重ねても、前処理の順序ミスによるリークは直りません。逆に前処理を正しく行っても、モデルが複雑すぎれば過学習は起こります。両者は独立に点検する必要があります。


【実務で誤解しやすい論点】最終学習で全データを使うのはリークではないのか

【実務で誤解しやすい論点】最終学習で全データを使うのはリークではないのか

過学習とデータリークの違いを理解したうえで、実務でしばしば疑問に挙がるのが「交差検証やホールドアウトではデータを分けるのに、なぜ最終モデルでは全データを使ってよいのか。リークにならないのか」という問いです。

結論から言えば、最終学習それ自体はリークではありません。リークとは評価を汚染し性能の見積もりを歪める現象であり、「性能を測る」行為とセットです。最終学習の工程では性能を測っていないため、汚染されようがありません。交差検証の各フォールドで評価データまで見て変数を選べばリークですが、最終学習は性能の見積もりが完了したあとの工程であり、同じ「全データを見る」行為でも意味が正反対です。

料理に例えると、交差検証は小皿に取り分けて塩加減を確かめる工程、最終学習はその塩加減で鍋全体を仕上げる工程です。塩加減(モデルの複雑さ)が適切であれば、鍋を大きくしても味は壊れません。

また「全データを使う=過学習」でもありません。過学習に効くのは主にモデルの複雑さであり、データが多いほどノイズが平均化されるため、むしろ過学習を抑える方向に働きます。第1段階「どういうモデルにするか決める」では分割評価が必要ですが、第2段階「決めた設計で最終モデルを作る」ではデータを増やしても過学習には転じません。

ただし、全データで作った最終モデルをその同じデータで再評価すると性能の過大評価になります。最終モデルの性能として報告してよいのは、交差検証やホールドアウトで得た精度指標です。


実務での見分け方チェックリスト

過学習とデータリークを防ぐための実務チェックリストを整理します。

変数を作る・選ぶ段階

  • その変数を作るための計算に、評価データやテストデータの値が使われていないか
  • 標準化の平均・分散、欠損値補完の代表値は学習データだけから計算しているか
  • カテゴリ変数を目的変数の平均値などで数値化する場合、目的変数の情報が評価側に漏れていないか
  • 変数選択は各交差検証フォールドの学習部分の中で完結しているか
  • 外れ値を除去する際、全データを見て決めていないか

データ分割

  • 時系列データを時間順序を無視してランダムに分割していないか
  • 同一の顧客・店舗・商品のレコードが学習データと評価データの両方に混在していないか

モデル

  • 学習データと評価データの精度差(汎化ギャップ)を必ず確認しているか
  • 評価精度が不自然に高すぎる場合、真っ先にリークを疑っているか

「ルールを決める段階」と「ルールを適用する段階」を分け、ルールを決めるのは学習データだけに許すという非対称性を徹底することが、リークを避ける最も確実な作法です。Pythonでモデルを構築している場合、scikit-learnのPipelineに前処理と変数選択をまとめて交差検証にかけると、この非対称性を機械的に守れます。


GISデータ・需要予測モデルにおける注意点

GISデータ・需要予測モデルにおける注意点

出店計画や商圏分析、需要予測のようにGISデータ(地理情報システムのデータ。地図上の位置に紐づいた情報のことです)を扱うモデリングでは、一般的な機械学習の教科書には出てこない独自のリークパターンにも注意が必要です。

新規出店の可否を予測するモデルで、出店後に確定する実績売上や来客数を出店前の予測時点の変数に含めてしまうと、典型的な未来情報の混入となります。予測時点で本当に利用できる情報かどうかを、変数ひとつひとつについて確認する必要があります。

また、同一チェーンや同一商圏に属する店舗のデータが学習データと評価データの両方に混在すると、モデルは「未知の立地」への汎化性能ではなく、そのチェーンや商圏特有の癖を学習しているだけになりかねません。店舗単位や商圏単位でデータを分割するなど、何を「未知データ」として扱いたいのかを明確にしたうえで分割方法を設計することが重要です。

なお、重回帰(複数の説明変数から目的変数を直線的な式で予測する、最も基本的な回帰分析の手法)とLightGBMのような決定木系モデルでは過学習への感度も異なります。重回帰は表現力が低いため過学習しにくい一方、LightGBMは表現力が高いため評価データを使った評価がほぼ必須になります。どちらの手法を採用する場合も、評価の手続きを正しく設計するという原則そのものは変わりません。


よくある質問

Q. 過学習とデータリーク、どちらを先に疑うべきですか。

A. 評価精度が「不自然なほど高い」場合はまずデータリークを疑うのが定石です。過学習であれば学習精度と評価精度に差が出ますが、リークがあると評価精度自体が実力以上に高く出るため、通常の過学習対策では改善しません。

Q. 正則化を強めればデータリークも改善しますか。

A. 改善しません。正則化やモデルの単純化は過学習には効きますが、リークはデータの作り方・分割方法という設計上のミスが原因であるため、前処理の順序やデータ分割の単位そのものを見直す必要があります。

Q. ホールドアウトでも交差検証と同じ注意が必要ですか。

A. 必要です。「評価対象を覗いてはいけない」という原則は、分割の回数に依存しません。1回だけ分割するホールドアウトでも、分割前に全データで変数選択や前処理を行えば同様にリークが起こります。ホールドアウトと交差検証は「分割して評価する」という同じ思想の実装違いにすぎず、違うのは推定の安定性と計算コストだけです。

まとめ

まとめ

過学習とデータリークは、どちらも「評価では良かったのに本番で使えない」という同じ症状を引き起こしますが、原因はまったく異なります。過学習は「覚えすぎ」であり、モデルの内側で起きる正直な失敗です。データリークは「見てはいけないものを見ている」ことであり、評価の手続きそのものを汚染する見えない失敗です。

この違いを理解しておくことは、単なる用語の整理にとどまりません。「なぜ最終モデルは全データで作ってよいのか」「なぜ前処理は分割後に行う必要があるのか」といった実務上の判断を、原則に立ち返って一貫して説明できるようになります。モデルの精度を追い求める前に、まず評価の設計がクリーンであるかどうかを疑う視点を持つことが、信頼できる予測モデルづくりの第一歩です。





監修者プロフィール

市川 史祥

技研商事インターナショナル株式会社
取締役 CMO シニアコンサルタント

一般社団法人LBMA Japan 理事
ロケーションプライバシーコンサルタント
流通経済大学客員講師/共栄大学客員講師
統計士/医療経営士/介護福祉経営士
Google AI Essentials/Google Prompt Essentials

市川 史祥

1972年東京生まれ。早稲田大学政治経済学部卒業。不動産業、出版社を経て2002年より技研商事インターナショナルに所属。 小売・飲食・メーカー・サービス業などのクライアントへGIS(地図情報システム)の運用支援・エリアマーケティング支援を行っている。わかりやすいセミナーが定評。年間講演実績90回以上。

電話によるお問い合わせ先:03-5362-3955(受付時間/9:30~18:00 ※土日祝祭日を除く)
Webによるお問い合わせ先:https://www.giken.co.jp/contact/

人気のコラム

キャンペーン
期間限定無償提供キャンペーン