About Train, Validation and Test Sets in Machine Learning
On 10月 17, 2021 by adminこれは、機械学習モデルのトレーニング中に、さまざまなデータセット分割の違いを知る必要がある人向けの短い入門書を目指したものです。
この記事では、同じトピックに関する Jason Brownlee 氏の優れた記事から基本的な定義を引用します。 モデルを適合させるために使用するデータのサンプル。
モデルを訓練するために使用する実際のデータセット (ニューラルネットワークの場合は重みとバイアス)。 モデルはこのデータを見て学習する。
Validation Dataset
Validation Dataset。 モデルのハイパーパラメータを調整する際に、トレーニングデータセットでのモデルの適合度を不偏に評価するために使用されるデータサンプルです。 検証データセットでのスキルがモデル構成に組み込まれると、評価はより偏ったものになる。
検証セットは与えられたモデルを評価するために使われるが、これは頻繁に評価するためのものである。 私たち機械学習エンジニアは、このデータを使ってモデルのハイパーパラメータを微調整するのです。 従って、モデルはこのデータを時々見るが、ここから「学習」することはない。 我々は検証セットの結果を利用して、より上位のハイパーパラメータを更新する。 つまり、検証セットはモデルに影響を与えるが、それは間接的なものに過ぎない。 検証セットは、DevセットまたはDevelopmentセットとも呼ばれます。 これは、このデータセットがモデルの「開発」段階で役立つので、意味があります。 トレーニングデータセットにフィットした最終モデルの不偏評価を行うために使用されるデータサンプル。 モデルが完全に学習されると (学習および検証セットを使用して) のみ使用されます。 テスト セットは一般に、競合するモデルを評価するために使用されます (たとえば、多くの Kaggle コンテストでは、検証セットはトレーニング セットと一緒に最初にリリースされ、実際のテスト セットはコンペティションの終了間際にのみリリースされ、勝者を決定するのはテスト セットでのモデルの結果です)。 多くの場合、検証セットがテストセットとして使用されますが、これは良い方法ではありません。 テストセットは一般的によく管理されています。 テストセットには、モデルが実世界で直面するであろう様々なクラスにわたる、注意深くサンプリングされたデータが含まれています。
データセット分割比率について
これらのデータセットが何をするかわかったので、データセットをトレーニング、検証、テストセットにどのように分割したらよいかを探しているのではないだろうか?
これは主に 2 つの事柄に依存します。 1 つは、データ内のサンプルの合計数、2 つ目は、学習する実際のモデルです。
モデルによっては、学習するためにかなりのデータを必要とするので、この場合、より大きな学習セットに対して最適化することになります。 しかし、モデルに多くのハイパーパラメーターがある場合、大きな検証セットも必要です (クロス検証も考慮する必要があります)。 また、ハイパーパラメーターがない、または簡単に調整できないモデルをたまたま持っている場合、おそらく検証セットも必要ないでしょう!
全体として、機械学習における他の多くの事柄と同様に、訓練とテストの検証の分割比率は、使用ケースにかなり固有で、訓練してモデルをどんどん構築すると、判断を下すのが容易になる。 多くの場合、最初にデータセットを訓練とテストの2つに分割します。 この後、テストセットは別にして、訓練データセットのX%を実際の訓練セットとして、残りの(100-X)%を検証セットとしてランダムに選択し、ここでXは固定数(例えば80%)で、モデルはこれらの異なるセットで繰り返し訓練と検証を受けます。 これを行うには複数の方法があり、一般にクロスバリデーションとして知られています。 基本的には、トレーニング・セットを使って、トレーニング・セットとバリデーション・セットの複数の分割を生成します。 クロスバリデーションは、オーバーフィッティングを避けるために、ますます一般的になってきており、K-foldクロスバリデーションは、クロスバリデーションの最も一般的な方法です。 詳しくはこちらをご覧ください
。
コメントを残す