JSL - 플랫폼 기능 내에서 반복Names Default To Here( 1 );
// Create an Example data table
dt = currentdatatable();
// Get the names of the columns in the data table
colNames = dt << get column group( "WLS" );
nIters = 2;
Neural(
Y( :Type ),
X(eval(colNames)),
Validation Method( "KFold", 5 ),
Set Random Seed( 2 ),
for( k=1, k <= nIters, k++, Fit( NTanH ( 2 ) ) ),
);
첨부된 스크립트를 사용하여 1개 이상의 신경 모델을 맞추려고 합니다. for-loop 대신 Fit(NTanH(2))를 여러 번 쓰면 잘 작동하지만 for-loop에서는 작동하지 않습니다. 제안할 만한 것이 있나요? 감사합니다!
자동화 및 스크립팅데이터 탐색 및 시각화Re: JSL - 플랫폼 기능 내에서 반복Neural() 외부로 Fit(NTanH())를 이동할 수 있습니다. 다음은 스크립팅 인덱스의 예입니다.

for 루프가 있는 스크립팅 인덱스에서 수정된 버전:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Boston Housing.jmp");
obj = Neural(
Y(:mvalue),
X(:crim, :indus, :chas, :nox, :rooms, :age, :distance, :radial),
Set Random Seed(2)
);
For(i = 1, i <= 2, i++,
obj << Fit(NTanH(4));
);

Re: JSL - 플랫폼 기능 내에서 반복안녕 Jarmo, 그것은 내가 시도하지 않은 옵션이었고 그것은 내 문제에 대한 해결책입니다. 잘 작동합니다. 감사합니다!
Re: JSL - 플랫폼 기능 내에서 반복안녕하세요 Jarmo, 아래는 작동하는 스크립트입니다.
Names Default To Here( 1 );
delete symbols();
dt = current data table();
colNames = dt << get column group("WLs");
exclColnames = dt << get excluded columns();
For( i = 1, i <= N Items( exclColnames ), i++,
Remove From( colNames, As List( Loc( colNames, exclColnames[i] ) ) )
);
rpt = New Window( "Neural of Type", dt <<
Neural(
Y( :Type ),
X( eval ( colNames ) ),
Informative Missing( 0 ),
Validation Method( "KFold", 5 ),
Set Random Seed( 2 ),
Fit( NTanH( 2 ) ),
Fit( NTanH( 2 ) ),
Fit( NTanH( 2 ) )
)
);
Wait( 0 );
rpt["Neural", Outline Box( 1 ), "Validation", "Type", Table Box( 1 )] <<
Make Combined Data Table;
rpt << Close Window;그러나 Fit(NTanH(2))을 유연하게 만들고 싶습니다. 시연한 방식이 여기서는 작동하지 않습니다. 다음 스크립트로 해결하려고 했습니다(첫 번째 부분은 생략).
obj =Neural(
Y( :Type ),
X( eval ( colNames ) ),
Informative Missing( 0 ),
Validation Method( "KFold", 5 ),
Set Random Seed( 2 ),
);
for(i=1, i<=3, i++, obj << Fit( NTanH(2)));
rpt = current window();<BR />
Wait( 0 );
rpt["Neural", Outline Box( 1 ), "Validation", "Type", Table Box( 1 )] <<
Make Combined Data Table;
rpt << Close Window;
하지만 이제 오류 메시지가 표시됩니다. "'rpt[ /*###*/"Neural",Outline Box(1),"Validation","Type",Table Box(1 )]' , rpt[/*###*/"신경망", 개요 상자( 1 ), "검증", "유형", 테이블 상자( 1 )]". 첫 번째 스크립트가 잘 실행되기 때문에 이 메시지가 표시되는 이유를 이해할 수 없습니다.
JSL을 좀 더 잘 이해하기 위해 이 문제에 대한 해결책이 있습니까? 왜 이 문제가 발생했는지 설명할 수 있습니까? 감사!
Re: JSL - 플랫폼 기능 내에서 반복감사합니다, Jarmo, 제가 찾던 곳이었습니다. 간단한 선이지만 JSL을 처음 접하는 사람에게는 이해하기 어렵습니다!
Re: JSL - 플랫폼 기능 내에서 반복코드가 올바른 참조를 찾지 못하고 있습니다. rpt = Current Window(); to rpt = Current Report()로 충분하지만 귀하가 가지고 있는 참조(내 예제 obj에서)를 사용하는 것이 좋습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Boston Housing.jmp");
obj = Neural(
Y(:mvalue),
X(:crim, :indus, :chas, :nox, :rooms, :age, :distance, :radial),
Set Random Seed(2),
<< Fit(NTanH(4)),
<< Fit(NTanH(4)),
<< Fit(NTanH(4))
);
For(i = 1, i <= 2, i++,
obj << Fit(NTanH(4));
);
Report(obj)[Outline Box("Neural")][Outline Box("Training")][Table Box(1)] << Make Combined Data Table;