Translation not up to date
Węzeł Symulacje Generowanie (Sim Gen) udostępnia łatwy sposób generowania symulowanych danych-od podstaw przy użyciu określonych przez użytkownika rozkładów statystycznych lub automatycznie korzystających z rozkładów uzyskanych z uruchomienia węzła Symulacje Dopasowanie (Sim Fit) na istniejących danych historycznych. Jest to przydatne, kiedy ma zostać przeprowadzona ocena wyniku modelu predykcyjnego przy braku pewności dla danych wejściowych modelu.
Właściwości węzła simgennode |
Typ danych | Opis właściwości |
---|---|---|
fields |
Właściwość ustrukturyzowana | Patrz przykład |
correlations |
Właściwość ustrukturyzowana | Patrz przykład |
keep_min_max_setting |
boolean (boolowskie) | |
refit_correlations |
boolean (boolowskie) | |
max_cases |
liczba całkowita | Wartość minimalna to 1000, wartość maksymalna to 2147483647 |
create_iteration_field |
boolean (boolowskie) | |
iteration_field_name |
łańcuch | |
replicate_results |
boolean (boolowskie) | |
random_seed |
liczba całkowita | |
parameter_xml |
łańcuch | Zwraca dane Xml parametru jako łańcuch. |
Przykłady zmiennych
Jest to ustrukturyzowany parametr węzła o następującej składni:
simgennode.setPropertyValue("fields", [
[field1, storage, locked, [distribution1], min, max],
[field2, storage, locked, [distribution2], min, max],
[field3, storage, locked, [distribution3], min, max]
])
distribution
jest deklaracją nazwy rozkładu, po której następuje lista zawierająca pary nazw i wartości atrybutów. Każdy rozkład jest zdefiniowany w następujący sposób:
[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"]]], "", ""]])
Na przykład, aby utworzyć węzeł generujący jedną zmienną o rozkładzie dwumianowym, można użyć następującego kodu:
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]]], "", ""]])
Rozkład dwumianowy ma 2 parametry: n
i prob
. Ponieważ w rozkładzie dwumianowym nie stosuje się wartości minimalnych ani maksymalnych, są one przekazywane jako puste łańcuchy.
distribution
. Można go używać w połączeniu z właściwością fields
.Następujące przykłady ilustrują wszystkie możliwe typy rozkładu: Należy zwrócić uwagę, że próg jest wprowadzany jako thresh
zarówno w NegativeBinomialFailures
, jak i w
NegativeBinomialTrial
.
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
])
Przykład korelacji
Jest to ustrukturyzowany parametr węzła o następującej składni:
simgennode.setPropertyValue("correlations", [
[field1, field2, correlation],
[field1, field3, correlation],
[field2, field3, correlation]
])
Korelacja może być dowolną liczbą z zakresu od +1
do -1
. Można określić dowolną liczbę korelacji. Wszelkim nieokreślonym korelacjom jest przypisywane zero. Jeśli jakiekolwiek pola nie są znane, wartość korelacji powinna być ustawiona na macierzy korelacji (lub tabeli). Jeśli nie istnieją nieznane pola, uruchomienie węzła nie jest możliwe.