Skip to main content


         This documentation site is for previous versions. Visit our new documentation site for current releases.      
 

Training adaptive models

Updated on January 26, 2024

Adaptive models that you deploy to the Production environment learn quickly online from responses without any historical or sample data. Training adaptive models offline is not required or a best practice. However, for testing or demo purposes, you can train adaptive models with historical or sample data by using a Data Flow with a dedicated Decision strategy.

Offline learning of adaptive models

For testing or demo purposes, you can train adaptive models offline with historical data or sample customer responses. This method can be useful if you have a historical Data Set or simulated data and you want to perform further analysis, testing, or simulations. For example, when the recording of historical data is active for an adaptive model that runs in your Production environment, you can use this data to train another adaptive model with different settings that you want to test. Testing can help you decide whether you want to deploy an adaptive model with these settings to Production.

Online learning of adaptive models

Adaptive models do not require historical or sample data to learn. At the start of a project, no detailed historical data or Outcomes are available, sometimes referred to as the cold start in machine learning. The Adaptive Decision Manager (ADM) provides optimal handling for cold start scenarios through online learning. The ADM typically starts without any data and quickly updates the models from responses. Even when there is some historical data available, it is not a best practice to train adaptive models offline before you deploy them to Production, because it is difficult to get all the historical input data right, including real-time contextual and interaction history data, and there is always the threat of predictor leakage.

Use case

This tutorial explores the following use case:

A company that serves many customers wants to improve its method for identifying the best proposition for each customer. The company can make several propositions and has already acquired some information about its customers and interaction data in an external database. The Data Scientists at the company are developing and testing new adaptive models with different settings.

The CustomerResponse database column in the following table contains historical responses for a strategy in which each customer receives a group of propositions and can select only one (Insurance1, Insurance2, or Insurance3). When a customer accepts a proposition, the system automatically rejects the other two.

Sample database fragment with customer information and recorded response

GENDERLastNameAGEFirstNameINCOMEMaritalStatusCustomerResponse
FHensley66Mary165308MarriedInsurance1
MKnightley30Robert14663SingleInsurance3
FCage17Susan7250SingleInsurance1
FHouse62Margaret21767MarriedInsurance2
FBryant49Anna42517SingleInsurance3

The company needs a solution that takes the customer interaction data, feeds the data to adaptive models, and trains the models simultaneously. Adaptive models that are trained with this information can determine with improved accuracy which proposition a customer is most likely to accept.

To support training adaptive models offline for testing or demo purposes, you must create and configure two rules. The first rule is your decision strategy that references the propositions that you want to offer to your customers. This strategy must also reference an adaptive model rule that learns from each recorded customer response. The second rule that you must create is a data flow. The purpose of this data flow is to upload historical or sample data from a dedicated data set into the adaptive model data set.

Note: This tutorial takes approximately 60 minutes to complete.

Creating a strategy for training adaptive models

First, you must create a strategy that references multiple propositions for training adaptive models. This strategy must import proposition data and feed it to an adaptive model that learns with each received response.

For each proposition in the strategy, the system creates a model instance that you can view on the Model Management landing page in Prediction Studio or Dev Studio. For example, if your Decision strategy references 50 propositions, the system creates 50 model instances.

  1. In the header of Dev Studio, click CreateDecisionStrategy.
  2. On the strategy canvas, configure importing propositions to the strategy (for example, by using the Proposition Data strategy shape).
    You can use the single case test run to verify whether the proposition data is imported as expected.
  3. If the channel dimension or subject ID information for the strategy are not already configured, specify the channel dimension and subject ID settings:
    1. On the strategy canvas, right-click, and then click EnrichmentSet Property.
    2. Right-click the Set Property shape, and then click Properties.
    3. Set the .pyDirection property to the direction that you use in the interaction with the customer.
    4. Set the .pyChannel property to the channel that you use in the interaction with the customer.
      Note: The configuration of the channel dimension settings ensures that the correct adaptive models are trained.
    5. Set the .pySubjectID property. Set this property only if .pySubjectID is not already the class key of the Applies-To class of the strategy.
      Note: In a typical decision strategy, the key of the Applies-To class is set to either Customer or Subject ID and is used as the .pySubjectID property in the strategy results. In a bulk response upload scenario like this one, the data model might not contain a Subject ID, or the Applies-To class might not have the Subject ID set. In this case, verify that the .pySubjectID property is set to a non-empty value.
    Channel dimension and Subject ID settings
    The subject ID is set to 1234, direction to inbound, channel to web.
  4. Configure an Adaptive Model strategy shape:
    1. On the strategy canvas, right-click, and then click Decision AnalyticsAdaptive Model.
    2. Right-click the Adaptive Model shape, and then click Properties.
    3. In the Adaptive Model field, specify the adaptive model rule that you want to use in the strategy. Use one of your existing adaptive model rules.
    4. On the Outcomes tab, verify that you set the correct outcome values for the adaptive model rule.
      The outcome values in the model must match the outcome values returned by the strategy (for example, Accept and Reject).
    Outcome tab in an adaptive model rule
    The positive outcome is set to Accept, the negative outcome is set to Reject.
  5. Configure the strategy so that it updates adaptive models with historical or sample responses:
    1. On the strategy canvas, right-click, and then click EnrichmentSet Property. Place the Set Property shape after the Adaptive Model shape.
    2. Right-click the Set Property shape, and then click Properties.
    3. In the Define action, target, and source section, click Add Item.
    4. In the Action field, select Set.
    5. In the Target field, enter .pyOutcome.
    6. In the Source field, set the adaptive model outcome based on the database field that contains historical or sample customer response.
      For example: @if(.pyName == Primary.CustomerResponse, "Accept", "Reject")
      This example expression is valid only if proposition names are the same as historical or sample responses. The expression states that if the name of the proposition matches the value in the CustomerResponse database column, then the adaptive model outcome is Accept. Otherwise, the adaptive model outcome is Reject.
      Note: When you introduce more complex expressions such as @if(<logic>,<"conditionSucceeds">,<"conditionFails">), you can have multiple adaptive models learn from responses to their corresponding propositions and from responses to other propositions. You can develop a powerful pattern in which adaptive models learn more effectively and are more accurate.

      With complex expressions, you can train adaptive models in scenarios where your database contains multiple fields where customer responses are captured. Consider the following expression: @if( @contains(Primary.RESPONSE_POSITIVE, .pyName) , "Accept", @if ( @contains(Primary.RESPONSE_NEGATIVE, .pyName),"Decline", "None"). In this example, the RESPONSE_POSITIVE database field contains positive customer responses and the RESPONSE_NEGATIVE database field contains negative customer responses.

    7. Click Submit.
    Adaptive model outcome configuration
    The configuration includes an expression to set the py outcome property to a value in the appropriate database field.
  6. Connect the strategy shapes.
  7. Save the strategy,
  8. Run the strategy by clicking ActionsRun.
Result: The Model Management landing page is populated with model instances. The number of model instances created is equal to the number of propositions referenced in the strategy. The initial performance value is 50% for each adaptive model.
Sample strategy for training adaptive models in bulk
The strategy contains five shapes: proposition data, decision properties, adaptive model, outcome properties, and results.

Creating a data flow for training adaptive models

After you create your decision strategy, you must create a data flow that uploads your historical or sample data to each model instance that was created on the Model Management landing page. The source of the data flow is always the data set with customer interaction data.

The data flow must reference the decision strategy that trains the adaptive model that you want to improve. The destination of the data flow is always the Adaptive Decision Manager (ADM) server (pxAdaptiveAnalytics). If the class of the data set and the decision strategy referenced in this data flow do not match, you must convert the properties from the data set class to the strategy class.

Data flow for training adaptive models in bulk
The data flow consists of four shapes: source, convert, decision strategy, and destination shapes.
  1. In the header of Dev Studio, click CreateData ModelData Flow.
  2. To configure the Source shape, right-click the shape, and then click Properties.
    1. Reference the data set with historical or sample outcomes that you want to use to train your adaptive models.
    2. Use the Preview option to preview the data set and test the connection.
    3. Click Submit.
  3. Optional: If the data set with historical or sample data and the referenced strategy are configured in different classes, configure a Convert shape:
    1. Right-click the green plus sign, and then click Convert to add the shape to the data flow.
    2. Right-click the Convert shape, and then click Properties.
    3. In the Convert to field, enter the name of the class where the strategy for adaptive model training is located.
    4. Configure the property mapping to propagate properties from the source to the target class.
    5. Click Submit.
    Convert shape properties
    The convert shape is configured to map the age and income fields from the source to the target class.
  4. Configure a Decision Strategy shape:
    1. Right-click the green plus sign, and then click Strategy to add the shape to the data flow.
    2. Right-click the Decision Strategy shape, and then click Properties.
    3. In the Strategy field, enter the name of the strategy that you prepared for adaptive model training.
    4. In the Store data for field, select the time frame to define how long you want to keep the adaptive inputs and strategy results using delayed learning.
    5. Click Submit.
    Decision Strategy shape properties
    The decision strategy shape is configured to use the Run Analytic Models strategy.
  5. Configure the Destination shape:
    1. Display the shape properties.
    2. In the Destination field, click Data set.
    3. In the Data set field, enter pxAdaptiveAnalytics.
    4. Click Submit.
    Destination shape properties
    The destination shape is configured to output data to the px adaptive analytics data set.
  6. Save the data flow.
  7. Run the data flow to train multiple model instances:
    1. In the header of the data flow tab, click ActionsRun.
    2. In the Data Flow Test Run window, click Activate to run the data flow.
      You can view the progress of the data flow on the progress bar. You can also run the data flow from the Data Flows landing page.
What to do next: After you complete this tutorial, you can view the increased performance of the adaptive model on the Model Management landing page.

Have a question? Get answers now.

Visit the Support Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega.com is not optimized for Internet Explorer. For the optimal experience, please use:

Close Deprecation Notice
Contact us