キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
言語を選択 翻訳バーを非表示
最初に公開されたスレッドを表示

比率行列に変数を渡そうとしたときに検証列を作成しようとしたときにエラーが発生しました

Sburel
Level IV

ML モデルのパフォーマンスを評価するプロセスで、モデルが実行する実行数を指定し、トレーニング データと検証データの割合を指定する UI を作成しようとしています。

 

その情報を for ループに渡し、指定された実行数に基づいて列を作成し、比率も渡そうとしています。 割合を指定した場合 (2 番目の例)、ループは正常に動作しますが、変数 (nTraining、nVal) を使用した場合は正常に動作しません。

 

いくつかの提案をいただければ幸いです。

 

ありがとう。

 

S

dtsub=New Table( "test",
 Add Rows( 34 ),
 New Column( "test_article",
  Character( 7 ),
  "Nominal",
  Set Values(
   {"1269442", "1100729", "1269449", "1269448", "1100723", "1100728",
   "1269456", "1269457", "1269458", "1269454", "1269468", "1269469",
   "1269466", "1269471", "1100397", "1100405", "1100406", "1100407",
   "1100528", "1100534", "1100535", "1100540", "1100542", "1100566",
   "1100585", "1100590", "1100725", "1100873", "1100914", "1100915",
   "1100920", "1100990", "1100991", "1101101"}
  ),
  Set Display Width( 61 )
 ),
 New Column( "basic_class",
  Character,
  "Nominal",
  Set Values(
   {"0_Active", "0_Active", "0_Active", "0_Active", "0_Active", "0_Active",
   "0_Active", "0_Active", "0_Active", "0_Active", "0_Active", "0_Active",
   "1_MarginalActive", "1_MarginalActive", "1_MarginalActive",
   "1_MarginalActive", "1_MarginalActive", "1_MarginalActive", "2_Inactive",
   "1_MarginalActive", "2_Inactive", "1_MarginalActive", "2_Inactive",
   "1_MarginalActive", "1_MarginalActive", "1_MarginalActive", "0_Active",
   "1_MarginalActive", "0_Active", "0_Active", "2_Inactive", "0_Active",
   "0_Active", "0_Active"}
  ),
  Set Display Width( 90 )
 ),
 Set Row States(
  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1,
  1, 0, 1, 0, 0, 0, 0, 0, 0]
 )
);

nrun=10;
//the proportion forthe valdation column are specified here
nTraining = 0.75;
nVal = 0.25;

//getting this error 
//Invalid matrix token.
//Line 232 Column 38: ...ake Validation Formula( [►nTraining, nVal, 0], <

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

1 件の受理された解決策

受理された解決策
Sburel
Level IV

Re: 比率マトリックスで変数を渡そうとすると、検証列を作成しようとするとエラーが発生します

こんにちはティエリー、

 

あなたの提案は実際には非常に近いものでした。 3x1 マトリックスが必要なときに 1x3 マトリックスを構築することを提案しました

dtstub= data table("test");

nrun=3;
nTraining = 0.75;
nVal = 0.25;

// Create the matrix
mat = J(3,1, {.}); // 1x3 matrix with missing values

mat [1,1] = nTraining;
mat [2,1] = nVal;
mat [3,1] = 0;

show (mat);

For( i = 1, i <= nrun, i++,
 data table("test") << 

New Column( "Val",
 Numeric,
 "Nominal",
 Format( "Best", 12 ),
 Formula(
  EVal (Eval Expr (Make Validation Formula(
  expr(mat),
  // [0.75, 0.25, 0],
   <
7件の返信7
Thierry_S
Super User

Re: 比率マトリックスで変数を渡そうとすると、検証列を作成しようとするとエラーが発生します

やあ、

最後の New Column ステートメントでマトリックスを指定する必要があると思います (以下を参照)。 スクリプトに他のエラーがあるため、テストできませんでした。

nrun=10;
nTraining = 0.75;
nVal = 0.25;

mat = J(1,3);

mat [1,1] = nTraining;
mat [1,2] = nVal;
mat [1,3] = 0;


//getting this error 
//Invalid matrix token.
//Line 232 Column 38: ...ake Validation Formula( [►nTraining, nVal, 0], <

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

Thierry_S
Super User

Re: 比率マトリックスで変数を渡そうとすると、検証列を作成しようとするとエラーが発生します

JSL スクリプトのタイプミスをお詫びします。 これが正しい構文です。

nrun=10;
nTraining = 0.75;
nVal = 0.25;

mat = J(1,3);

mat [1,1] = nTraining;
mat [1,2] = nVal;
mat [1,3] = 0;


//getting this error 
//Invalid matrix token.
//Line 232 Column 38: ...ake Validation Formula( [►nTraining, nVal, 0], <

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

Thierry_S
Super User

Re: 比率マトリックスで変数を渡そうとすると、検証列を作成しようとするとエラーが発生します

もう一度申し訳ありませんが、私はあまりにも迅速に答えようとしました。 問題をテストするための適切なバージョンの JMP を持っていませんが、問題は解決したと思います。

nrun=10;
nTraining = 0.75;
nVal = 0.25;

mat = J(1,3);

mat [1,1] = nTraining;
mat [1,2] = nVal;
mat [1,3] = 0;


//getting this error 
//Invalid matrix token.
//Line 232 Column 38: ...ake Validation Formula( [►nTraining, nVal, 0], <

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

Sburel
Level IV

Re: 比率マトリックスで変数を渡そうとすると、検証列を作成しようとするとエラーが発生します

こんにちはティエリー、

 

提案をありがとう。 残念ながら、うまくいかないようです。 あなたの提案は、コンマ区切りのないマトリックスになります。 式にはコンマ区切りの行列が必要です。

 

一番

 

S

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

Thierry_S
Super User

Re: 比率マトリックスで変数を渡そうとすると、検証列を作成しようとするとエラーが発生します

やあ、

すべての道を探るために、転置行列を生成しようとしましたか?

nTraining = 0.75;
nVal = 0.25;

mat = J(3,1);

show (mat);

mat [1,1] = nTraining;
mat [2,1] = nVal;
mat [3,1] = 0;

show (mat);

//getting this error 
//Invalid matrix token.
//Line 232 Column 38: ...ake Validation Formula( [►nTraining, nVal, 0], <

JMP Pro を使用できないため、数式が受け入れられるかどうかはわかりませんが、少なくとも数式でカンマ区切りの行列が生成されます。

お役に立てず申し訳ありません。

 

一番、

TS

 

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

Sburel
Level IV

Re: 比率マトリックスで変数を渡そうとすると、検証列を作成しようとするとエラーが発生します

私はそれを試してみます、そしてそれを試してくれてありがとう

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

Sburel
Level IV

Re: 比率マトリックスで変数を渡そうとすると、検証列を作成しようとするとエラーが発生します

こんにちはティエリー、

 

あなたの提案は実際には非常に近いものでした。 3x1 マトリックスが必要なときに 1x3 マトリックスを構築することを提案しました

dtstub= data table("test");

nrun=3;
nTraining = 0.75;
nVal = 0.25;

// Create the matrix
mat = J(3,1, {.}); // 1x3 matrix with missing values

mat [1,1] = nTraining;
mat [2,1] = nVal;
mat [3,1] = 0;

show (mat);

For( i = 1, i <= nrun, i++,
 data table("test") << 

New Column( "Val",
 Numeric,
 "Nominal",
 Format( "Best", 12 ),
 Formula(
  EVal (Eval Expr (Make Validation Formula(
  expr(mat),
  // [0.75, 0.25, 0],
   <

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。