/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the machinelearning-2014-12-12.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.MachineLearning.Model
{
///
/// Container for the parameters to the CreateMLModel operation.
/// Creates a new MLModel using the DataSource and the recipe
/// as information sources.
///
///
///
/// An MLModel is nearly immutable. Users can update only the MLModelName
/// and the ScoreThreshold in an MLModel without creating a
/// new MLModel.
///
///
///
/// CreateMLModel is an asynchronous operation. In response to CreateMLModel,
/// Amazon Machine Learning (Amazon ML) immediately returns and sets the MLModel
/// status to PENDING. After the MLModel has been created and
/// ready is for use, Amazon ML sets the status to COMPLETED.
///
///
///
/// You can use the GetMLModel operation to check the progress of the MLModel
/// during the creation operation.
///
///
///
/// CreateMLModel requires a DataSource with computed statistics,
/// which can be created by setting ComputeStatistics to true
/// in CreateDataSourceFromRDS, CreateDataSourceFromS3, or CreateDataSourceFromRedshift
/// operations.
///
///
public partial class CreateMLModelRequest : AmazonMachineLearningRequest
{
private string _mlModelId;
private string _mlModelName;
private MLModelType _mlModelType;
private Dictionary _parameters = new Dictionary();
private string _recipe;
private string _recipeUri;
private string _trainingDataSourceId;
///
/// Gets and sets the property MLModelId.
///
/// A user-supplied ID that uniquely identifies the MLModel.
///
///
[AWSProperty(Required=true, Min=1, Max=64)]
public string MLModelId
{
get { return this._mlModelId; }
set { this._mlModelId = value; }
}
// Check to see if MLModelId property is set
internal bool IsSetMLModelId()
{
return this._mlModelId != null;
}
///
/// Gets and sets the property MLModelName.
///
/// A user-supplied name or description of the MLModel.
///
///
[AWSProperty(Max=1024)]
public string MLModelName
{
get { return this._mlModelName; }
set { this._mlModelName = value; }
}
// Check to see if MLModelName property is set
internal bool IsSetMLModelName()
{
return this._mlModelName != null;
}
///
/// Gets and sets the property MLModelType.
///
/// The category of supervised learning that this MLModel will address. Choose
/// from the following types:
///
/// -
///
/// Choose
REGRESSION if the MLModel will be used to predict
/// a numeric value.
///
/// -
///
/// Choose
BINARY if the MLModel result has two possible values.
///
/// -
///
/// Choose
MULTICLASS if the MLModel result has a limited number
/// of values.
///
///
///
/// For more information, see the Amazon
/// Machine Learning Developer Guide.
///
///
[AWSProperty(Required=true)]
public MLModelType MLModelType
{
get { return this._mlModelType; }
set { this._mlModelType = value; }
}
// Check to see if MLModelType property is set
internal bool IsSetMLModelType()
{
return this._mlModelType != null;
}
///
/// Gets and sets the property Parameters.
///
/// A list of the training parameters in the MLModel. The list is implemented
/// as a map of key-value pairs.
///
///
///
/// The following is the current set of training parameters:
///
/// -
///
///
sgd.maxMLModelSizeInBytes - The maximum allowed size of the model. Depending
/// on the input data, the size of the model might affect its performance.
///
///
///
/// The value is an integer that ranges from 100000 to 2147483648.
/// The default value is 33554432.
///
/// -
///
///
sgd.maxPasses - The number of times that the training process traverses
/// the observations to build the MLModel. The value is an integer that ranges
/// from 1 to 10000. The default value is 10.
///
/// -
///
///
sgd.shuffleType - Whether Amazon ML shuffles the training data. Shuffling
/// the data improves a model's ability to find the optimal solution for a variety of
/// data types. The valid values are auto and none. The default
/// value is none. We strongly recommend that you shuffle your data.
///
/// -
///
///
sgd.l1RegularizationAmount - The coefficient regularization L1 norm.
/// It controls overfitting the data by penalizing large coefficients. This tends to drive
/// coefficients to zero, resulting in a sparse feature set. If you use this parameter,
/// start by specifying a small value, such as 1.0E-08.
///
///
///
/// The value is a double that ranges from 0 to MAX_DOUBLE.
/// The default is to not use L1 normalization. This parameter can't be used when L2
/// is specified. Use this parameter sparingly.
///
/// -
///
///
sgd.l2RegularizationAmount - The coefficient regularization L2 norm.
/// It controls overfitting the data by penalizing large coefficients. This tends to drive
/// coefficients to small, nonzero values. If you use this parameter, start by specifying
/// a small value, such as 1.0E-08.
///
///
///
/// The value is a double that ranges from 0 to MAX_DOUBLE.
/// The default is to not use L2 normalization. This parameter can't be used when L1
/// is specified. Use this parameter sparingly.
///
///
///
public Dictionary Parameters
{
get { return this._parameters; }
set { this._parameters = value; }
}
// Check to see if Parameters property is set
internal bool IsSetParameters()
{
return this._parameters != null && this._parameters.Count > 0;
}
///
/// Gets and sets the property Recipe.
///
/// The data recipe for creating the MLModel. You must specify either the
/// recipe or its URI. If you don't specify a recipe or its URI, Amazon ML creates a default.
///
///
[AWSProperty(Max=131071)]
public string Recipe
{
get { return this._recipe; }
set { this._recipe = value; }
}
// Check to see if Recipe property is set
internal bool IsSetRecipe()
{
return this._recipe != null;
}
///
/// Gets and sets the property RecipeUri.
///
/// The Amazon Simple Storage Service (Amazon S3) location and file name that contains
/// the MLModel recipe. You must specify either the recipe or its URI. If
/// you don't specify a recipe or its URI, Amazon ML creates a default.
///
///
[AWSProperty(Max=2048)]
public string RecipeUri
{
get { return this._recipeUri; }
set { this._recipeUri = value; }
}
// Check to see if RecipeUri property is set
internal bool IsSetRecipeUri()
{
return this._recipeUri != null;
}
///
/// Gets and sets the property TrainingDataSourceId.
///
/// The DataSource that points to the training data.
///
///
[AWSProperty(Required=true, Min=1, Max=64)]
public string TrainingDataSourceId
{
get { return this._trainingDataSourceId; }
set { this._trainingDataSourceId = value; }
}
// Check to see if TrainingDataSourceId property is set
internal bool IsSetTrainingDataSourceId()
{
return this._trainingDataSourceId != null;
}
}
}