モデルスクリーニングこんにちは。
質問ですが、データセットがあり、このデータセットの 30% をテスト用に分離したいと考えています。モデル スクリーニングを使用してさまざまなモデルを試したいのですが、モデルの検証部分では、すべてのモデルでまったく同じテスト データセットを使用して検証を行いたいと考えています。
この目的のために何をすべきでしょうか?
予測モデリングと機械学習モデル選考についてこんにちは@maryam_nourmand さん
固定されたトレーニング/検証/テスト データセットで再現可能な結果を得る最も簡単な方法は、検証列を作成することです。
- まず、検証列を作成するための対応するメニューに移動します。

- 次に、グループまたは階層化(必要な場合)を指定できます。

この方法にはいくつかのオプションがあります。ここでは、ニーズに対応するデフォルトの「検証列の作成」を使用し、いくつかの変数を階層化列として使用して、すべてのトレーニング、検証、およびテスト セットでこれらの列の値が同様に分布/再パーティション化されるようにします。
-
次に、各セットのデータの比率を指定し、分析で完全な再現性を得るためにランダム シードを指定します。ここでは固定検証タイプを選択しましたが、数式検証列を作成して、手順 2 で指定したのと同じ設定 (グループ化、階層化など) でさまざまなトレーニング、検証、テスト セットをシミュレートすることもできます。ここで、私のデータ比率は、トレーニングで 70%、検証で 20%、テストで 10% です (通常の値です。このトピックに関する詳細情報と調査については、V. Roshan Joseph の論文「データ分割の最適比率」をお読みください: https://arxiv.org/pdf/2202.03326 )。評価の精度と必要なモデル選択、および使用可能なデータ/行の数に応じて、比率の適切な妥協点を見つけることが重要です。完了したら、[実行] をクリックして、テーブルにこの新しい検証列を作成します。

-
最後に、モデル スクリーニング プラットフォームを起動し、「検証」パネルで新しく作成した「検証列」を使用します。この段階でランダム シードを固定して、使用されるさまざまなモデルとセットに対して再現可能な結果を得ることもできます。
検証とテストという用語については、混乱を招きながらも頻繁に交互に使用される可能性があるため、ここで明確にしておきます。
- トレーニングセット:モデルの実際のトレーニングに使用されます。
- 検証セット: モデルの最適化(ハイパーパラメータの微調整、特徴/閾値の選択など)とモデルの選択に使用されます。
- テスト セット: 新しいデータや未知のデータに対する選択したモデルの一般化と予測パフォーマンス評価に使用されます。
したがって、検証セットを使用して複数のモデルを評価できますが、テスト セットは検証フェーズで選択されたモデルに対して 1 回だけ使用する必要があります。
この回答がお役に立てば幸いです。
モデルスクリーニングについてありがとう
モデルスクリーニングについてJMP Pro をお持ちの場合は、検証列を作成するためのプラットフォームがあり、さまざまなモデリング プラットフォーム内で、どの行がトレーニング行で、どの行が検証行であるかを示す列を指定できます。
標準のJMPをお持ちの場合は、作成する検証列の式にRandom Uniform()関数を使用することで、簡単に検証列を作成できます。(列が文字列型であることをご確認ください。)
If(randome uniform()>=.7, "Validation", "Training")
列が作成されたら、列情報画面に移動し、列の値を静的にする数式を削除して、数式が 2 度目に実行されて値が変更されないようにする必要があります。
その後、モデルの構築中に検証行を除外および非表示にすることができます。その後、モデルを検証するときに、検証行の非表示および除外とトレーニング行の非表示および除外を解除して、モデルを再実行します。