Segmentation

Segmentation of the parameters

biogeme.segmentation module

Class that provides some automatic specification for segmented parameters

author:

Michel Bierlaire

date:

Thu Feb 2 09:42:36 2023

class biogeme.segmentation.DiscreteSegmentationTuple(variable, mapping, reference=None)[source]

Bases: object

Characterization of a segmentation

__init__(variable, mapping, reference=None)[source]

Ctor

Parameters:
  • variable (biogeme.expressions.Variable or str) – socio-economic variable used for the segmentation, or its name

  • mapping (dict(int: str)) – maps the values of the variable with the name of a category

  • reference (str) – name of the reference category. If None, an arbitrary category is selected as reference. :type:

Raises:

BiogemeError – if the name of the reference category does not appear in the list.

class biogeme.segmentation.OneSegmentation(beta, segmentation_tuple)[source]

Bases: object

Single segmentation of a parameter

__init__(beta, segmentation_tuple)[source]

Ctor

Parameters:
  • beta (biogeme.expressions.Beta) – parameter to be segmented

  • segmentation_tuple (DiscreteSegmentationTuple) – characterization of the segmentation

beta_code(category, assignment)[source]
Constructs the Python code for the expression of the

parameter associated with a specific category

Parameters:
  • category (str) – name of the category

  • assignment (bool) – if True, the code includes the assigbnment to a variable.

Returns:

the Python code

Return type:

str

beta_expression(category)[source]
Constructs the expression for the parameter associated with

a specific category

Parameters:

category (str) – name of the category

Returns:

expression of the parameter for the category

Return type:

biogeme.expressions.Beta

beta_name(category)[source]

Construct the name of the parameter associated with a specific category

Parameters:

category (str) – name of the category

Returns:

name of parameter for the category

Return type:

str

Raises:

BiogemeError – if the category is not listed in the mapping of the segmentation.

list_of_code()[source]
Create a list of Python codes for the expressions involved

in the segmentation of the parameter

Returns:

list of codes

Return type:

list(str)

list_of_expressions()[source]

Create a list of expressions involved in the segmentation of the parameter

Returns:

list of expressions

Return type:

list(biogeme.expressions.Expression)

class biogeme.segmentation.Segmentation(beta, segmentation_tuples, prefix='segmented')[source]

Bases: object

Segmentation of a parameter, possibly with multiple socio-economic variables

__init__(beta, segmentation_tuples, prefix='segmented')[source]

Ctor

Parameters:
  • beta (biogeme.expressions.Beta) – parameter to be segmented

  • segmentation_tuples (list(DiscreteSegmentationTuple)) – characterization of the segmentations

  • prefix (str) – prefix to be used to generated the name of the segmented parameter

beta_code()[source]

Constructs the Python code for the parameter

Returns:

Python code

Return type:

str

segmented_beta()[source]

Create an expressions that combines all the segments

Returns:

combined expression

Return type:

biogeme.expressions.Expression

segmented_code()[source]

Create the Python code for an expressions that combines all the segments

Returns:

Python code for the combined expression

Return type:

str

biogeme.segmentation.segmented_beta(beta, segmentation_tuples, prefix='segmented')[source]

Obtain the segmented beta from a unique function call

Parameters:
  • beta (biogeme.expressions.Beta) – parameter to be segmented

  • segmentation_tuples (list(DiscreteSegmentationTuple)) – characterization of the segmentations

  • prefix (str) – prefix to be used to generated the name of the segmented parameter

Returns:

expression of the segmented beta

Return type:

biogeme.expressions.Expression