.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/programmers/plot_segmentation.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_programmers_plot_segmentation.py: biogeme.segmentation ==================== Examples of use of several functions. This is designed for programmers who need examples of use of the functions of the module. The examples are designed to illustrate the syntax. They do not correspond to any meaningful model. :author: Michel Bierlaire :date: Thu Dec 7 15:18:45 2023 .. GENERATED FROM PYTHON SOURCE LINES 15-19 .. code-block:: default from biogeme.version import getText import biogeme.segmentation as seg from biogeme.expressions import Variable, Beta .. GENERATED FROM PYTHON SOURCE LINES 20-21 Version of Biogeme. .. GENERATED FROM PYTHON SOURCE LINES 21-23 .. code-block:: default print(getText()) .. rst-class:: sphx-glr-script-out .. code-block:: none biogeme 3.2.13 [2023-12-23] Home page: http://biogeme.epfl.ch Submit questions to https://groups.google.com/d/forum/biogeme Michel Bierlaire, Transport and Mobility Laboratory, Ecole Polytechnique Fédérale de Lausanne (EPFL) .. GENERATED FROM PYTHON SOURCE LINES 24-26 .. code-block:: default socio_eco_1 = Variable('socio_eco_1') .. GENERATED FROM PYTHON SOURCE LINES 27-36 .. code-block:: default segmentation_1 = seg.DiscreteSegmentationTuple( variable=socio_eco_1, mapping={ 1: 'high', 2: 'medium', 3: 'low', }, ) .. GENERATED FROM PYTHON SOURCE LINES 37-39 .. code-block:: default socio_eco_2 = Variable('socio_eco_2') .. GENERATED FROM PYTHON SOURCE LINES 40-50 .. code-block:: default segmentation_2 = seg.DiscreteSegmentationTuple( variable=socio_eco_2, mapping={ 1: 'level_1', 2: 'level_2', 3: 'level_3', 4: 'level_4', }, ) .. GENERATED FROM PYTHON SOURCE LINES 51-53 .. code-block:: default beta_x = Beta('beta_x', 0, None, None, 0) .. GENERATED FROM PYTHON SOURCE LINES 54-56 .. code-block:: default segmented_parameter = seg.Segmentation(beta_x, (segmentation_1,)) .. GENERATED FROM PYTHON SOURCE LINES 57-58 The expressions for the segmented parameter is obtained as follows: .. GENERATED FROM PYTHON SOURCE LINES 58-60 .. code-block:: default segmented_parameter.segmented_beta() .. rst-class:: sphx-glr-script-out .. code-block:: none bioMultSum(Beta('beta_x', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0), (Beta('beta_x_medium', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0) * (socio_eco_1 == `2.0`)), (Beta('beta_x_low', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0) * (socio_eco_1 == `3.0`))) .. GENERATED FROM PYTHON SOURCE LINES 61-62 The corresponding Python code can be obtained as follows. .. GENERATED FROM PYTHON SOURCE LINES 62-64 .. code-block:: default print(segmented_parameter.segmented_code()) .. rst-class:: sphx-glr-script-out .. code-block:: none beta_x_medium = Beta('beta_x_medium', 0, None, None, 0) beta_x_low = Beta('beta_x_low', 0, None, None, 0) segmented_beta_x = bioMultSum([Beta('beta_x', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0), beta_x_medium * (Variable('socio_eco_1') == 2), beta_x_low * (Variable('socio_eco_1') == 3)]) .. GENERATED FROM PYTHON SOURCE LINES 65-66 The code of the original beta is also available: .. GENERATED FROM PYTHON SOURCE LINES 66-68 .. code-block:: default print(segmented_parameter.beta_code()) .. rst-class:: sphx-glr-script-out .. code-block:: none Beta('beta_x', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0) .. GENERATED FROM PYTHON SOURCE LINES 69-70 Same with the second segmentation .. GENERATED FROM PYTHON SOURCE LINES 70-72 .. code-block:: default segmented_parameter = seg.Segmentation(beta_x, (segmentation_2,)) .. GENERATED FROM PYTHON SOURCE LINES 73-75 .. code-block:: default segmented_parameter.segmented_beta() .. rst-class:: sphx-glr-script-out .. code-block:: none bioMultSum(Beta('beta_x', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0), (Beta('beta_x_level_2', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0) * (socio_eco_2 == `2.0`)), (Beta('beta_x_level_3', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0) * (socio_eco_2 == `3.0`)), (Beta('beta_x_level_4', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0) * (socio_eco_2 == `4.0`))) .. GENERATED FROM PYTHON SOURCE LINES 76-78 .. code-block:: default print(segmented_parameter.segmented_code()) .. rst-class:: sphx-glr-script-out .. code-block:: none beta_x_level_2 = Beta('beta_x_level_2', 0, None, None, 0) beta_x_level_3 = Beta('beta_x_level_3', 0, None, None, 0) beta_x_level_4 = Beta('beta_x_level_4', 0, None, None, 0) segmented_beta_x = bioMultSum([Beta('beta_x', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0), beta_x_level_2 * (Variable('socio_eco_2') == 2), beta_x_level_3 * (Variable('socio_eco_2') == 3), beta_x_level_4 * (Variable('socio_eco_2') == 4)]) .. GENERATED FROM PYTHON SOURCE LINES 79-80 The two segmentations can be combined together .. GENERATED FROM PYTHON SOURCE LINES 80-88 .. code-block:: default segmented_parameter = seg.Segmentation( beta_x, ( segmentation_1, segmentation_2, ), ) .. GENERATED FROM PYTHON SOURCE LINES 89-91 .. code-block:: default segmented_parameter.segmented_beta() .. rst-class:: sphx-glr-script-out .. code-block:: none bioMultSum(Beta('beta_x', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0), (Beta('beta_x_medium', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0) * (socio_eco_1 == `2.0`)), (Beta('beta_x_low', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0) * (socio_eco_1 == `3.0`)), (Beta('beta_x_level_2', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0) * (socio_eco_2 == `2.0`)), (Beta('beta_x_level_3', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0) * (socio_eco_2 == `3.0`)), (Beta('beta_x_level_4', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0) * (socio_eco_2 == `4.0`))) .. GENERATED FROM PYTHON SOURCE LINES 92-93 .. code-block:: default print(segmented_parameter.segmented_code()) .. rst-class:: sphx-glr-script-out .. code-block:: none beta_x_medium = Beta('beta_x_medium', 0, None, None, 0) beta_x_low = Beta('beta_x_low', 0, None, None, 0) beta_x_level_2 = Beta('beta_x_level_2', 0, None, None, 0) beta_x_level_3 = Beta('beta_x_level_3', 0, None, None, 0) beta_x_level_4 = Beta('beta_x_level_4', 0, None, None, 0) segmented_beta_x = bioMultSum([Beta('beta_x', 0, -1.3407807929942596e+154, 1.3407807929942596e+154, 0), beta_x_medium * (Variable('socio_eco_1') == 2), beta_x_low * (Variable('socio_eco_1') == 3), beta_x_level_2 * (Variable('socio_eco_2') == 2), beta_x_level_3 * (Variable('socio_eco_2') == 3), beta_x_level_4 * (Variable('socio_eco_2') == 4)]) .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.003 seconds) .. _sphx_glr_download_auto_examples_programmers_plot_segmentation.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_segmentation.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_segmentation.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_