Difference between revisions of "Modeling"

From wiki
Jump to navigation Jump to search
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
Mostly based on [http://greenteapress.com/ModSimPy/ModSimPy.pdf this paper]
+
[[Category:AI]]
 +
Mostly based on an older version of [http://greenteapress.com/modsimpy/ModSimPy3.pdf this paper] that comes with its own modsim library.
  
=Eyeopeners=
+
* A model depicts a system.
Store results in a list.
+
* The state of the system attributes is stored in a [[Pandas#Series]]
 +
* Results of how the system attributes change over time are stored in Pandas Series too (1 Series per attribute).
 +
* Parameters that determine how the system attributes change are also stored in a pandas series.
 +
* The functions that change the system attributes take the system parameters as parameter. This way you can play with the parameter values to get the best result.
 +
** [[Numpy#linspace]] provides an equally distributed range of values so you can play easily between the limits you set.
 +
* The quality of the model can be judged by calculating the relative error of the [[Approximation]] 
 +
 
 +
=Other remarks=
 +
* If you use randomness in a function, get the mean values of several runs.
 +
 
 +
=Example code=
 +
[[Numpy]] [[Numpy#linspace | linspace]]
 +
<syntaxhighlight lang=python>
 +
funcAresults = pd.Series([])
 +
p1_array = np.linspace(0,1,12)
 +
for p1 in p1_array:
 +
    for a in range(50):
 +
        funcAresults[a] = functionAcall(p1,p2)
 +
    print(funcAresults)
 +
</syntaxhighlight>
 +
 
 +
Store results in a [[Pandas]] [[Pandas#Series|Series]]
 
<syntaxhighlight lang=python>
 
<syntaxhighlight lang=python>
 
for a in range(100):
 
for a in range(100):
Line 9: Line 31:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
ModSimPy is using Series from [[Pandas]] to store results. This adds handy functions.
+
=Naming conventions=
;results.mean()
 
:Return the mean (average) for the items in results
 
  
I have not studied the pandas Series yet but this works:
+
;system
<syntaxhighlight lang=python>
+
:[[Pandas#Series]] to store parameters of how the model behaves
from modsim import *
+
;system.alpha
results = TimeSeries()
+
:Variable to store the net change.
for a in range(100):
+
;system.t_0
    results[a] = functioncall(bla,bla)
+
:First time-stamp
</syntaxhighlight>
+
;system.p_0
TimeSeries is a modified version (subclass) of the pandas.Series class.
+
:State of the system at t_0 (a Pandas series)
 +
;system.t_end
 +
:Last time-stamp

Latest revision as of 14:35, 24 January 2020

Mostly based on an older version of this paper that comes with its own modsim library.

  • A model depicts a system.
  • The state of the system attributes is stored in a Pandas#Series
  • Results of how the system attributes change over time are stored in Pandas Series too (1 Series per attribute).
  • Parameters that determine how the system attributes change are also stored in a pandas series.
  • The functions that change the system attributes take the system parameters as parameter. This way you can play with the parameter values to get the best result.
    • Numpy#linspace provides an equally distributed range of values so you can play easily between the limits you set.
  • The quality of the model can be judged by calculating the relative error of the Approximation

Other remarks

  • If you use randomness in a function, get the mean values of several runs.

Example code

Numpy linspace

funcAresults = pd.Series([])
p1_array = np.linspace(0,1,12)
for p1 in p1_array:
    for a in range(50):
        funcAresults[a] = functionAcall(p1,p2)
    print(funcAresults)

Store results in a Pandas Series

for a in range(100):
    funcAresults[a] = functionAcall(bla,bla)
    funcBresults[a] = functionBcall(bla,bla)

Naming conventions

system
Pandas#Series to store parameters of how the model behaves
system.alpha
Variable to store the net change.
system.t_0
First time-stamp
system.p_0
State of the system at t_0 (a Pandas series)
system.t_end
Last time-stamp