学習に使ったデータでモデルをテストしても、本当の実力はわかりません。そこで登場するのが、データの一部を最初から「テスト用」として取り分けておくホールドアウト検証です。汎化性能を評価するもっとも基本的な手法で、G検定ではk-分割交差検証との違いが定番の論点になります。

📖 ひと言でいうと

ホールドアウト検証とは、手元の教師データを訓練データとテストデータに分割し、訓練データで学習したモデルをテストデータで評価する手法です。hold out(取り分けておく)の名前どおり、模擬試験の問題を勉強用の教材から抜いて封印しておき、勉強が終わってから初見の状態で解かせて実力を測るイメージです。

🖼 1枚でわかるホールドアウト検証

ホールドアウト検証のポイント
  • やり方 — 教師データを訓練用とテスト用に分割し、1回だけ学習・評価する
  • 目的 — 未知のデータに対する性能(汎化性能)を見積もる
  • 分割比率 — 訓練:テスト = 70:30 や 80:20 が一般的
  • 長所 — 実装が簡単で計算コストが低い
  • 短所 — データが少ない・偏っていると評価が分割の運に左右される
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

教師データの一部を「テストデータ」として分離し、残りを「訓練データ」として学習を行う。この方法は、モデルの汎化性能を評価する一般的な手法である。訓練データで学習した後、テストデータでモデルの性能を評価することで、未知のデータに対するモデルの反応を推測できる。ただし、この手法はデータが少ない場合や偏っている場合には不適切な結果を生む可能性がある。一般的には、データを訓練セットとテストセットに分割する際の比率は、例えば70:30、80:20などとされることが多い。

ポイントは2つあります。1つ目は、テストデータを学習に一切使わないからこそ「未知のデータへの反応」を推測できる、という目的の部分です。2つ目は、この手法の弱点として「データが少ない場合や偏っている場合には不適切な結果を生む可能性がある」と明記されている点です。分割は1回きりなので、たまたま簡単な問題ばかりがテスト側に入れば実力以上に良い評価が、難しい問題が偏れば悪い評価が出てしまいます。

🔍 しっかり理解する

手順の流れ

ホールドアウト検証の流れはシンプルです。

教師データを分割
例: 訓練80% / テスト20%
訓練データで学習
テストデータには触れない
テストデータで評価
正解率やF値などを計算
汎化性能を推定
未知データでの実力の見積もり

分割はランダムに行うのが基本です。また、ハイパーパラメータの調整まで行う場合は、訓練データからさらに「検証データ」を切り出して訓練・検証・テストの3分割にすることもあります。テストデータはあくまで最終評価用に温存するのが原則です。

長所: シンプルで速い

ホールドアウト検証の最大の利点は、学習と評価が1回ずつで済むことです。実装が簡単で計算コストが低いため、データが十分に大きい場合や、ディープラーニングのように1回の学習に時間がかかる場合に実用的です。データが大量にあれば、1回の分割でもテストデータが母集団をよく代表するので、評価のブレは小さくなります。

短所: 分割の「運」に弱い

一方、分割は1回きりなので、どのデータがテスト側に入るかという偶然に評価が左右されます。特にデータ量が少ないと、この問題は顕著になります。たとえば陽性例が全体に少ない医療データで、たまたまテストデータに陽性例がほとんど入らなければ、見かけの精度は不当に高く出ます。この弱点を補うのがk-分割交差検証です。データをk個のグループに分け、テスト役を交代しながらk回の学習・評価を行って平均するため、すべてのデータが1回はテストに使われ、偏りの影響が軽減されます。その代わり計算コストはk倍かかります。

💡 具体例で考える

住宅価格を予測するモデルを10,000件の取引データで作るとします。ホールドアウト検証では、まず10,000件をランダムに8,000件(訓練)と2,000件(テスト)に分けます。8,000件で学習した後、モデルに2,000件の物件情報を見せて価格を予測させ、実際の成約価格との誤差を測ります。この2,000件は学習中に一度も見せていないので、その誤差は「新しく持ち込まれた物件への予測力」の見積もりとして使えます。

悪い例も見てみましょう。同じ課題でデータが100件しかない場合、テストデータは20件程度になります。たまたま駅近の高額物件が20件中15件を占めるような分割になれば、評価結果は市場全体での実力を反映しません。分割をやり直すたびに評価が大きくぶれるようなら、それはホールドアウト検証の限界のサインであり、計算コストを払ってでもk-分割交差検証へ切り替えることを検討すべき場面です。

⚠️ よくある誤解・紛らわしい用語

💡 ポイント
  • k-分割交差検証との混同 — ホールドアウト検証は「1回だけ分割して1回だけ評価」、k-分割交差検証は「k個に分割してテスト役を交代しながらk回評価して平均」です。信頼性は交差検証が上、計算コストの低さはホールドアウトが上、という対の関係で覚えましょう。
  • 「テストデータでの評価=訓練の一部」ではない — テストデータを見ながらモデルやハイパーパラメータを何度も調整すると、テストデータに間接的に適合してしまい評価が甘くなります。調整には検証データを使い分けるのが正しい姿です。
  • 「分割比率は必ず80:20」ではない — 70:30や80:20は代表的な例にすぎず、固定のルールではありません。データ量や課題に応じて決めます。
  • 汎化性能そのものとの混同 — 汎化性能は「未知データへの予測能力」という概念で、ホールドアウト検証はそれを測るための手法の1つです。役割の階層が違います。

📝 試験でのポイント

💡 ポイント
  • 「教師データの一部をテストデータとして分離し、残りを訓練データとして学習する」という定義文からホールドアウト検証を選ばせる問題が定番です。
  • k-分割交差検証との対比が最頻出です。「1回だけ分割」「計算コストが低い」「データが少ないと評価が不安定」がホールドアウト側、「すべてのデータをテストに使える」「計算コストが高い」が交差検証側のキーワードです。
  • 「データが少ない・偏っている場合には不適切な結果を生む可能性がある」という弱点を問う出題が想定されます。
  • 訓練・検証・テストの3分割における各データの役割(学習・調整・最終評価)を区別させる問題にも備えましょう。

📚 まとめ

💡 ポイント
  • ホールドアウト検証は、教師データを訓練データとテストデータに分割し、学習に使っていないデータで汎化性能を評価する基本手法です。
  • 分割比率は70:30や80:20などが一般的で、実装が簡単・計算コストが低いのが長所です。
  • 分割が1回きりのため、データが少ない・偏っている場合は評価が偶然に左右されるのが弱点です。
  • その弱点を補うのがk-分割交差検証で、両者の長所・短所は対で問われます。