1行定義
ホールドアウト検証とは、手元のデータを学習用と評価用に一度だけ分け、学習に使わなかった評価用データでモデルの性能を測る方法のことです。
くわしく
ホールドアウト検証は、モデルの汎化性能を見積もる、最も単純で基本的な方法です。手元のデータの一部を取っておき(hold out)、学習には使わずに評価だけに使います。
手順
- データを無作為に並べ替え、学習用と評価用に分けます。たとえば1,000件なら、800件で学習し、200件で評価します。
- 学習用データだけでモデルを学習します。
- 評価用データで予測し、正解率やMSEなどの指標を計算します。
学習に使ったデータで評価すると、答えを覚えただけのモデルでも高い成績が出ます。評価用データを学習から切り離すことで、未知のデータに対する性能の目安が得られます。
検証用とテスト用
ハイパーパラメータを調整する場合は、データを学習用・検証用・テスト用の3つに分けます。検証用データの成績を見ながら調整を重ねると、その成績は合わせ込んだ分だけ楽観的になるためです。テスト用データは最後の評価まで使わずに残します。
長所と短所
長所は、学習と評価が1回ずつで済み、計算が軽いことです。データが大量にあるときや、1回の学習に時間がかかるディープラーニングで使いやすい方法です。
短所は、評価値が分け方の偶然に左右されることです。評価用データが少ないと、どのデータが入ったかで成績が大きく揺れます。
交差検証との違い
k-分割交差検証は、データをk個に分け、評価役を入れ替えながら学習と評価をk回繰り返して平均をとります。すべてのデータが一度ずつ評価に使われるため評価は安定しますが、計算量はおよそk倍です。データが少ないときは交差検証、多いときや学習が重いときはホールドアウト検証、というのが基本の使い分けです。
なお、時系列データでは無作為に分けず、古い期間を学習用、新しい期間を評価用にします。
覚え方
「hold out=取っておく。評価用データは最後まで取っておく」と覚えます。
G検定での出題
出題のされ方
データを一度だけ分けて評価するという手順と、計算が軽い一方で分け方の偶然に評価値が左右されやすい点、k-分割交差検証との使い分けが、場面設定や正誤の判断の形で問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| ホールドアウト検証このページの用語 | 手元のデータを学習用と評価用に一度だけ分け、学習に使わなかった評価用データでモデルの性能を測る方法 |
| 交差検証 | データを複数のグループに分け、検証用のグループを入れ替えながら学習と評価を繰り返して、モデルの汎化性能を見積もる方法 |
違いを表で比べる
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
ホールドアウト検証では、学習用と評価用の分け方を変えると、同じ設定のモデルでも評価値が変わることがある。
答えを見る
答え ◯ 正しい
どのデータが評価用に入るかは、分割の偶然で決まります。評価用データが少ないほど、この揺れは大きくなります。
-
ホールドアウト検証には、k-分割交差検証と同じく、手元のすべてのデータが一度は評価に使われるという特徴がある。
答えを見る
答え × 誤り
ホールドアウト検証では、学習用に回したデータは評価に使われません。すべてのデータが一度ずつ評価役になるのは、評価役を入れ替えながら繰り返すk-分割交差検証の特徴です。
-
解約した顧客が全体の5%しかないデータでホールドアウト検証をするとき、学習用と評価用で解約者の割合がそろうように分ける方法がある。
答えを見る
答え ◯ 正しい
無作為に分けると、評価用に解約者がほとんど入らないことがあります。クラスの割合を保って分ける方法を層化抽出といい、scikit-learnのtrain_test_split関数ではstratify引数で指定できます。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目10 モデルの選択・評価)
- scikit-learn User Guide, Cross-validation: evaluating estimator performance (3.1 Cross-validation)
- scikit-learn API Reference, train_test_split (stratify)
- Christopher M. Bishop, Pattern Recognition and Machine Learning, Springer (2006) (1.3 Model Selection)
- Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, MIT Press (2016) (5.3 Hyperparameters and Validation Sets、5.3.1 Cross-Validation)