Configure building blocks¶
Building blocks are components of Eureqa models. As part of tuning a Eureqa model, you can combine and configure building blocks to create a new Target Expression for that model. For example, if you think that seasonality or some other cyclical trend may be a factor in your data you can use building block configurations to create target expressions that account for those types of trends.
Building blocks provide mathematical functions and operators, including:
- Operators (addition, subtraction, multiplication, division)
- Functions (sin(), sqrt(), logistic(), etc.)
How to choose building blocks¶
The default building blocks have been selected based on extensive testing and are a good place to start. If you do decide to change which building blocks are selected, expert knowledge will help you. Which of the building blocks are typically used in your domain? Which ones are found in solutions to problems related to yours? Which ones are suggested by graphs of your data? Which ones just seem like good candidates based on your intuition (expert or otherwise)?
Disable building blocks¶
If there are building blocks you know you don't want DataRobot to include in model building, you can set them as Disabled. Although reducing the number of building blocks will speed up your search and may increase the likelihood that DataRobot will find an exact solution, disabling too many building blocks could preclude the discovery of an exact solution if a necessary operation is disabled. The DataRobot model building engine is extremely fast and can perform iterations quickly; we recommend additional iterations when trying to decide between actions.
As needed, consult with your domain expertise when adjusting the building block settings to better reflect your use case and help DataRobot find models that provide better explaining power.
Building block complexity¶
Each building block is assigned a default complexity value which factors into the overall complexity of any model containing that block. The complexity weights indicate to DataRobot the relative importance of model interpretability vs. accuracy. If two different models have the same accuracy, but one uses building blocks with higher complexity values, DataRobot will favor the less complex model. If you know that some building blocks are more common within your specific problem type (such as power laws) than the default value would suggest, you can manually set the building block complexity value to a lower value.
This value is also the “complexity penalty” for a building block. A building block complexity weight (or penalty) of 0 means the model can use that building block as needed without being penalized. Take care when setting building block complexity: models that use building blocks repeatedly and unnecessarily can become “cluttered”.
To calculate model complexity, DataRobot will iterate over every building block in the model's target expression, read their individual complexity weights, and calculate the total complexity weight sum for that model.
To set the complexity weight for a building block complexity:
- Make sure the block is not set to Disabled.
- Type the numeric value to use as the complexity weight. Typical complexity values are from 0-4. You should assign low complexity weights (such as 0) for blocks that can be used repeatedly during model processing without penalty, and assign higher complexity weights to blocks that should be used infrequently.
Example of complexity metrics¶
Assuming the following building block complexities:
- Input variable: 1
- Addition: 1
- Multiplication: 0
|a + b||3|
|a * b||2|
Available building blocks¶
For information about all building blocks available to Eureqa models, including definitions and usage, refer to the Building blocks reference page. To access further information about building block configuration, click the Documentation link provided in any Eureqa model blueprint (found in the upper right corner of any building block under the Advanced Tuning tab).