Personalize / Client / create_solution
create_solution#
- Personalize.Client.create_solution(**kwargs)#
- Creates the configuration for training a model. A trained model is known as a solution version. After the configuration is created, you train the model (create a solution version) by calling the CreateSolutionVersion operation. Every time you call - CreateSolutionVersion, a new version of the solution is created.- After creating a solution version, you check its accuracy by calling GetSolutionMetrics. When you are satisfied with the version, you deploy it using CreateCampaign. The campaign provides recommendations to a client through the GetRecommendations API. - To train a model, Amazon Personalize requires training data and a recipe. The training data comes from the dataset group that you provide in the request. A recipe specifies the training algorithm and a feature transformation. You can specify one of the predefined recipes provided by Amazon Personalize. - Note- Amazon Personalize doesn’t support configuring the - hpoObjectivefor solution hyperparameter optimization at this time.- Status- A solution can be in one of the following states: - CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED 
- DELETE PENDING > DELETE IN_PROGRESS 
 - To get the status of the solution, call DescribeSolution. Wait until the status shows as ACTIVE before calling - CreateSolutionVersion.- Related APIs- See also: AWS API Documentation - Request Syntax- response = client.create_solution( name='string', performHPO=True|False, performAutoML=True|False, recipeArn='string', datasetGroupArn='string', eventType='string', solutionConfig={ 'eventValueThreshold': 'string', 'hpoConfig': { 'hpoObjective': { 'type': 'string', 'metricName': 'string', 'metricRegex': 'string' }, 'hpoResourceConfig': { 'maxNumberOfTrainingJobs': 'string', 'maxParallelTrainingJobs': 'string' }, 'algorithmHyperParameterRanges': { 'integerHyperParameterRanges': [ { 'name': 'string', 'minValue': 123, 'maxValue': 123 }, ], 'continuousHyperParameterRanges': [ { 'name': 'string', 'minValue': 123.0, 'maxValue': 123.0 }, ], 'categoricalHyperParameterRanges': [ { 'name': 'string', 'values': [ 'string', ] }, ] } }, 'algorithmHyperParameters': { 'string': 'string' }, 'featureTransformationParameters': { 'string': 'string' }, 'autoMLConfig': { 'metricName': 'string', 'recipeList': [ 'string', ] }, 'optimizationObjective': { 'itemAttribute': 'string', 'objectiveSensitivity': 'LOW'|'MEDIUM'|'HIGH'|'OFF' }, 'trainingDataConfig': { 'excludedDatasetColumns': { 'string': [ 'string', ] } } }, tags=[ { 'tagKey': 'string', 'tagValue': 'string' }, ] ) - Parameters:
- name (string) – - [REQUIRED] - The name for the solution. 
- performHPO (boolean) – - Whether to perform hyperparameter optimization (HPO) on the specified or selected recipe. The default is - false.- When performing AutoML, this parameter is always - trueand you should not set it to- false.
- performAutoML (boolean) – - Warning- We don’t recommend enabling automated machine learning. Instead, match your use case to the available Amazon Personalize recipes. For more information, see Determining your use case. - Whether to perform automated machine learning (AutoML). The default is - false. For this case, you must specify- recipeArn.- When set to - true, Amazon Personalize analyzes your training data and selects the optimal USER_PERSONALIZATION recipe and hyperparameters. In this case, you must omit- recipeArn. Amazon Personalize determines the optimal recipe by running tests with different values for the hyperparameters. AutoML lengthens the training process as compared to selecting a specific recipe.
- recipeArn (string) – The ARN of the recipe to use for model training. Only specified when - performAutoMLis false.
- datasetGroupArn (string) – - [REQUIRED] - The Amazon Resource Name (ARN) of the dataset group that provides the training data. 
- eventType (string) – - When your have multiple event types (using an - EVENT_TYPEschema field), this parameter specifies which event type (for example, ‘click’ or ‘like’) is used for training the model.- If you do not provide an - eventType, Amazon Personalize will use all interactions for training with equal weight regardless of type.
- solutionConfig (dict) – - The configuration to use with the solution. When - performAutoMLis set to true, Amazon Personalize only evaluates the- autoMLConfigsection of the solution configuration.- Note- Amazon Personalize doesn’t support configuring the - hpoObjectiveat this time.- eventValueThreshold (string) – - Only events with a value greater than or equal to this threshold are used for training a model. 
- hpoConfig (dict) – - Describes the properties for hyperparameter optimization (HPO). - hpoObjective (dict) – - The metric to optimize during HPO. - Note- Amazon Personalize doesn’t support configuring the - hpoObjectiveat this time.- type (string) – - The type of the metric. Valid values are - Maximizeand- Minimize.
- metricName (string) – - The name of the metric. 
- metricRegex (string) – - A regular expression for finding the metric in the training job logs. 
 
- hpoResourceConfig (dict) – - Describes the resource configuration for HPO. - maxNumberOfTrainingJobs (string) – - The maximum number of training jobs when you create a solution version. The maximum value for - maxNumberOfTrainingJobsis- 40.
- maxParallelTrainingJobs (string) – - The maximum number of parallel training jobs when you create a solution version. The maximum value for - maxParallelTrainingJobsis- 10.
 
- algorithmHyperParameterRanges (dict) – - The hyperparameters and their allowable ranges. - integerHyperParameterRanges (list) – - The integer-valued hyperparameters and their ranges. - (dict) – - Provides the name and range of an integer-valued hyperparameter. - name (string) – - The name of the hyperparameter. 
- minValue (integer) – - The minimum allowable value for the hyperparameter. 
- maxValue (integer) – - The maximum allowable value for the hyperparameter. 
 
 
- continuousHyperParameterRanges (list) – - The continuous hyperparameters and their ranges. - (dict) – - Provides the name and range of a continuous hyperparameter. - name (string) – - The name of the hyperparameter. 
- minValue (float) – - The minimum allowable value for the hyperparameter. 
- maxValue (float) – - The maximum allowable value for the hyperparameter. 
 
 
- categoricalHyperParameterRanges (list) – - The categorical hyperparameters and their ranges. - (dict) – - Provides the name and range of a categorical hyperparameter. - name (string) – - The name of the hyperparameter. 
- values (list) – - A list of the categories for the hyperparameter. - (string) – 
 
 
 
 
 
- algorithmHyperParameters (dict) – - Lists the hyperparameter names and ranges. - (string) – - (string) – 
 
 
- featureTransformationParameters (dict) – - Lists the feature transformation parameters. - (string) – - (string) – 
 
 
- autoMLConfig (dict) – - The AutoMLConfig object containing a list of recipes to search when AutoML is performed. - metricName (string) – - The metric to optimize. 
- recipeList (list) – - The list of candidate recipes. - (string) – 
 
 
- optimizationObjective (dict) – - Describes the additional objective for the solution, such as maximizing streaming minutes or increasing revenue. For more information see Optimizing a solution. - itemAttribute (string) – - The numerical metadata column in an Items dataset related to the optimization objective. For example, VIDEO_LENGTH (to maximize streaming minutes), or PRICE (to maximize revenue). 
- objectiveSensitivity (string) – - Specifies how Amazon Personalize balances the importance of your optimization objective versus relevance. 
 
- trainingDataConfig (dict) – - Specifies the training data configuration to use when creating a custom solution version (trained model). - excludedDatasetColumns (dict) – - Specifies the columns to exclude from training. Each key is a dataset type, and each value is a list of columns. Exclude columns to control what data Amazon Personalize uses to generate recommendations. For example, you might have a column that you want to use only to filter recommendations. You can exclude this column from training and Amazon Personalize considers it only when filtering. - (string) – - (list) – - (string) – 
 
 
 
 
 
- tags (list) – - A list of tags to apply to the solution. - (dict) – - The optional metadata that you apply to resources to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. For more information see Tagging Amazon Personalize recources. - tagKey (string) – [REQUIRED] - One part of a key-value pair that makes up a tag. A key is a general label that acts like a category for more specific tag values. 
- tagValue (string) – [REQUIRED] - The optional part of a key-value pair that makes up a tag. A value acts as a descriptor within a tag category (key). 
 
 
 
- Return type:
- dict 
- Returns:
- Response Syntax- { 'solutionArn': 'string' } - Response Structure- (dict) – - solutionArn (string) – - The ARN of the solution. 
 
 
 - Exceptions- Personalize.Client.exceptions.InvalidInputException
- Personalize.Client.exceptions.ResourceAlreadyExistsException
- Personalize.Client.exceptions.ResourceNotFoundException
- Personalize.Client.exceptions.LimitExceededException
- Personalize.Client.exceptions.ResourceInUseException
- Personalize.Client.exceptions.TooManyTagsException