メイン コンテンツをスキップする 補完的コンテンツへスキップ

ホールドアウト データとクロス検証

予測分析における最大の課題の 1 つに、トレーニング済みのモデルが、これまで見たことのないデータに対してどのように機能するかを知ることがあります。別の言い方をすると、トレーニング データを単純に記憶した場合と比較して、モデルが真のパターンをどれだけうまく学習できたかということです。ホールドアウト データとクロス検証は、モデルが単なる記憶ではなく、実際に一般化されたパターンを学習していることを確認するための効果的な手法です。

実験を構成するときに、トレーニング データとホールドアウト データをランダムに分割するか、タイムアウェア モデルを作成するために使用される特別な方法で分割するかを選択できます。

記憶と一般化のモデルのテスト

モデルが現実の世界でどの程度うまく機能するかを問うことは、モデルが記憶または一般化を実行したかどうかを問うことと同じです。記憶とは、過去に起こったことを完全に覚えている能力のことです。記憶するモデルは、最初のトレーニングでは高いスコアを示す可能性がありますが、新しいデータに適用すると予測精度は大幅に低下します。その代わりとして、一般化するモデルが必要になります。一般化とは、一般的なパターンを学習して適用する能力のことです。トレーニング データから真に幅広いパターンを学習することで、一般化されたモデルは、見たことのない新しいデータに対しても同じ品質で予測できるようになります。

自動ホールドアウトデータ

ホールドアウトとは、トレーニング中にモデルから「非表示」にされ、モデルのスコアリングに使用されるデータのことです。ホールドアウトは、トレーニングで使用されなかったデータの正確度指標を生成することにより、モデルが将来の予測でどのように機能するかをシミュレーションします。まるで、モデルを構築および展開し、これらの予測を観察するのを待つことなく、実際に起こったことに対する予測をモニタリングしているようなものです。

Qlik AutoMLでは、ホールドアウト データを選択する、既定のメソッドと時間ベースのメソッドの 2 つのメソッドがあります。

ホールドアウト データを選択する既定のメソッド

タイムアウェア モデル トレーニングをオンにしない限り、モデル トレーニングが開始される前にホールドアウト データがランダムに選択されます。

既定では、データセットはトレーニング データとホールドアウト データにランダムに分割されます

ホールドアウトとクロス検証の既定のメソッドにおけるトレーニング データとホールドアウト データの比率

ホールドアウトデータ選択の時間ベースのメソッド

時間ベースのメソッドでは、まず、トレーニング データセット全体が、選択した日付インデックス列に従って並べ替えられます。並べ替えられた後、ホールドアウト データは残りのトレーニング データから分離されます。このホールドアウト データには、選択したインデックスに関する最新のデータが含まれています。

時間ベースのメソッドは、タイムアウェア モデルを作成するために使用されます。実験設定パネルの [モデル最適化] でタイムアウェア トレーニングを有効にします。詳細については、「実験の構成」を参照してください。

時間ベースのメソッドでは、データセットは既定のメソッドと同じ割合でトレーニング データとホールドアウト データに分割されます。ただし、このメソッドでは、分割前にデータも並び替えられます。

ホールドアウトとクロス検証の既定のメソッドにおけるトレーニング データとホールドアウト データの比率。

クロス検証

クロス検証は、機械学習モデルがまだ見たことのないデータの将来の値をどれだけ正確に予測できるかをテストするプロセスです。クロス検証では、モデルのトレーニング データがフォールドと呼ばれる複数のセグメントに分割されます。トレーニングの各反復中に、モデルは 1 つ以上のフォールドでトレーニングされ、少なくとも 1 つのフォールドは常にトレーニングに使用されないようにされます。各反復の後、トレーニングで使用できなかったフォールドの 1 つを使用してパフォーマンスが評価されます。

クロス検証の結果は、トレーニング済みのモデルがこれまでに見たことのないデータをどれだけ正確に予測できるかを合理的に予測するテスト指標です。

Qlik AutoML には、既定のメソッドと時間ベースのメソッドの 2 つのメソッドがあります。

既定のクロス検証

時間ベースのクロス検証を使用するようにトレーニングを構成しない限り、Qlik AutoML は既定のクロス検証のメソッドを使用します。クロス検証の既定のメソッドは、時系列軸に依存しないモデルに適しています。つまり、トレーニング データ内の特定の時間ベースの列を考慮してモデルを予測する必要はありません。

クロス検証の既定のメソッドでは、データセットはフォールドと呼ばれるいくつかの均等なセグメントにランダムに分割されます。機械学習アルゴリズムは、1 つを除くすべてのフォールドでモデルをトレーニングします。次に、クロス検証は、他のすべてのフォールドでトレーニングされたモデルに対して、各フォールドをテストします。つまり、トレーニングされた各モデルが、これまでに見たことのないデータのセグメントでテストされます。このプロセスは、トレーニング中に別のフォールドで非表示で繰り返され、すべてのフォールドがテストとして 1 回だけ使用され、1 回おきの反復でトレーニングされるまでテストされます。

自動ホールドアウトと既定のクロス検証

既定では、AutoML はモデルのトレーニング中に 5 分割クロス検証を使用して、モデルのパフォーマンスをシミュレーションします。次に、トレーニング データの別のホールドアウトに対してモデルがテストされます。これにより、さまざまなアルゴリズムのパフォーマンスを評価および比較できるスコアリング 指標が生成されます。

  1. 実験のトレーニングが開始される前に、null 以外のターゲットを持つデータセット内のすべてのデータがランダムにシャッフルされます。 データセットの 20% がホールドアウト データとして抽出されます。残りの 80% のデータセットは、クロス検証でモデルをトレーニングするために使用されます。

  2. クロス検証の準備として、データセットはランダムに 5 つのフォールドに分割されます。次に、モデルは 5 回トレーニングされ、毎回異なる 5 分の 1 のデータを「非表示」にして、モデルのパフォーマンスをテストします。クロス検証中にトレーニング指標が生成され、計算された値の平均になります。

  3. トレーニングの後、モデルはホールドアウト データに適用されます。ホールドアウト データは、クロス検証データとは異なり、トレーニング中にモデルが見ることはないため、モデルのトレーニング パフォーマンスを検証するのに適しています。ホールドアウト指標は、この最終的なモデル評価中に生成されます。

モデルのパフォーマンスを分析するために使用される指標の詳細については、「モデルのレビュー」を参照してください。

既定のメソッドでは、トレーニング データは、5 分割クロス検証中にモデルを生成するために使用されます。 トレーニング後、モデルはホールドアウト データを使用して評価されます。

5 つのプロセスが強調表示されている、ホールドアウトとクロス検証の既定のメソッドを示す図。

時間ベースのクロス検証

時間ベースのクロス検証は、時系列軸に沿ってデータを予測するようにモデルをトレーニングするのに適しています。たとえば、過去の売上データを含むデータセットに基づいて、翌月の会社の売上を予測するとします。時間ベースのクロス検証を使用するには、トレーニング データに日付またはタイムスタンプ情報を含む列が必要です。

時間ベースのクロス検証は、タイムアウェア モデルを作成するために使用されます。実験設定パネルの [モデル最適化] でタイムアウェア トレーニングを有効にします。詳細については、「実験の構成」を参照してください。

時間ベースのクロス検証により、モデルは将来の日付のデータを予測していることをよりよく理解するようにトレーニングされます。

既定のメソッドと同様に、時間ベースのクロス検証では、トレーニング データをトレーニングとテストの両方に使用されるフォールドに分割します。どちらのメソッドでも、モデルは複数回の反復を通じてトレーニングされます。ただし、時間ベースのメソッドと既定のメソッドではいくつかの異なる点があります。

  • トレーニング データは、選択した日付インデックスに沿って分類され、整理されます。対照的に、既定のクロス検証では、任意のフォールドに含まれる行がランダムに選択されます。

  • トレーニング データとして使用されるフォールドの数は、トレーニングの反復ごとに徐々に増加します。つまり、最初の反復では最初の (最も古い) フォールドのみが使用され、後続の反復では徐々に新しいデータを含む大量のトレーニング データが含まれるようになります。テスト データとして使用されるフォールドは、反復ごとに異なります。

    これは、各反復でトレーニングとテストの分割に固定量のデータを使用する既定のクロス検証方法とは対照的です (つまり、トレーニング用に 4 つのフォールド、テスト用に 1 つのフォールド)。

  • トレーニング データセット全体が選択したインデックスに沿って並べ替えられるため、トレーニング済みモデルのテストに使用されるデータは、モデルのトレーニングに使用されるデータよりも常に新しいか、同じくらい新しいものになります。モデルの最終的なパフォーマンス テストを実行するために使用される自動ホールドアウト データは、常にトレーニング データセットの残りの部分よりも新しいか、同じくらい新しいものになります。

    対照的に、既定のクロス検証では、トレーニング データよりも古いデータでモデルがテストされ、データ漏洩が発生する可能性があります。

自動ホールドアウトと時間ベースのクロス検証

この手順では、タイムアウェア モデルがどのようにトレーニングされるかを示します。このプロセスには、既定のクロス検証プロセスと比較した場合の相違点と類似点があります。

  1. データセット内のすべてのデータは、選択した日付インデックスに沿って並べ替えられます。これには、トレーニング データとホールドアウト データが含まれます。

  2. 実験のトレーニングが開始される前に、データセットの 20% がホールドアウト データとして抽出されます。このホールドアウト データは、データセットの残りの部分よりも新しいか、または同じくらい新しいものです。残りの 80% のデータセットは、クロス検証でモデルをトレーニングするために使用されます。

  3. クロス検証の準備として、並び替えられたトレーニング データは複数のフォールドに分割されます。選択した日付インデックスに関しては、最初の折り返しには最も古いレコードが含まれ、最後の折り返しには最新のレコードが含まれます。

  4. その後、モデルは 5 回の反復でトレーニングされます。各反復で、トレーニング データの量が徐々に増加します。反復ごとに、含まれるトレーニング データの最新性も高まります。クロス検証中にトレーニング指標が生成され、計算された値の平均になります。

  5. トレーニングの後、モデルはホールドアウト データに適用されます。ホールドアウト データはトレーニング中にモデルによって表示されていないため、モデルのトレーニング パフォーマンスを検証するのに最適です。ホールドアウト指標は、この最終的なモデル評価中に生成されます。

時間ベースのメソッドでは、並べ替えられたトレーニング データを使用して、タイムアウェア モデルを生成およびテストします。 トレーニング後、モデルはホールドアウト データを使用して評価されます。

5 つのプロセスが強調表示されている、ホールドアウトとクロス検証の既定のメソッドを示す図。

詳細を見る

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。