설명
SCENRED에서 트리 감소의 간단한 확인 먼저 명백한 감소가 수행되었는지 확인합니다. 제거할 노드에는 0이 아닌 임의의 값이 있고 모든 경우에는 값 중 하나가 0입니다. 기여자: Steve Dirkse
소형 모델 유형 :크레이지 슬롯
카테고리 : 크레이지 슬롯 테스트 라이브러리
메인 파일 : scnred02.gms
$title Scenred 테스트 - 트리 축소 및 0 값 (SCNRED02,SEQ=434)
$onText
SCENRED에서 트리 감소의 간단한 확인
먼저 명백한 감소가 수행되었는지 확인합니다.
제거할 노드에는 0이 아닌 임의의 값이 있고 모든 경우에는
값 중 하나가 0입니다.
기여자: Steve Dirkse
$offText
세트
g '상품' / g1, g2 /,
n '노드' /
n0 '루트 - 1단계',
(n1*n5) '2단계'
/
stage2(n) / (n1*n5) /,
조상(n,n) '(하위,부모) 순서로 스크린에 입력'
newAncestor(n,n) '스크린샷의 출력'
wantAnc(n,n) '새 트리가 예상됨' /
(n1*n4).n0
/
anc차이(n,n)
;
별칭(n,n2);
매개변수
prob(n) 노드 확률 /
n0 1
(n1*n4) 0.24
n5 0.04
/
newProb(n) '검토된 노드 확률 출력'
pErr(n) '원하는 확률 - 있음'
rData(g,n) '무작위 데이터' /
g1.(n1,n2) .1
g1.(n3,n4) 5
g2.(n1,n3) .1
g2.(n2,n4) 5
g1.n5 0
g2.n5 5
/
;
조상(stage2(n),'n0') = 예;
* 로드 스크린 기호 *
$set srprefix scnred02
$libInclude 검열됨
* SCENRED2 방법 선택 *
scenRedParms('reduction_method') = 1;
scenRedParms('red_num_leaves') = 4;
스칼라 작은 / 1e-3 /;
* 테스트 1: parms [tiny,5]를 사용하여 노드를 추가하고 노드 n2와 병합해야 합니다.
rData('g1','n5') = 아주 작음;
rData('g2','n5') = 5;
$libInclude scenred %srprefix% tree_con n 조상 prob newancestor newprob rData
ancDiff(n,n2) = wantAnc(n,n2) - newAncestor(n,n2);
abort$[card(ancDiff) 또는 (card(wantAnc)-card(newAncestor))] 'bad newAncestor';
pErr(n) = prob(n); pErr('n5') = 0; pErr('n2') = .28;
pErr(n) = abs(pErr(n)-newProb(n));
abort$[smaxn, pErr(n) > 1e-7] 'bad newProb';
* 테스트 2: parms [5,tiny]를 사용하여 노드를 추가하고 노드 n3과 병합해야 합니다.
rData('g1','n5') = 5;
rData('g2','n5') = 아주 작음;
$libInclude scenred %srprefix% tree_con n 조상 prob newancestor newprob rData
ancDiff(n,n2) = wantAnc(n,n2) - newAncestor(n,n2);
abort$[card(ancDiff) 또는 (card(wantAnc)-card(newAncestor))] 'bad newAncestor';
pErr(n) = prob(n); pErr('n5') = 0; pErr('n3') = .28;
pErr(n) = abs(pErr(n)-newProb(n));
abort$[smaxn, pErr(n) > 1e-7] 'bad newProb';
* 테스트 3: 매개변수 [0,5]를 사용하여 노드를 추가하고 노드 n2와 병합해야 합니다.
rData('g1','n5') = 0;
rData('g2','n5') = 5;
$libInclude scenred %srprefix% tree_con n 조상 prob newancestor newprob rData
ancDiff(n,n2) = wantAnc(n,n2) - newAncestor(n,n2);
abort$[card(ancDiff) 또는 (card(wantAnc)-card(newAncestor))] 'bad newAncestor';
pErr(n) = prob(n); pErr('n5') = 0; pErr('n2') = .28;
pErr(n) = abs(pErr(n)-newProb(n));
abort$[smaxn, pErr(n) > 1e-7] 'bad newProb';
* 테스트 4: parms [5,0]을 사용하여 노드를 추가하고 노드 n3과 병합해야 합니다.
rData('g1','n5') = 5;
rData('g2','n5') = 0;
$libInclude scenred %srprefix% tree_con n 조상 prob newancestor newprob rData
ancDiff(n,n2) = wantAnc(n,n2) - newAncestor(n,n2);
abort$[card(ancDiff) 또는 (card(wantAnc)-card(newAncestor))] 'bad newAncestor';
pErr(n) = prob(n); pErr('n5') = 0; pErr('n3') = .28;
pErr(n) = abs(pErr(n)-newProb(n));
abort$[smaxn, pErr(n) > 1e-7] 'bad newProb';