行のランダムなサブセットを作成して保存し、後で使用できるようにこれをスクリプトに保存しようとしています現在微調整を続けている重回帰予測モデルに対して非常に多くの検証テストを行っており、スクリプトを使用して検証テスト プロセスの一部を自動化したいと考えています。これまでのところ、検証テストに使用するトレーニング データセットから行のランダムなサブセットを生成して保存するプロセスの部分を「スクリプトに保存」することはできませんでした。
これを手動で行う場合、1) メイン テーブルから行のランダムなサブセット (20 パーセント) を生成し、2) サブセットを保存し、3) それらのサブセット行をメイン テーブルから削除して、「新しい」メイン テーブルを保存します (このステップを可能にするために、サブセット テーブルがメイン テーブルにリンクされていることを確認したことに注意してください)。次に、新しいメイン テーブルでモデル分析を実行し、サブセット テーブルの行がどの程度適合するかをテストします (つまり、検証テスト)。
JMP でこれらの動きをスクリプトに「記録」するにはどうすればよいですか?今のところ、それらの動きを認識させることはできていません。前もって感謝します!
データのブレンディングとクリーンアップデータの探索と視覚化Re: 行のランダムなサブセットを作成して保存し、後で使用できるようにこれをスクリプトに保存しようとしていますはい、それはマークにとってはるかに良いアプローチです。お時間を割いてお知らせいただき、誠にありがとうございます。
Re: 行のランダムなサブセットを作成して保存し、後で使用できるようにこれをスクリプトに保存しようとしています
Re: 行のランダムなサブセットを作成して保存し、後で使用できるようにこれをスクリプトに保存しようとしていますありがとうマーク - 除外された行の状態では、ランダムに選択した行 (たとえば 20%) を元のデータセットから除外できますか?JSL スクリプト インデックスでは明らかではありませんでした。
Re: 行のランダムなサブセットを作成して保存し、後で使用できるようにこれをスクリプトに保存しようとしていますtxnelson - ヒントをありがとう!
Re: 行のランダムなサブセットを作成して保存し、後で使用できるようにこれをスクリプトに保存しようとしていますディードリッヒさん、ありがとう!また、役立つ JSL Script Index を提案していただきありがとうございます。完璧に動作しています。
Re: 行のランダムなサブセットを作成して保存し、後で使用できるようにこれをスクリプトに保存しようとしていますさらに進む前に、別のアプローチに利点があるかどうかを考えてみましょう。 サブセットの代わりに除外された行状態を使用することもできます。 最小二乗法では、モデルのトレーニングに除外された行は含まれません。 予測式を新しい列に保存すると、除外された行の予測された応答がそこに表示されます。
また、JMP Pro は、そのような評価を非常に簡単かつ便利にする検証分析の役割を提供します。
Re: 行のランダムなサブセットを作成して保存し、後で使用できるようにこれをスクリプトに保存しようとしていますやあ@learning_JSL 、
はい、JSL で「保存」または「名前を付けて保存」関数を呼び出すときに、名前を設定できます。 これを繰り返し実行する場合は、すべてをより大きな For ループ内に置くことができ、すべてを自動的に実行できます。 データを使って何をしているかを考えると、K 分割相互検証に似たようなことをしているように思えます。 もしそうであれば、JMP の多くの Fit プラットフォームはそれを非常に簡単に処理します。 モデリング プラットフォームによっては、相互検証オプションとして選択するか、XGBoost で必要とされる複数の k 分割検証列を作成する必要がある場合があります。 いずれの方法でも、トレーニング列、検証列、テスト列を含む検証列を作成でき、応答列または因子列に基づいて検証列を階層化できますが、状況に応じて最適に機能します。
余談ですが、時間を節約するためにスクリプトの作成を開始する場合は、スクリプト インデックス ([ヘルプ] > [スクリプト インデックス]) を使用することを強くお勧めします。 コマンドを検索でき、それらのアクション/コマンドを実行するためにコマンドを使用する方法の例があります。
お役に立てれば!、
DS
Re: 行のランダムなサブセットを作成して保存し、後で使用できるようにこれをスクリプトに保存しようとしています完全!また、スクリプト内に新しいファイル (つまり、新しいサブセット ファイルと新しいメイン テーブル ファイル) に名前を付けるコマンドはありますか?理想的には、スクリプトが実行されるたびに、2 つの新しいファイルに連続して増加する番号の名前が付けられます (例: サブセット 1、メイン 1....サブセット 2、メイン 2....サブセット 3、メイン 3...)。 ..etc) ただし、これによってすでに大幅な時間の節約になるため、必要に応じてスクリプト内で手動で再設定することは問題ありません。
Re: 行のランダムなサブセットを作成して保存し、後で使用できるようにこれをスクリプトに保存しようとしていますやあ@learning_JSL 、
次のスクリプトは、目的の場所から始めるのに役立ちます。 サブセットをメイン テーブルにリンクすることはお勧めしません。リンクすると、スクリプトを使用してメイン テーブルの行を削除すると、サブセット テーブルの行も削除されてしまうからです。 とにかく、これであなたが行きたい方向に進むことができるはずです。
Names default to here (1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Random_rows = dt<<SELECT randomly=""></SELECT>
お役に立てれば!、
DS
Re: 行のランダムなサブセットを作成して保存し、後で使用できるようにこれをスクリプトに保存しようとしていますサブセット データ テーブルのソース エントリを確認すると、サブセットの jsl が含まれています。