시뮬레이션 생성 (Sim Gen) 노드는 사용자가 지정한 통계 분포를 사용하여 처음부터 시뮬레이션된 데이터를 생성하거나 기존 히스토리 데이터에서 시뮬레이션 적합 (Sim Fit) 노드를 실행하여 얻은 분포를 자동으로 사용하는 쉬운 방법을 제공합니다. 이것은 모델 입력에 불확실성이 존재하는 상황에서 예측 모델의 결과를 평가하기 원할 때 유용합니다.
simgennode 특성 |
데이터 유형 | 특성 설명 |
---|---|---|
fields |
구조화된 특성 | 예제 참조 |
correlations |
구조화된 특성 | 예제 참조 |
keep_min_max_setting |
부울 | |
refit_correlations |
부울 | |
max_cases |
정수 | 최소값은 1000, 최대값은 2,147,483,647 |
create_iteration_field |
부울 | |
iteration_field_name |
문자열 | |
replicate_results |
부울 | |
random_seed |
정수 | |
parameter_xml |
문자열 | 모수 Xml을 문자열로 리턴합니다. |
필드 예
이것은 다음 구문을 갖는 구조화된 슬롯 모수입니다.
simgennode.setPropertyValue("fields", [
[field1, storage, locked, [distribution1], min, max],
[field2, storage, locked, [distribution2], min, max],
[field3, storage, locked, [distribution3], min, max]
])
distribution
은(는) 분배 이름의 선언 다음에 속성 이름 및 값 쌍이 포함된 목록입니다. 각 분포는 다음 방법으로
정의됩니다.
[distributionname, [[par1], [par2], [par3]]]
simgennode = modeler.script.stream().createAt("simgen", u"Sim Gen", 726, 322)
simgennode.setPropertyValue("fields", [["Age", "integer", False, ["Uniform",[["min","1"],["max","2"]]], "", ""]])
예를 들어, 이항 분포를 갖는 단일 필드를 생성하는 노드를 작성하려면 다음 스크립트를 사용할 수 있습니다.
simgen_node1 = modeler.script.stream().createAt("simgen", u"Sim Gen", 200, 200)
simgen_node1.setPropertyValue("fields", [["Education", "Real", False, ["Binomial", [["n", 32],
["prob", 0.7]]], "", ""]])
이항 분포는 n
및 prob
매개변수를 사용합니다. 이항은
최소값과 최대값을 지원하지 않으므로, 이들은 빈 문자열로서 제공됩니다.
distribution
를 직접 설정할 수 없습니다. fields
특성과 함께 사용합니다.다음 예는 모든 가능한 분포 유형을 보여줍니다. 임계값은 NegativeBinomialFailures
및 NegativeBinomialTrial
에서 thresh
(으)로 입력됩니다.
stream = modeler.script.stream()
simgennode = stream.createAt("simgen", u"Sim Gen", 200, 200)
beta_dist = ["Field1", "Real", False, ["Beta",[["shape1","1"],["shape2","2"]]], "", ""]
binomial_dist = ["Field2", "Real", False, ["Binomial",[["n" ,"1"],["prob","1"]]], "", ""]
categorical_dist = ["Field3", "String", False, ["Categorical", [["A",0.3],["B",0.5],["C",0.2]]], "", ""]
dice_dist = ["Field4", "Real", False, ["Dice", [["1" ,"0.5"],["2","0.5"]]], "", ""]
exponential_dist = ["Field5", "Real", False, ["Exponential", [["scale","1"]]], "", ""]
fixed_dist = ["Field6", "Real", False, ["Fixed", [["value","1" ]]], "", ""]
gamma_dist = ["Field7", "Real", False, ["Gamma", [["scale","1"],["shape"," 1"]]], "", ""]
lognormal_dist = ["Field8", "Real", False, ["Lognormal", [["a","1"],["b","1" ]]], "", ""]
negbinomialfailures_dist = ["Field9", "Real", False, ["NegativeBinomialFailures",[["prob","0.5"],["thresh","1"]]], "", ""]
negbinomialtrial_dist = ["Field10", "Real", False, ["NegativeBinomialTrials",[["prob","0.2"],["thresh","1"]]], "", ""]
normal_dist = ["Field11", "Real", False, ["Normal", [["mean","1"] ,["stddev","2"]]], "", ""]
poisson_dist = ["Field12", "Real", False, ["Poisson", [["mean","1"]]], "", ""]
range_dist = ["Field13", "Real", False, ["Range", [["BEGIN","[1,3]"] ,["END","[2,4]"],["PROB","[[0.5],[0.5]]"]]], "", ""]
triangular_dist = ["Field14", "Real", False, ["Triangular", [["min","0"],["max","1"],["mode","1"]]], "", ""]
uniform_dist = ["Field15", "Real", False, ["Uniform", [["min","1"],["max","2"]]], "", ""]
weibull_dist = ["Field16", "Real", False, ["Weibull", [["a","0"],["b","1 "],["c","1"]]], "", ""]
simgennode.setPropertyValue("fields", [\
beta_dist, \
binomial_dist, \
categorical_dist, \
dice_dist, \
exponential_dist, \
fixed_dist, \
gamma_dist, \
lognormal_dist, \
negbinomialfailures_dist, \
negbinomialtrial_dist, \
normal_dist, \
poisson_dist, \
range_dist, \
triangular_dist, \
uniform_dist, \
weibull_dist
])
상관계수 예
이것은 다음 구문을 갖는 구조화된 슬롯 모수입니다.
simgennode.setPropertyValue("correlations", [
[field1, field2, correlation],
[field1, field3, correlation],
[field2, field3, correlation]
])
상관은 +1
과(와) -1
사이의 임의의 숫자일 수 있습니다. 원하는 만큼의 상관계수를 지정할 수
있습니다. 모든 지정되지 않은 상관계수는 0으로 설정됩니다. 필드를 알 수 없는 경우, 상관 행렬(또는 테이블)에 상관 값을 설정해야 합니다. 알 수 없는 필드가 있는 경우 노드를 실행할 수 없습니다.