JSL スクリプトのヘルプが必要です - モデル検証テストのためにランダムな行を削除し、残りの行をモデル作成に使用しようとしていますこんにちは。ランダムに選んだ 80% のデータを使用して回帰方程式を当てはめ、その結果得られたモデル化された方程式を使用して、残りの 20% のデータをモデルに通し、その 20% の観測結果とモデル化された結果を比較して保存しようとしています。つまり、20% の行が検証に使用されます。
私のデータセットには 227 行あります。そのうちの 80% を使用してトレーニング (つまり、回帰方程式を開発) し、その後、その回帰方程式を残りの 20% の行で実行して、その 20% の行の観測値とモデル値を計算します。
私のスクリプトは正しく動作していません。20% の行を正しく除外しますが、その後 100% の行すべてを実行して保存します。以下にコードを示しますが、観測結果とモデル結果に関するさまざまなメトリックを計算する部分は削除しました。
どなたか助けていただければ幸いです。(私は jmp pro 17.0 を使用しています)
dt = Open("C:\Users\trcampbell\Desktop\MASTER ECOLI\2025\2024.xlsx");
Random_rows = dt << Select Randomly(0.2) << Hide and Exclude();
New Column("Excluded", Numeric, ordinal);
:Excluded << Set Formula(If(Excluded(), 1, 0));
dt << Sort(By(:Excluded), Replace Table, Order(Descending), Copy formula(0));
/////////////......LOG ECOLI VS LOG TURB....LINEAR FIT....../////////////////////
obj = Fit Model(
Y(:LOGECOLI),
Effects(:LOGTURB),
Personality("Standard Least Squares"),
Emphasis("Effect Leverage"),
Run(:LOGECOLI)
);
obj << Prediction Formula;
ref = obj <<
dt << save(
"C:\Users\trcampbell\Desktop\MASTER ECOLI\2025\validation results\test xxxxx1 with 126 and 886.xls"
);自動化とスクリプト基本的なデータ分析とモデリングRe: jsl スクリプトのヘルプが必要です - モデル検証テスト用にランダムな行を削除し、残りの行をモデル作成に使用しようとしていますJMP Proをお持ちなので、検証列の使用を検討します

Re: jsl スクリプトのヘルプが必要です - モデル検証テスト用にランダムな行を削除し、残りの行をモデル作成に使用しようとしていますJMP Pro を使用しています。トレーニング、検証、テスト ホールドアウト セットを使用したモデル選択の組み込みサポートをご存知ですか?
Re: jsl スクリプトのヘルプが必要です - モデル検証テスト用にランダムな行を削除し、残りの行をモデル作成に使用しようとしています半導体機能サンプル データ テーブルを使用して、JMP 17 で JSL を実行しました。スクリプトは合計 1455 行のうち 291 行を選択しました。選択された 291 行は非表示になり、除外されました。
次に適合モデルを実行し、適合モデルの結果は除外されていない行のみに基づきました。

保存された予測式は、すべての行の予測値を計算します。選択/除外された行と選択/除外されていない行に基づいて区別することはありません。
これが、発生している問題の原因である可能性があります。
Re: jsl スクリプトのヘルプが必要です - モデル検証テスト用にランダムな行を削除し、残りの行をモデル作成に使用しようとしていますありがとう、ジム。行の 20% (検証セット) のみを保存するようにスクリプトを修正する方法はありますか?
Re: jsl スクリプトのヘルプが必要です - モデル検証テスト用にランダムな行を削除し、残りの行をモデル作成に使用しようとしていますこれを行うにはさまざまな方法があります。
- 「ランダムに選択」を使用する代わりに、「サブセット」を使用して 80% のランダム サンプルを作成することもできます。次に、適合モデルを実行し、サブセット化されたテーブルを保存します。
- または、スクリプトを実行した後、除外列に基づいてテーブルをサブセット化し、生成されたサブセット化されたテーブルを保存します。
Re: jsl スクリプトのヘルプが必要です - モデル検証テスト用にランダムな行を削除し、残りの行をモデル作成に使用しようとしていますありがとうございます。ファイルを保存する直前の行に以下のコードを使用しました。これが正しいと思います (つまり、トレーニング行の 80% から取得された式が引き続き使用されます)。
dt<< 行を削除(dt << 行を取得 Where( :Excluded == 0 ));
dt<< Save("C:\\Users\\trcampbell\\Desktop\\MASTER ECOLI\\2025\\validation results\\excluded rows.xlsx");
Re: jsl スクリプトのヘルプが必要です - モデル検証テスト用にランダムな行を削除し、残りの行をモデル作成に使用しようとしていますありがとう、jthi!
Re: jsl スクリプトのヘルプが必要です - モデル検証テスト用にランダムな行を削除し、残りの行をモデル作成に使用しようとしていますはい、どうもありがとうございます。