個別のモデリング/検証セットを使用して回帰モデルを構築する場合、検証データを「再循環」することは適切ですか?


13

モデリング/検証の観測結果が80/20に分割されているとします。モデルをモデリングデータセットに適合させましたが、検証データセットで見られるエラーに満足しています。将来の観測のスコアリングのためにモデルを展開する前に、検証とモデリングデータを組み合わせて、100%データの更新されたパラメーター推定値を取得するのが適切ですか?これに関する2つの視点を聞いたことがあります。

  1. 私が実行した検証は、モデル構造、つまり適用した一連の予測変数と変換の検証でした。それを使用して推定値を更新できるのに、データの20%をテーブルに残しても意味がありません。

  2. 私が実行した検証は、モデリングデータセットで計算したパラメーター推定値の検証の一部でした。モデルの適合度を更新すると、推定値が変更され、更新されたモデルのパフォーマンスをテストする客観的な方法がなくなります。

私はいつも議論#1に従いましたが、最近では、いくつかの人々が#2を主張するのを聞いています。私は他の人がこれについてどう思うかを見たかった。このトピックに関する文献または他の場所で良い議論を見ましたか?

回答:


6

オプション1は正しいものです。検証データセットを追加して、モデルのパラメーターを更新できます。

それが答えです。それでは議論しましょう。あなたがやったことはあなたのオプション1だったという事実は、ブートストラップのk倍交差検証を行った場合、より明確です(そしてあなたはそれを行うべきでした-それはあなたの質問から明らかではありません)。

5分割相互検証では、持っているデータを同じサイズの5つのランダムセットに分割します。それらをA、B、C、D、Eと呼びましょう。次に、4つのセット(A、B、C、Dなど)で(モデル自体の)モデルのパラメーターを学習し、テストまたは検証します。 5番目のモデルE。ただし、テスト/検証として別のセット(たとえばD)を選択し、他の4つ(A、B、C、およびE)を使用して学習します。Dでテストし、繰り返します。

予測モデルの誤差は5つのテストの平均誤差です。予測誤差が学習セットとテストセットにどのように依存するかについてある程度理解できます。最良のシナリオでは、5つのエラー測定値はすべて類似しており、モデルが将来そのレベルで実行されることを合理的に確信できます。

しかし、どのモデル?? 学習セットの各セットには、モデルの異なるパラメーターがあります。A、B、C、Dで学習すると、パラメーターセットP1、A、B、C、Eで学習し、パラメーターセットP2、最大P5が生成されます。それらはどれもあなたのモデルではありません。

テストしたのは、モデルを構築するための手順の予想されるエラー、学習セットがA、B、C、Dの場合とA、B、C、Eの場合の手順です。このプロシージャは、その予想されるエラーでモデルを生成します。

それでは、最終モデルは何ですか?これは、使用可能なすべてのデータ(A、B、C、D、およびE)での手順の適用です。これまでに生成したことのないパラメーターセットP0の新しいモデルには、テストするデータがありません(パラメーターP0を決定する際にすべてのデータを「使用」したため)同じ手順を使用して構築された他のモデル(P1、P2 ...)と同様のデータ。

相互検証またはブートストラップを実行しなかった場合(ブートストラップの説明はやや複雑になります。この説明では省略します)。1つの学習/検証分割と1つのエラー測定のみを実行した場合はどうなりますか。次に、引数2はある程度正しいかもしれませんが、より大きな問題があります。モデルのエラーの測定値は1つだけであり、そのエラーが検証に使用されるデータにどの程度依存しているかわかりません。運が良ければ、20%の検証セットは特に簡単に予測できました。複数のエラー測定を行っていないため、予測モデルの予想エラー率が将来のデータに対して同じままであると仮定することは非常に危険です。

「より大きなリスク」はどれですか?そのエラーが将来のデータに対して基本的に同じままであると仮定するか、モデルを学習するためにデータを追加すると何らかの方法でモデルが「台無し」になり、将来エラー率が増加すると仮定しますか?私はこれに答える方法を本当に知りませんが、より多くのデータで悪化するモデルには疑いがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.