1

機械学習におけるモデルの評価と検証のプロセスを理解しようとしています。具体的には、トレーニング セット、検証セット、およびテスト セットを使用する順序と方法です。

データセットがあり、線形回帰を使用したいとしましょう。さまざまな多項式の次数 (ハイパーパラメーター) の中で迷っています。

このウィキペディアの記事では、シーケンスが次のようになることを暗示しているようです。

  1. データをトレーニング セット、検証セット、テスト セットに分割する
  2. トレーニング セットを使用してモデルに適合させます (最適なパラメーターを見つけます: 多項式の係数)。
  3. その後、検証セットを使用して、最適なハイパーパラメーター (この場合は多項式の次数) を見つけます (ウィキペディアの記事には、次のように書かれています: 「続いて、適合モデルを使用して、検証データセットと呼ばれる 2 番目のデータセットの観測に対する応答を予測します」 )
  4. 最後に、テスト セットを使用して、トレーニング セットに適合したモデルにスコアを付けます。

ただし、これは私には奇妙に思えます。ハイパーパラメーター (この場合は多項式の次数) をまだ選択していない場合、どのようにモデルをトレーニング セットに適合させることができるでしょうか?

3 つの代替アプローチがあると思いますが、それらが正しいかどうかはわかりません。

最初のアプローチ

  1. データをトレーニング セット、検証セット、テスト セットに分割する
  2. 多項式の次数ごとに、モデルをトレーニング セットに適合させ、検証セットを使用してスコアを与えます。
  3. 最良のスコアを持つ多項式の次数については、モデルをトレーニング セットに適合させます。
  4. テストセットで評価する

2 番目のアプローチ

  1. データをトレーニング セット、検証セット、テスト セットに分割する
  2. 多項式の次数ごとに、検証セットに対してのみ交差検証を使用して、モデルを適合させてスコアリングします
  3. 最良のスコアを持つ多項式の次数については、モデルをトレーニング セットに適合させます。
  4. テストセットで評価する

3 番目のアプローチ

  1. データを2 つのセットのみに分割: トレーニング/検証セットとテスト セット
  2. 多項式の次数ごとに、トレーニング/検証セットに対してのみ交差検証を使用して、モデルを適合させてスコアリングします
  3. 最良のスコアを持つ多項式の次数については、トレーニング/検証セットを使用してモデルを適合させます。
  4. テストセットで評価する

質問は次のとおりです。

  • ウィキペディアの記事は間違っていますか、それとも何か不足していますか?
  • 私が想定している 3 つのアプローチは正しいですか? どちらが好ましいでしょうか?これら3つよりも優れた別のアプローチはありますか?
4

2 に答える 2

2

ウィキペディアの記事は間違っていません。私自身の経験によると、これは ML の初心者の間でよくある混乱のポイントです。

この問題にアプローチするには、次の 2 つの方法があります。

  • 明示的な検証セットを使用してハイパーパラメータの検索と調整を行う
  • または、交差検証を使用します

したがって、標準的なポイントは、常にデータの一部をテストセットとして取っておくことです。これは、最終的にモデルのパフォーマンスを評価する以外の理由で使用されません (つまり、テスト セットを検証セットとして使用しているため、複数の評価ではありません。これは悪い習慣です)。

それを行った後、残りのデータの別の部分を切り取って別の検証セットとして使用するか、クロス検証を続行するかを選択します (この場合、個別の固定検証セットは必要ありません)。

したがって、基本的には、最初と 3 番目のアプローチの両方が有効です (相互に排他的です。つまり、どちらを使用するかを選択する必要があります)。2番目のものは、あなたが説明しているように(CVは検証セットのみですか?)、確かにそうではありません(前述のように、CVを使用することを選択した場合、別の検証セットを割り当てません)。相互検証について簡単に言及することは別として、ウィキペディアの記事で実際に説明されているのは、最初のアプローチです。

もちろん、どのアプローチが「より良い」かという問題は、その一般的なレベルでは答えられません。どちらのアプローチも実際に有効であり、状況に応じて使用されます。非常に大まかに言えば、ほとんどの「伝統的な」(つまり、深層学習ではない) ML 設定では、ほとんどの人が相互検証を使用することを選択していると言えます。しかし、これが実用的でない場合があり (ほとんどの深層学習設定、大まかに言えば)、人々は代わりに別の検証セットを使用しています。

于 2019-01-10T11:24:32.650 に答える
1

ウィキペディアが意味することは、実際には最初のアプローチです。

1 データをトレーニング セット、検証セット、テスト セットに分割する

2 トレーニング セットを使用してモデルを適合させます (最適なパラメーターを見つけます: 多項式の係数)。

これは、トレーニング データを使用してモデルを適合させることを意味します。

3 その後、検証セットを使用して、最適なハイパーパラメーター (この場合は多項式の次数) を見つけます (ウィキペディアの記事には次のように書かれています: 「続いて、適合モデルを使用して、検証データセットと呼ばれる 2 番目のデータセットの観測に対する応答を予測します。 ")

つまり、検証データセットを使用して、以前に (トレーニング セットで) トレーニングされたモデルでその値を予測し、目に見えないデータに対するモデルのパフォーマンスのスコアを取得します。

確認するすべてのハイパーパラメーターの組み合わせ (この場合は、試行するさまざまな多項式の次数) に対してステップ 2 と 3 を繰り返し、ハイパーパラメーターの組み合わせごとにスコア (精度など) を取得します。

最後に、テスト セットを使用して、トレーニング セットに適合したモデルにスコアを付けます。

検証セットが必要な理由は、このスタックエクスチェンジの質問 https://datascience.stackexchange.com/questions/18339/why-use-both-validation-set-and-test-setでよく説明されています


最後に、3 つのアプローチのいずれかを使用できます。

  1. アプローチ:

    ハイパーパラメータごとに 1 つのモデルのみをトレーニングするため、最も高速です。また、他の 2 つほど多くのデータは必要ありません。

  2. アプローチ:

    すべてのハイパーパラメータの組み合わせについて検証するために、すべてのトレーニング データを使用して、k 個のフォールド k 個の分類子と最終的な分類子をトレーニングするため、最も低速です。

    また、データを 3 回分割し、最初の部分を k 回分割するため、大量のデータが必要になります。

    しかし、ここでは結果の分散が最小です。偶然にも、k 個の適切な分類子と適切な検証結果が得られる可能性はほとんどありません。これは、最初のアプローチで発生する可能性が高くなります。交差検証は、過剰適合する可能性もはるかに低くなります。

  3. アプローチ:

    他の 2 つの中間の長所と短所があります。ここでは、オーバーフィッティングの可能性も低くなります。

最終的には、所有しているデータの量と、ニューラル ネットワークのようなより複雑なモデルを使用する場合、どれだけの時間/計算能力があり、費やす意思があるかによって異なります。

編集@desertnautが述べたように:トレーニングセットと検証セットをテストセットでの評価のトレーニングデータとして使用する必要があることに注意してください。また、トレーニングと2番目のアプローチで設定された検証を混同しました。

于 2019-01-10T11:20:17.980 に答える