/*
* Copyright 2012-2017 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.
*/
package com.amazonaws.services.machinelearning.model;
import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.AmazonWebServiceRequest;
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class CreateMLModelRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable {
/**
* <p>
* A user-supplied ID that uniquely identifies the <code>MLModel</code>.
* </p>
*/
private String mLModelId;
/**
* <p>
* A user-supplied name or description of the <code>MLModel</code>.
* </p>
*/
private String mLModelName;
/**
* <p>
* The category of supervised learning that this <code>MLModel</code> will address. Choose from the following types:
* </p>
* <ul>
* <li>Choose <code>REGRESSION</code> if the <code>MLModel</code> will be used to predict a numeric value.</li>
* <li>Choose <code>BINARY</code> if the <code>MLModel</code> result has two possible values.</li>
* <li>Choose <code>MULTICLASS</code> if the <code>MLModel</code> result has a limited number of values.</li>
* </ul>
* <p>
* For more information, see the <a href="http://docs.aws.amazon.com/machine-learning/latest/dg">Amazon Machine
* Learning Developer Guide</a>.
* </p>
*/
private String mLModelType;
/**
* <p>
* A list of the training parameters in the <code>MLModel</code>. The list is implemented as a map of key-value
* pairs.
* </p>
* <p>
* The following is the current set of training parameters:
* </p>
* <ul>
* <li>
* <p>
* <code>sgd.maxMLModelSizeInBytes</code> - The maximum allowed size of the model. Depending on the input data, the
* size of the model might affect its performance.
* </p>
* <p>
* The value is an integer that ranges from <code>100000</code> to <code>2147483648</code>. The default value is
* <code>33554432</code>.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.maxPasses</code> - The number of times that the training process traverses the observations to build
* the <code>MLModel</code>. The value is an integer that ranges from <code>1</code> to <code>10000</code>. The
* default value is <code>10</code>.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.shuffleType</code> - 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 <code>auto</code>
* and <code>none</code>. The default value is <code>none</code>. We <?oxy_insert_start author="laurama"
* timestamp="20160329T131121-0700">strongly recommend that you shuffle your data.<?oxy_insert_end>
* </p>
* </li>
* <li>
* <p>
* <code>sgd.l1RegularizationAmount</code> - 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 <code>1.0E-08</code>.
* </p>
* <p>
* The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not use L1
* normalization. This parameter can't be used when <code>L2</code> is specified. Use this parameter sparingly.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.l2RegularizationAmount</code> - 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 <code>1.0E-08</code>.
* </p>
* <p>
* The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not use L2
* normalization. This parameter can't be used when <code>L1</code> is specified. Use this parameter sparingly.
* </p>
* </li>
* </ul>
*/
private com.amazonaws.internal.SdkInternalMap<String, String> parameters;
/**
* <p>
* The <code>DataSource</code> that points to the training data.
* </p>
*/
private String trainingDataSourceId;
/**
* <p>
* The data recipe for creating the <code>MLModel</code>. You must specify either the recipe or its URI. If you
* don't specify a recipe or its URI, Amazon ML creates a default.
* </p>
*/
private String recipe;
/**
* <p>
* The Amazon Simple Storage Service (Amazon S3) location and file name that contains the <code>MLModel</code>
* 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.
* </p>
*/
private String recipeUri;
/**
* <p>
* A user-supplied ID that uniquely identifies the <code>MLModel</code>.
* </p>
*
* @param mLModelId
* A user-supplied ID that uniquely identifies the <code>MLModel</code>.
*/
public void setMLModelId(String mLModelId) {
this.mLModelId = mLModelId;
}
/**
* <p>
* A user-supplied ID that uniquely identifies the <code>MLModel</code>.
* </p>
*
* @return A user-supplied ID that uniquely identifies the <code>MLModel</code>.
*/
public String getMLModelId() {
return this.mLModelId;
}
/**
* <p>
* A user-supplied ID that uniquely identifies the <code>MLModel</code>.
* </p>
*
* @param mLModelId
* A user-supplied ID that uniquely identifies the <code>MLModel</code>.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMLModelRequest withMLModelId(String mLModelId) {
setMLModelId(mLModelId);
return this;
}
/**
* <p>
* A user-supplied name or description of the <code>MLModel</code>.
* </p>
*
* @param mLModelName
* A user-supplied name or description of the <code>MLModel</code>.
*/
public void setMLModelName(String mLModelName) {
this.mLModelName = mLModelName;
}
/**
* <p>
* A user-supplied name or description of the <code>MLModel</code>.
* </p>
*
* @return A user-supplied name or description of the <code>MLModel</code>.
*/
public String getMLModelName() {
return this.mLModelName;
}
/**
* <p>
* A user-supplied name or description of the <code>MLModel</code>.
* </p>
*
* @param mLModelName
* A user-supplied name or description of the <code>MLModel</code>.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMLModelRequest withMLModelName(String mLModelName) {
setMLModelName(mLModelName);
return this;
}
/**
* <p>
* The category of supervised learning that this <code>MLModel</code> will address. Choose from the following types:
* </p>
* <ul>
* <li>Choose <code>REGRESSION</code> if the <code>MLModel</code> will be used to predict a numeric value.</li>
* <li>Choose <code>BINARY</code> if the <code>MLModel</code> result has two possible values.</li>
* <li>Choose <code>MULTICLASS</code> if the <code>MLModel</code> result has a limited number of values.</li>
* </ul>
* <p>
* For more information, see the <a href="http://docs.aws.amazon.com/machine-learning/latest/dg">Amazon Machine
* Learning Developer Guide</a>.
* </p>
*
* @param mLModelType
* The category of supervised learning that this <code>MLModel</code> will address. Choose from the following
* types:</p>
* <ul>
* <li>Choose <code>REGRESSION</code> if the <code>MLModel</code> will be used to predict a numeric value.</li>
* <li>Choose <code>BINARY</code> if the <code>MLModel</code> result has two possible values.</li>
* <li>Choose <code>MULTICLASS</code> if the <code>MLModel</code> result has a limited number of values.</li>
* </ul>
* <p>
* For more information, see the <a href="http://docs.aws.amazon.com/machine-learning/latest/dg">Amazon
* Machine Learning Developer Guide</a>.
* @see MLModelType
*/
public void setMLModelType(String mLModelType) {
this.mLModelType = mLModelType;
}
/**
* <p>
* The category of supervised learning that this <code>MLModel</code> will address. Choose from the following types:
* </p>
* <ul>
* <li>Choose <code>REGRESSION</code> if the <code>MLModel</code> will be used to predict a numeric value.</li>
* <li>Choose <code>BINARY</code> if the <code>MLModel</code> result has two possible values.</li>
* <li>Choose <code>MULTICLASS</code> if the <code>MLModel</code> result has a limited number of values.</li>
* </ul>
* <p>
* For more information, see the <a href="http://docs.aws.amazon.com/machine-learning/latest/dg">Amazon Machine
* Learning Developer Guide</a>.
* </p>
*
* @return The category of supervised learning that this <code>MLModel</code> will address. Choose from the
* following types:</p>
* <ul>
* <li>Choose <code>REGRESSION</code> if the <code>MLModel</code> will be used to predict a numeric value.</li>
* <li>Choose <code>BINARY</code> if the <code>MLModel</code> result has two possible values.</li>
* <li>Choose <code>MULTICLASS</code> if the <code>MLModel</code> result has a limited number of values.</li>
* </ul>
* <p>
* For more information, see the <a href="http://docs.aws.amazon.com/machine-learning/latest/dg">Amazon
* Machine Learning Developer Guide</a>.
* @see MLModelType
*/
public String getMLModelType() {
return this.mLModelType;
}
/**
* <p>
* The category of supervised learning that this <code>MLModel</code> will address. Choose from the following types:
* </p>
* <ul>
* <li>Choose <code>REGRESSION</code> if the <code>MLModel</code> will be used to predict a numeric value.</li>
* <li>Choose <code>BINARY</code> if the <code>MLModel</code> result has two possible values.</li>
* <li>Choose <code>MULTICLASS</code> if the <code>MLModel</code> result has a limited number of values.</li>
* </ul>
* <p>
* For more information, see the <a href="http://docs.aws.amazon.com/machine-learning/latest/dg">Amazon Machine
* Learning Developer Guide</a>.
* </p>
*
* @param mLModelType
* The category of supervised learning that this <code>MLModel</code> will address. Choose from the following
* types:</p>
* <ul>
* <li>Choose <code>REGRESSION</code> if the <code>MLModel</code> will be used to predict a numeric value.</li>
* <li>Choose <code>BINARY</code> if the <code>MLModel</code> result has two possible values.</li>
* <li>Choose <code>MULTICLASS</code> if the <code>MLModel</code> result has a limited number of values.</li>
* </ul>
* <p>
* For more information, see the <a href="http://docs.aws.amazon.com/machine-learning/latest/dg">Amazon
* Machine Learning Developer Guide</a>.
* @return Returns a reference to this object so that method calls can be chained together.
* @see MLModelType
*/
public CreateMLModelRequest withMLModelType(String mLModelType) {
setMLModelType(mLModelType);
return this;
}
/**
* <p>
* The category of supervised learning that this <code>MLModel</code> will address. Choose from the following types:
* </p>
* <ul>
* <li>Choose <code>REGRESSION</code> if the <code>MLModel</code> will be used to predict a numeric value.</li>
* <li>Choose <code>BINARY</code> if the <code>MLModel</code> result has two possible values.</li>
* <li>Choose <code>MULTICLASS</code> if the <code>MLModel</code> result has a limited number of values.</li>
* </ul>
* <p>
* For more information, see the <a href="http://docs.aws.amazon.com/machine-learning/latest/dg">Amazon Machine
* Learning Developer Guide</a>.
* </p>
*
* @param mLModelType
* The category of supervised learning that this <code>MLModel</code> will address. Choose from the following
* types:</p>
* <ul>
* <li>Choose <code>REGRESSION</code> if the <code>MLModel</code> will be used to predict a numeric value.</li>
* <li>Choose <code>BINARY</code> if the <code>MLModel</code> result has two possible values.</li>
* <li>Choose <code>MULTICLASS</code> if the <code>MLModel</code> result has a limited number of values.</li>
* </ul>
* <p>
* For more information, see the <a href="http://docs.aws.amazon.com/machine-learning/latest/dg">Amazon
* Machine Learning Developer Guide</a>.
* @see MLModelType
*/
public void setMLModelType(MLModelType mLModelType) {
this.mLModelType = mLModelType.toString();
}
/**
* <p>
* The category of supervised learning that this <code>MLModel</code> will address. Choose from the following types:
* </p>
* <ul>
* <li>Choose <code>REGRESSION</code> if the <code>MLModel</code> will be used to predict a numeric value.</li>
* <li>Choose <code>BINARY</code> if the <code>MLModel</code> result has two possible values.</li>
* <li>Choose <code>MULTICLASS</code> if the <code>MLModel</code> result has a limited number of values.</li>
* </ul>
* <p>
* For more information, see the <a href="http://docs.aws.amazon.com/machine-learning/latest/dg">Amazon Machine
* Learning Developer Guide</a>.
* </p>
*
* @param mLModelType
* The category of supervised learning that this <code>MLModel</code> will address. Choose from the following
* types:</p>
* <ul>
* <li>Choose <code>REGRESSION</code> if the <code>MLModel</code> will be used to predict a numeric value.</li>
* <li>Choose <code>BINARY</code> if the <code>MLModel</code> result has two possible values.</li>
* <li>Choose <code>MULTICLASS</code> if the <code>MLModel</code> result has a limited number of values.</li>
* </ul>
* <p>
* For more information, see the <a href="http://docs.aws.amazon.com/machine-learning/latest/dg">Amazon
* Machine Learning Developer Guide</a>.
* @return Returns a reference to this object so that method calls can be chained together.
* @see MLModelType
*/
public CreateMLModelRequest withMLModelType(MLModelType mLModelType) {
setMLModelType(mLModelType);
return this;
}
/**
* <p>
* A list of the training parameters in the <code>MLModel</code>. The list is implemented as a map of key-value
* pairs.
* </p>
* <p>
* The following is the current set of training parameters:
* </p>
* <ul>
* <li>
* <p>
* <code>sgd.maxMLModelSizeInBytes</code> - The maximum allowed size of the model. Depending on the input data, the
* size of the model might affect its performance.
* </p>
* <p>
* The value is an integer that ranges from <code>100000</code> to <code>2147483648</code>. The default value is
* <code>33554432</code>.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.maxPasses</code> - The number of times that the training process traverses the observations to build
* the <code>MLModel</code>. The value is an integer that ranges from <code>1</code> to <code>10000</code>. The
* default value is <code>10</code>.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.shuffleType</code> - 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 <code>auto</code>
* and <code>none</code>. The default value is <code>none</code>. We <?oxy_insert_start author="laurama"
* timestamp="20160329T131121-0700">strongly recommend that you shuffle your data.<?oxy_insert_end>
* </p>
* </li>
* <li>
* <p>
* <code>sgd.l1RegularizationAmount</code> - 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 <code>1.0E-08</code>.
* </p>
* <p>
* The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not use L1
* normalization. This parameter can't be used when <code>L2</code> is specified. Use this parameter sparingly.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.l2RegularizationAmount</code> - 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 <code>1.0E-08</code>.
* </p>
* <p>
* The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not use L2
* normalization. This parameter can't be used when <code>L1</code> is specified. Use this parameter sparingly.
* </p>
* </li>
* </ul>
*
* @return A list of the training parameters in the <code>MLModel</code>. The list is implemented as a map of
* key-value pairs.</p>
* <p>
* The following is the current set of training parameters:
* </p>
* <ul>
* <li>
* <p>
* <code>sgd.maxMLModelSizeInBytes</code> - The maximum allowed size of the model. Depending on the input
* data, the size of the model might affect its performance.
* </p>
* <p>
* The value is an integer that ranges from <code>100000</code> to <code>2147483648</code>. The default
* value is <code>33554432</code>.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.maxPasses</code> - The number of times that the training process traverses the observations to
* build the <code>MLModel</code>. The value is an integer that ranges from <code>1</code> to
* <code>10000</code>. The default value is <code>10</code>.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.shuffleType</code> - 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
* <code>auto</code> and <code>none</code>. The default value is <code>none</code>. We <?oxy_insert_start
* author="laurama" timestamp="20160329T131121-0700">strongly recommend that you shuffle your
* data.<?oxy_insert_end>
* </p>
* </li>
* <li>
* <p>
* <code>sgd.l1RegularizationAmount</code> - 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
* <code>1.0E-08</code>.
* </p>
* <p>
* The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not
* use L1 normalization. This parameter can't be used when <code>L2</code> is specified. Use this parameter
* sparingly.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.l2RegularizationAmount</code> - 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 <code>1.0E-08</code>.
* </p>
* <p>
* The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not
* use L2 normalization. This parameter can't be used when <code>L1</code> is specified. Use this parameter
* sparingly.
* </p>
* </li>
*/
public java.util.Map<String, String> getParameters() {
if (parameters == null) {
parameters = new com.amazonaws.internal.SdkInternalMap<String, String>();
}
return parameters;
}
/**
* <p>
* A list of the training parameters in the <code>MLModel</code>. The list is implemented as a map of key-value
* pairs.
* </p>
* <p>
* The following is the current set of training parameters:
* </p>
* <ul>
* <li>
* <p>
* <code>sgd.maxMLModelSizeInBytes</code> - The maximum allowed size of the model. Depending on the input data, the
* size of the model might affect its performance.
* </p>
* <p>
* The value is an integer that ranges from <code>100000</code> to <code>2147483648</code>. The default value is
* <code>33554432</code>.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.maxPasses</code> - The number of times that the training process traverses the observations to build
* the <code>MLModel</code>. The value is an integer that ranges from <code>1</code> to <code>10000</code>. The
* default value is <code>10</code>.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.shuffleType</code> - 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 <code>auto</code>
* and <code>none</code>. The default value is <code>none</code>. We <?oxy_insert_start author="laurama"
* timestamp="20160329T131121-0700">strongly recommend that you shuffle your data.<?oxy_insert_end>
* </p>
* </li>
* <li>
* <p>
* <code>sgd.l1RegularizationAmount</code> - 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 <code>1.0E-08</code>.
* </p>
* <p>
* The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not use L1
* normalization. This parameter can't be used when <code>L2</code> is specified. Use this parameter sparingly.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.l2RegularizationAmount</code> - 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 <code>1.0E-08</code>.
* </p>
* <p>
* The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not use L2
* normalization. This parameter can't be used when <code>L1</code> is specified. Use this parameter sparingly.
* </p>
* </li>
* </ul>
*
* @param parameters
* A list of the training parameters in the <code>MLModel</code>. The list is implemented as a map of
* key-value pairs.</p>
* <p>
* The following is the current set of training parameters:
* </p>
* <ul>
* <li>
* <p>
* <code>sgd.maxMLModelSizeInBytes</code> - The maximum allowed size of the model. Depending on the input
* data, the size of the model might affect its performance.
* </p>
* <p>
* The value is an integer that ranges from <code>100000</code> to <code>2147483648</code>. The default value
* is <code>33554432</code>.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.maxPasses</code> - The number of times that the training process traverses the observations to
* build the <code>MLModel</code>. The value is an integer that ranges from <code>1</code> to
* <code>10000</code>. The default value is <code>10</code>.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.shuffleType</code> - 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
* <code>auto</code> and <code>none</code>. The default value is <code>none</code>. We <?oxy_insert_start
* author="laurama" timestamp="20160329T131121-0700">strongly recommend that you shuffle your
* data.<?oxy_insert_end>
* </p>
* </li>
* <li>
* <p>
* <code>sgd.l1RegularizationAmount</code> - 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 <code>1.0E-08</code>.
* </p>
* <p>
* The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not
* use L1 normalization. This parameter can't be used when <code>L2</code> is specified. Use this parameter
* sparingly.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.l2RegularizationAmount</code> - 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 <code>1.0E-08</code>.
* </p>
* <p>
* The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not
* use L2 normalization. This parameter can't be used when <code>L1</code> is specified. Use this parameter
* sparingly.
* </p>
* </li>
*/
public void setParameters(java.util.Map<String, String> parameters) {
this.parameters = parameters == null ? null : new com.amazonaws.internal.SdkInternalMap<String, String>(parameters);
}
/**
* <p>
* A list of the training parameters in the <code>MLModel</code>. The list is implemented as a map of key-value
* pairs.
* </p>
* <p>
* The following is the current set of training parameters:
* </p>
* <ul>
* <li>
* <p>
* <code>sgd.maxMLModelSizeInBytes</code> - The maximum allowed size of the model. Depending on the input data, the
* size of the model might affect its performance.
* </p>
* <p>
* The value is an integer that ranges from <code>100000</code> to <code>2147483648</code>. The default value is
* <code>33554432</code>.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.maxPasses</code> - The number of times that the training process traverses the observations to build
* the <code>MLModel</code>. The value is an integer that ranges from <code>1</code> to <code>10000</code>. The
* default value is <code>10</code>.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.shuffleType</code> - 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 <code>auto</code>
* and <code>none</code>. The default value is <code>none</code>. We <?oxy_insert_start author="laurama"
* timestamp="20160329T131121-0700">strongly recommend that you shuffle your data.<?oxy_insert_end>
* </p>
* </li>
* <li>
* <p>
* <code>sgd.l1RegularizationAmount</code> - 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 <code>1.0E-08</code>.
* </p>
* <p>
* The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not use L1
* normalization. This parameter can't be used when <code>L2</code> is specified. Use this parameter sparingly.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.l2RegularizationAmount</code> - 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 <code>1.0E-08</code>.
* </p>
* <p>
* The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not use L2
* normalization. This parameter can't be used when <code>L1</code> is specified. Use this parameter sparingly.
* </p>
* </li>
* </ul>
*
* @param parameters
* A list of the training parameters in the <code>MLModel</code>. The list is implemented as a map of
* key-value pairs.</p>
* <p>
* The following is the current set of training parameters:
* </p>
* <ul>
* <li>
* <p>
* <code>sgd.maxMLModelSizeInBytes</code> - The maximum allowed size of the model. Depending on the input
* data, the size of the model might affect its performance.
* </p>
* <p>
* The value is an integer that ranges from <code>100000</code> to <code>2147483648</code>. The default value
* is <code>33554432</code>.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.maxPasses</code> - The number of times that the training process traverses the observations to
* build the <code>MLModel</code>. The value is an integer that ranges from <code>1</code> to
* <code>10000</code>. The default value is <code>10</code>.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.shuffleType</code> - 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
* <code>auto</code> and <code>none</code>. The default value is <code>none</code>. We <?oxy_insert_start
* author="laurama" timestamp="20160329T131121-0700">strongly recommend that you shuffle your
* data.<?oxy_insert_end>
* </p>
* </li>
* <li>
* <p>
* <code>sgd.l1RegularizationAmount</code> - 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 <code>1.0E-08</code>.
* </p>
* <p>
* The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not
* use L1 normalization. This parameter can't be used when <code>L2</code> is specified. Use this parameter
* sparingly.
* </p>
* </li>
* <li>
* <p>
* <code>sgd.l2RegularizationAmount</code> - 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 <code>1.0E-08</code>.
* </p>
* <p>
* The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not
* use L2 normalization. This parameter can't be used when <code>L1</code> is specified. Use this parameter
* sparingly.
* </p>
* </li>
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMLModelRequest withParameters(java.util.Map<String, String> parameters) {
setParameters(parameters);
return this;
}
public CreateMLModelRequest addParametersEntry(String key, String value) {
if (null == this.parameters) {
this.parameters = new com.amazonaws.internal.SdkInternalMap<String, String>();
}
if (this.parameters.containsKey(key))
throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided.");
this.parameters.put(key, value);
return this;
}
/**
* Removes all the entries added into Parameters.
*
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMLModelRequest clearParametersEntries() {
this.parameters = null;
return this;
}
/**
* <p>
* The <code>DataSource</code> that points to the training data.
* </p>
*
* @param trainingDataSourceId
* The <code>DataSource</code> that points to the training data.
*/
public void setTrainingDataSourceId(String trainingDataSourceId) {
this.trainingDataSourceId = trainingDataSourceId;
}
/**
* <p>
* The <code>DataSource</code> that points to the training data.
* </p>
*
* @return The <code>DataSource</code> that points to the training data.
*/
public String getTrainingDataSourceId() {
return this.trainingDataSourceId;
}
/**
* <p>
* The <code>DataSource</code> that points to the training data.
* </p>
*
* @param trainingDataSourceId
* The <code>DataSource</code> that points to the training data.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMLModelRequest withTrainingDataSourceId(String trainingDataSourceId) {
setTrainingDataSourceId(trainingDataSourceId);
return this;
}
/**
* <p>
* The data recipe for creating the <code>MLModel</code>. You must specify either the recipe or its URI. If you
* don't specify a recipe or its URI, Amazon ML creates a default.
* </p>
*
* @param recipe
* The data recipe for creating the <code>MLModel</code>. You must specify either the recipe or its URI. If
* you don't specify a recipe or its URI, Amazon ML creates a default.
*/
public void setRecipe(String recipe) {
this.recipe = recipe;
}
/**
* <p>
* The data recipe for creating the <code>MLModel</code>. You must specify either the recipe or its URI. If you
* don't specify a recipe or its URI, Amazon ML creates a default.
* </p>
*
* @return The data recipe for creating the <code>MLModel</code>. You must specify either the recipe or its URI. If
* you don't specify a recipe or its URI, Amazon ML creates a default.
*/
public String getRecipe() {
return this.recipe;
}
/**
* <p>
* The data recipe for creating the <code>MLModel</code>. You must specify either the recipe or its URI. If you
* don't specify a recipe or its URI, Amazon ML creates a default.
* </p>
*
* @param recipe
* The data recipe for creating the <code>MLModel</code>. You must specify either the recipe or its URI. If
* you don't specify a recipe or its URI, Amazon ML creates a default.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMLModelRequest withRecipe(String recipe) {
setRecipe(recipe);
return this;
}
/**
* <p>
* The Amazon Simple Storage Service (Amazon S3) location and file name that contains the <code>MLModel</code>
* 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.
* </p>
*
* @param recipeUri
* The Amazon Simple Storage Service (Amazon S3) location and file name that contains the
* <code>MLModel</code> 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.
*/
public void setRecipeUri(String recipeUri) {
this.recipeUri = recipeUri;
}
/**
* <p>
* The Amazon Simple Storage Service (Amazon S3) location and file name that contains the <code>MLModel</code>
* 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.
* </p>
*
* @return The Amazon Simple Storage Service (Amazon S3) location and file name that contains the
* <code>MLModel</code> 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.
*/
public String getRecipeUri() {
return this.recipeUri;
}
/**
* <p>
* The Amazon Simple Storage Service (Amazon S3) location and file name that contains the <code>MLModel</code>
* 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.
* </p>
*
* @param recipeUri
* The Amazon Simple Storage Service (Amazon S3) location and file name that contains the
* <code>MLModel</code> 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.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMLModelRequest withRecipeUri(String recipeUri) {
setRecipeUri(recipeUri);
return this;
}
/**
* Returns a string representation of this object; useful for testing and debugging.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getMLModelId() != null)
sb.append("MLModelId: ").append(getMLModelId()).append(",");
if (getMLModelName() != null)
sb.append("MLModelName: ").append(getMLModelName()).append(",");
if (getMLModelType() != null)
sb.append("MLModelType: ").append(getMLModelType()).append(",");
if (getParameters() != null)
sb.append("Parameters: ").append(getParameters()).append(",");
if (getTrainingDataSourceId() != null)
sb.append("TrainingDataSourceId: ").append(getTrainingDataSourceId()).append(",");
if (getRecipe() != null)
sb.append("Recipe: ").append(getRecipe()).append(",");
if (getRecipeUri() != null)
sb.append("RecipeUri: ").append(getRecipeUri());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof CreateMLModelRequest == false)
return false;
CreateMLModelRequest other = (CreateMLModelRequest) obj;
if (other.getMLModelId() == null ^ this.getMLModelId() == null)
return false;
if (other.getMLModelId() != null && other.getMLModelId().equals(this.getMLModelId()) == false)
return false;
if (other.getMLModelName() == null ^ this.getMLModelName() == null)
return false;
if (other.getMLModelName() != null && other.getMLModelName().equals(this.getMLModelName()) == false)
return false;
if (other.getMLModelType() == null ^ this.getMLModelType() == null)
return false;
if (other.getMLModelType() != null && other.getMLModelType().equals(this.getMLModelType()) == false)
return false;
if (other.getParameters() == null ^ this.getParameters() == null)
return false;
if (other.getParameters() != null && other.getParameters().equals(this.getParameters()) == false)
return false;
if (other.getTrainingDataSourceId() == null ^ this.getTrainingDataSourceId() == null)
return false;
if (other.getTrainingDataSourceId() != null && other.getTrainingDataSourceId().equals(this.getTrainingDataSourceId()) == false)
return false;
if (other.getRecipe() == null ^ this.getRecipe() == null)
return false;
if (other.getRecipe() != null && other.getRecipe().equals(this.getRecipe()) == false)
return false;
if (other.getRecipeUri() == null ^ this.getRecipeUri() == null)
return false;
if (other.getRecipeUri() != null && other.getRecipeUri().equals(this.getRecipeUri()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getMLModelId() == null) ? 0 : getMLModelId().hashCode());
hashCode = prime * hashCode + ((getMLModelName() == null) ? 0 : getMLModelName().hashCode());
hashCode = prime * hashCode + ((getMLModelType() == null) ? 0 : getMLModelType().hashCode());
hashCode = prime * hashCode + ((getParameters() == null) ? 0 : getParameters().hashCode());
hashCode = prime * hashCode + ((getTrainingDataSourceId() == null) ? 0 : getTrainingDataSourceId().hashCode());
hashCode = prime * hashCode + ((getRecipe() == null) ? 0 : getRecipe().hashCode());
hashCode = prime * hashCode + ((getRecipeUri() == null) ? 0 : getRecipeUri().hashCode());
return hashCode;
}
@Override
public CreateMLModelRequest clone() {
return (CreateMLModelRequest) super.clone();
}
}