再:総確率を固定したまま行にカテゴリを割り当てるこの式を試してみます。
p = Random Uniform();
If( p <= 0.5, 0, p <= 0.8, 1, 2 );
50%のトレーニング、30%の検証、20%のテストを使用しました。
再:総確率を固定したまま行にカテゴリを割り当てるこんにちはしゅう 、
提案をありがとう。これは機能しますが、トレイン、検証、およびテストの比率を固定したくないため、少し変更しましたが、トレイン/検証/テストの最適な比率があるかどうかを確認するために各ブートストラップシミュレーションを変更します検証列の選択は、モデルの適合に影響を与える可能性があります。単純な0.6、0.2、0.2の分割は最適ではない可能性があります。たぶん、0.72、0.15、0.13のはずです。
p = Random Uniform();
If( p <= Random Uniform(x1,x2), 0,<BR /> p <= Random Uniform(X3,x4), 1,<BR /> p <= Random Uniform(x5,x6), 2 );
x1、x2、x3、x4、x5、およびx6を調整すると、フォーミュラ列のトレイン/検証/テストのさまざまな比率の範囲につながる可能性があります。
ありがとう!、
DS
再:総確率を固定したまま行にカテゴリを割り当てる一度に1つのランダム変数のみを使用する必要があります。If()関数を呼び出す前に、Random Uniform()を複数回呼び出す必要はありません。ブール式に変数を使用します。
p = Random Uniform();
If( p <= x1, 0, p <= x2, 1, 2 );
合計確率を固定したまま行にカテゴリを割り当てる親愛なるJMPコミュニティ、
(WE10、64ビット、JMP Pro 4.1.0)
行に0、1、または2を割り当てることにより、「検証列の作成」に類似したアクションを実行する列式を生成しようとしています。私はこれを行う方法としてランダムカテゴリ機能を試していますが、機能しますが、私が望む方法ではありません。行に0、1、または2のいずれかを割り当てますが、各カテゴリの頻度を合計すると、1より大きい値が得られますが、これは望ましくありません。
[検証列の作成]では、データテーブルの特定の割合を "train"、"validate"、または "test"(0、1、2)として割り当てることができ、これらの端数の合計は常に1に加算されます。「0」、「1」、「2」の端数が1になるように、ランダムカテゴリなどの関数を使用してこれを実行します。簡単にするために、「1」の数を「2」の数と同じに保ちます。つまり、検証データとテストデータの数は等しく、合計1-トレーニングデータ行の数になります。
このすべての背後にある目的は、RMSEを最小化するために、トレーニング、検証、およびデータセットの数を変更してモデルの調整をテストすることです。これは、目的の統計を右クリックして[シミュレーション]を選択することにより行われます。これにより、ブートストラップが実行され、モデルが再実行されて統計の変化が評価されます。ただし、各検証データセットの行数を交換する機能が必要です。
シミュレーションを実行するたびに、新しい検証列が「生成」されますが、「トレイン」、「検証」、「テスト」行の比率は異なります。次に、出力を使用して、パフォーマンスの良いモデルを得るための3つの最適な比率を見つけることができます。
これについての考え/フィードバックは大歓迎です。
ありがとう!、
DS
再:総確率を固定したまま行にカテゴリを割り当てるスキームはしっかりしています。ただし、サンプルが大きいほどパフォーマンスが向上します。おそらくより良いバージョンがあります。(私は通常、数式を使用しません。)
Names Default to Here( 1 );
n = 500;
dt = New Table( "Again and Again",
Add Rows( n ),
New Column( "Y", "Numeric", "Continuous", Values( J( n, 1, Random Normal() ) ) ),
New Column( "X1", "Numeric", "Continuous", Values( J( n, 1, Random Normal() ) ) ),
New Column( "X2", "Numeric", "Continuous", Values( J( n, 1, Random Normal() ) ) ),
New Column( "Validation", "Numeric", "Nominal" )
);
training proportion = 0.6;
valid threshold = 1 - ((1 - training proportion) / 2);
:Validation << Set Values(
J( n, 1, p = Random Uniform(); If( p <= training proportion, 0, p <= valid threshold, 1, 2 ) );
);
テストのためにこのような大きな割合を保持する理由はありますか?
再:総確率を固定したまま行にカテゴリを割り当てるこんにちはしゅう 、
修正版を使用すると、圧縮形式を使用する場合よりも幅広い比率が得られます。
他の方法では、より広い範囲を見ることができますテストトレーニングセット(約65%〜78%)とその他のトレーニングがそれに応じて配布されます-およそ50/50の検証/テスト。これが本当に私が求めていることです。テストトレーニングは低い値と高い値の間で設定し、残りの50/50を分割します:検証/テスト。
ありがとう!、
DS
再:総確率を固定したまま行にカテゴリを割り当てるご提案ありがとうございます!以前の回答にタイプミスがあり、編集しました。大きい部分は、テストセットではなく、トレーニングセット用です。