JSL을 통해 특정 이름으로 예측 수식 열을 저장하는 방법은 무엇입니까?여러분 모두에게,
JSL 스크립트를 통해 일반화된 선형 모델을 실행하고 있습니다.
특정 이름의 열에 예측 수식을 저장하려면 어떻게 해야 합니까?
내가 찾은 모든 것 ( JMP 스크립트를 사용하여 예측 공식 저장을 자동화하시겠습니까? )는 다음과 같았습니다.
GLM = 적합 모델(......);
GLM << 예측 공식;
하지만:
1) 예측 수식을 저장할 열의 이름을 선택할 수 있나요? JMP는 "Pred Formula 'Target Variable'"에 자동으로 저장합니다.
2) 이 기능이 어디에나 문서화되어 있습니까? 위 포럼에서 찾았지만 JMP 문서에서는 찾지 못했습니다.
3) 다른 플랫폼(예: 파티션)에서도 동일한 구문이 작동합니까?
감사해요.
Re: JSL 스크립팅: 예측 공식을 저장하는 방법은 무엇입니까?Ian의 답변은 우려 사항 1번과 3번에 대한 답변이며 사용자 ms는 JSL(JMP 스크립팅 언어) 관련 문서에 대한 질문 2번에 답변합니다.
@ian_jmp :
일반적으로 '예측 공식 저장'은 플랫폼 간에 일관됩니다. 저장된 열의 이름은 실제로 고정되어 있지만 다음과 같이 이름을 바꿀 수 있습니다.
dt <SPAN class="token operator">=</SPAN> <SPAN class="token function">Open</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token string">"$SAMPLE_DATA/Big Class.jmp"</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
cols <SPAN class="token operator">=</SPAN> dt <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN> GetColumnNames<SPAN class="token punctuation">(</SPAN><SPAN class="token string">"String"</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token function">For</SPAN><SPAN class="token punctuation">(</SPAN>c<SPAN class="token operator">=</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">,</SPAN> c<SPAN class="token operator"><=</SPAN><SPAN class="token function">NItems</SPAN><SPAN class="token punctuation">(</SPAN>cols<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> c<SPAN class="token operator">++</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token function">Column</SPAN><SPAN class="token punctuation">(</SPAN>dt<SPAN class="token punctuation">,</SPAN> cols<SPAN class="token punctuation">[</SPAN>c<SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">)</SPAN> <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN> SetName<SPAN class="token punctuation">(</SPAN><SPAN class="token string">"New "</SPAN><SPAN class="token operator">||</SPAN>cols<SPAN class="token punctuation">[</SPAN>c<SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
드물게 열이 생성되기 전과 후에 '열 이름 가져오기'를 사용하여 두 목록을 비교하여 새 열의 이름을 유추하는 것이 도움이 될 수 있습니다.
@ms :
JSL에 대한 문서와 관련하여 스크립팅 인덱스 (도움말 메뉴)는 바로 사용할 수 있는 예제가 포함된 훌륭한 리소스입니다. 그리고 네, << 예측 공식 있다.
Re: JSL을 통해 특정 이름으로 예측 수식 열을 저장하는 방법은 무엇입니까?귀하의 예를 계속:
GLM = Fit Model (......);
pf = GLM << prediction formula;
pf << Set Name( "my name" );
예, 이 접근 방식은 모든 모델링 플랫폼에서 작동합니다.
Re: JSL 스크립팅: 예측 공식을 저장하는 방법은 무엇입니까?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />My Saved prediction에서 큰따옴표를 제거했는데 이제 모두 잘 작동합니다.
Scripting Index를 알려주셔서 감사합니다. 매우 유용합니다!
Re: JSL 스크립팅: 예측 공식을 저장하는 방법은 무엇입니까?빈 상자는 내 저장된 예측(큰따옴표 안에 있으면 안 됨) 열이 현재 데이터 테이블에 존재하지 않음을 나타낼 수 있습니다. 철자를 확인하십시오.
JSL에 대한 문서와 관련하여 스크립팅 인덱스 (도움말 메뉴)는 바로 사용할 수 있는 예제가 포함된 훌륭한 리소스입니다. 그리고 네, << 예측 공식 있다.
Re: JSL 스크립팅: 예측 공식을 저장하는 방법은 무엇입니까?음, 매우 복잡하게 들립니다. 내가 찾은 것은 내 대상 변수가 "My Target"인 경우 열이 "Pred Formula My Target"이라는 것이므로 다음을 사용합니다.
GLM = Fit Model (......);
GLM << prediction formula;
Column("Pred Formula My Target") << Set Name("New Column Name");
문서는 어떻습니까? 이것이 JSL 문서의 어디에나 적절하게 문서화되어 있습니까? 나는 그것을 찾지 못했습니다. 저는 JMP 스크립팅을 처음 사용하지만 첫인상은 JMP가 복잡한 구문과 빈약한 설명서가 있는 강력한 언어라는 것입니다. 어떤 면에서는 R과 약간 비슷하지만 상업용 소프트웨어에서 더 나은 설명서를 기대할 수 있습니다!
마지막으로 예측에 다른 항목을 곱하는 또 다른 열을 만듭니다.
New Column("My new calculation", Numeric, Formula( :"My saved Prediction" * :another_field ));
"내 저장된 예측"에는 이름에 공백이 있지만 another_field에는 공백이 없습니다. 수식이 올바르게 계산되었지만 제목을 마우스 오른쪽 버튼으로 클릭하고 수식으로 이동하면 another_field가 곱해진 빈 상자가 표시됩니다. 이것은 JMP의 버그입니까? 수식을 다르게 지정해야 합니까?
감사합니다.
Re: JSL 스크립팅: 예측 공식을 저장하는 방법은 무엇입니까?일반적으로 '예측 공식 저장'은 플랫폼 간에 일관됩니다. 저장된 열의 이름은 실제로 고정되어 있지만 다음과 같이 이름을 바꿀 수 있습니다.
dt = Open("$SAMPLE_DATA/Big Class.jmp");
cols = dt << GetColumnNames("String");
For(c=1, c<=NItems(cols), c++,
Column(dt, cols[c]) << SetName("New "||cols[c]);
);
드물게 열이 생성되기 전과 후에 '열 이름 가져오기'를 사용하여 두 목록을 비교하여 새 열의 이름을 유추하는 것이 도움이 될 수 있습니다.