amazonka-sagemaker-2.0: gen/Amazonka/SageMaker/Types/AutoMLJobObjective.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Amazonka.SageMaker.Types.AutoMLJobObjective
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.SageMaker.Types.AutoMLJobObjective where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.SageMaker.Types.AutoMLMetricEnum
-- | Specifies a metric to minimize or maximize as the objective of a job.
--
-- /See:/ 'newAutoMLJobObjective' smart constructor.
data AutoMLJobObjective = AutoMLJobObjective'
{ -- | The name of the objective metric used to measure the predictive quality
-- of a machine learning system. This metric is optimized during training
-- to provide the best estimate for model parameter values from data.
--
-- Here are the options:
--
-- [Accuracy]
-- The ratio of the number of correctly classified items to the total
-- number of (correctly and incorrectly) classified items. It is used
-- for both binary and multiclass classification. Accuracy measures how
-- close the predicted class values are to the actual values. Values
-- for accuracy metrics vary between zero (0) and one (1). A value of 1
-- indicates perfect accuracy, and 0 indicates perfect inaccuracy.
--
-- [AUC]
-- The area under the curve (AUC) metric is used to compare and
-- evaluate binary classification by algorithms that return
-- probabilities, such as logistic regression. To map the probabilities
-- into classifications, these are compared against a threshold value.
--
-- The relevant curve is the receiver operating characteristic curve
-- (ROC curve). The ROC curve plots the true positive rate (TPR) of
-- predictions (or recall) against the false positive rate (FPR) as a
-- function of the threshold value, above which a prediction is
-- considered positive. Increasing the threshold results in fewer false
-- positives, but more false negatives.
--
-- AUC is the area under this ROC curve. Therefore, AUC provides an
-- aggregated measure of the model performance across all possible
-- classification thresholds. AUC scores vary between 0 and 1. A score
-- of 1 indicates perfect accuracy, and a score of one half (0.5)
-- indicates that the prediction is not better than a random
-- classifier.
--
-- [BalancedAccuracy]
-- @BalancedAccuracy@ is a metric that measures the ratio of accurate
-- predictions to all predictions. This ratio is calculated after
-- normalizing true positives (TP) and true negatives (TN) by the total
-- number of positive (P) and negative (N) values. It is used in both
-- binary and multiclass classification and is defined as follows:
-- 0.5*((TP\/P)+(TN\/N)), with values ranging from 0 to 1.
-- @BalancedAccuracy@ gives a better measure of accuracy when the
-- number of positives or negatives differ greatly from each other in
-- an imbalanced dataset. For example, when only 1% of email is spam.
--
-- [F1]
-- The @F1@ score is the harmonic mean of the precision and recall,
-- defined as follows: F1 = 2 * (precision * recall) \/ (precision +
-- recall). It is used for binary classification into classes
-- traditionally referred to as positive and negative. Predictions are
-- said to be true when they match their actual (correct) class, and
-- false when they do not.
--
-- Precision is the ratio of the true positive predictions to all
-- positive predictions, and it includes the false positives in a
-- dataset. Precision measures the quality of the prediction when it
-- predicts the positive class.
--
-- Recall (or sensitivity) is the ratio of the true positive
-- predictions to all actual positive instances. Recall measures how
-- completely a model predicts the actual class members in a dataset.
--
-- F1 scores vary between 0 and 1. A score of 1 indicates the best
-- possible performance, and 0 indicates the worst.
--
-- [F1macro]
-- The @F1macro@ score applies F1 scoring to multiclass classification
-- problems. It does this by calculating the precision and recall, and
-- then taking their harmonic mean to calculate the F1 score for each
-- class. Lastly, the F1macro averages the individual scores to obtain
-- the @F1macro@ score. @F1macro@ scores vary between 0 and 1. A score
-- of 1 indicates the best possible performance, and 0 indicates the
-- worst.
--
-- [MAE]
-- The mean absolute error (MAE) is a measure of how different the
-- predicted and actual values are, when they\'re averaged over all
-- values. MAE is commonly used in regression analysis to understand
-- model prediction error. If there is linear regression, MAE
-- represents the average distance from a predicted line to the actual
-- value. MAE is defined as the sum of absolute errors divided by the
-- number of observations. Values range from 0 to infinity, with
-- smaller numbers indicating a better model fit to the data.
--
-- [MSE]
-- The mean squared error (MSE) is the average of the squared
-- differences between the predicted and actual values. It is used for
-- regression. MSE values are always positive. The better a model is at
-- predicting the actual values, the smaller the MSE value is
--
-- [Precision]
-- Precision measures how well an algorithm predicts the true positives
-- (TP) out of all of the positives that it identifies. It is defined
-- as follows: Precision = TP\/(TP+FP), with values ranging from zero
-- (0) to one (1), and is used in binary classification. Precision is
-- an important metric when the cost of a false positive is high. For
-- example, the cost of a false positive is very high if an airplane
-- safety system is falsely deemed safe to fly. A false positive (FP)
-- reflects a positive prediction that is actually negative in the
-- data.
--
-- [PrecisionMacro]
-- The precision macro computes precision for multiclass classification
-- problems. It does this by calculating precision for each class and
-- averaging scores to obtain precision for several classes.
-- @PrecisionMacro@ scores range from zero (0) to one (1). Higher
-- scores reflect the model\'s ability to predict true positives (TP)
-- out of all of the positives that it identifies, averaged across
-- multiple classes.
--
-- [R2]
-- R2, also known as the coefficient of determination, is used in
-- regression to quantify how much a model can explain the variance of
-- a dependent variable. Values range from one (1) to negative one
-- (-1). Higher numbers indicate a higher fraction of explained
-- variability. @R2@ values close to zero (0) indicate that very little
-- of the dependent variable can be explained by the model. Negative
-- values indicate a poor fit and that the model is outperformed by a
-- constant function. For linear regression, this is a horizontal line.
--
-- [Recall]
-- Recall measures how well an algorithm correctly predicts all of the
-- true positives (TP) in a dataset. A true positive is a positive
-- prediction that is also an actual positive value in the data. Recall
-- is defined as follows: Recall = TP\/(TP+FN), with values ranging
-- from 0 to 1. Higher scores reflect a better ability of the model to
-- predict true positives (TP) in the data, and is used in binary
-- classification.
--
-- Recall is important when testing for cancer because it\'s used to
-- find all of the true positives. A false positive (FP) reflects a
-- positive prediction that is actually negative in the data. It is
-- often insufficient to measure only recall, because predicting every
-- output as a true positive will yield a perfect recall score.
--
-- [RecallMacro]
-- The RecallMacro computes recall for multiclass classification
-- problems by calculating recall for each class and averaging scores
-- to obtain recall for several classes. RecallMacro scores range from
-- 0 to 1. Higher scores reflect the model\'s ability to predict true
-- positives (TP) in a dataset. Whereas, a true positive reflects a
-- positive prediction that is also an actual positive value in the
-- data. It is often insufficient to measure only recall, because
-- predicting every output as a true positive will yield a perfect
-- recall score.
--
-- [RMSE]
-- Root mean squared error (RMSE) measures the square root of the
-- squared difference between predicted and actual values, and it\'s
-- averaged over all values. It is used in regression analysis to
-- understand model prediction error. It\'s an important metric to
-- indicate the presence of large model errors and outliers. Values
-- range from zero (0) to infinity, with smaller numbers indicating a
-- better model fit to the data. RMSE is dependent on scale, and should
-- not be used to compare datasets of different sizes.
--
-- If you do not specify a metric explicitly, the default behavior is to
-- automatically use:
--
-- - @MSE@: for regression.
--
-- - @F1@: for binary classification
--
-- - @Accuracy@: for multiclass classification.
metricName :: AutoMLMetricEnum
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'AutoMLJobObjective' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'metricName', 'autoMLJobObjective_metricName' - The name of the objective metric used to measure the predictive quality
-- of a machine learning system. This metric is optimized during training
-- to provide the best estimate for model parameter values from data.
--
-- Here are the options:
--
-- [Accuracy]
-- The ratio of the number of correctly classified items to the total
-- number of (correctly and incorrectly) classified items. It is used
-- for both binary and multiclass classification. Accuracy measures how
-- close the predicted class values are to the actual values. Values
-- for accuracy metrics vary between zero (0) and one (1). A value of 1
-- indicates perfect accuracy, and 0 indicates perfect inaccuracy.
--
-- [AUC]
-- The area under the curve (AUC) metric is used to compare and
-- evaluate binary classification by algorithms that return
-- probabilities, such as logistic regression. To map the probabilities
-- into classifications, these are compared against a threshold value.
--
-- The relevant curve is the receiver operating characteristic curve
-- (ROC curve). The ROC curve plots the true positive rate (TPR) of
-- predictions (or recall) against the false positive rate (FPR) as a
-- function of the threshold value, above which a prediction is
-- considered positive. Increasing the threshold results in fewer false
-- positives, but more false negatives.
--
-- AUC is the area under this ROC curve. Therefore, AUC provides an
-- aggregated measure of the model performance across all possible
-- classification thresholds. AUC scores vary between 0 and 1. A score
-- of 1 indicates perfect accuracy, and a score of one half (0.5)
-- indicates that the prediction is not better than a random
-- classifier.
--
-- [BalancedAccuracy]
-- @BalancedAccuracy@ is a metric that measures the ratio of accurate
-- predictions to all predictions. This ratio is calculated after
-- normalizing true positives (TP) and true negatives (TN) by the total
-- number of positive (P) and negative (N) values. It is used in both
-- binary and multiclass classification and is defined as follows:
-- 0.5*((TP\/P)+(TN\/N)), with values ranging from 0 to 1.
-- @BalancedAccuracy@ gives a better measure of accuracy when the
-- number of positives or negatives differ greatly from each other in
-- an imbalanced dataset. For example, when only 1% of email is spam.
--
-- [F1]
-- The @F1@ score is the harmonic mean of the precision and recall,
-- defined as follows: F1 = 2 * (precision * recall) \/ (precision +
-- recall). It is used for binary classification into classes
-- traditionally referred to as positive and negative. Predictions are
-- said to be true when they match their actual (correct) class, and
-- false when they do not.
--
-- Precision is the ratio of the true positive predictions to all
-- positive predictions, and it includes the false positives in a
-- dataset. Precision measures the quality of the prediction when it
-- predicts the positive class.
--
-- Recall (or sensitivity) is the ratio of the true positive
-- predictions to all actual positive instances. Recall measures how
-- completely a model predicts the actual class members in a dataset.
--
-- F1 scores vary between 0 and 1. A score of 1 indicates the best
-- possible performance, and 0 indicates the worst.
--
-- [F1macro]
-- The @F1macro@ score applies F1 scoring to multiclass classification
-- problems. It does this by calculating the precision and recall, and
-- then taking their harmonic mean to calculate the F1 score for each
-- class. Lastly, the F1macro averages the individual scores to obtain
-- the @F1macro@ score. @F1macro@ scores vary between 0 and 1. A score
-- of 1 indicates the best possible performance, and 0 indicates the
-- worst.
--
-- [MAE]
-- The mean absolute error (MAE) is a measure of how different the
-- predicted and actual values are, when they\'re averaged over all
-- values. MAE is commonly used in regression analysis to understand
-- model prediction error. If there is linear regression, MAE
-- represents the average distance from a predicted line to the actual
-- value. MAE is defined as the sum of absolute errors divided by the
-- number of observations. Values range from 0 to infinity, with
-- smaller numbers indicating a better model fit to the data.
--
-- [MSE]
-- The mean squared error (MSE) is the average of the squared
-- differences between the predicted and actual values. It is used for
-- regression. MSE values are always positive. The better a model is at
-- predicting the actual values, the smaller the MSE value is
--
-- [Precision]
-- Precision measures how well an algorithm predicts the true positives
-- (TP) out of all of the positives that it identifies. It is defined
-- as follows: Precision = TP\/(TP+FP), with values ranging from zero
-- (0) to one (1), and is used in binary classification. Precision is
-- an important metric when the cost of a false positive is high. For
-- example, the cost of a false positive is very high if an airplane
-- safety system is falsely deemed safe to fly. A false positive (FP)
-- reflects a positive prediction that is actually negative in the
-- data.
--
-- [PrecisionMacro]
-- The precision macro computes precision for multiclass classification
-- problems. It does this by calculating precision for each class and
-- averaging scores to obtain precision for several classes.
-- @PrecisionMacro@ scores range from zero (0) to one (1). Higher
-- scores reflect the model\'s ability to predict true positives (TP)
-- out of all of the positives that it identifies, averaged across
-- multiple classes.
--
-- [R2]
-- R2, also known as the coefficient of determination, is used in
-- regression to quantify how much a model can explain the variance of
-- a dependent variable. Values range from one (1) to negative one
-- (-1). Higher numbers indicate a higher fraction of explained
-- variability. @R2@ values close to zero (0) indicate that very little
-- of the dependent variable can be explained by the model. Negative
-- values indicate a poor fit and that the model is outperformed by a
-- constant function. For linear regression, this is a horizontal line.
--
-- [Recall]
-- Recall measures how well an algorithm correctly predicts all of the
-- true positives (TP) in a dataset. A true positive is a positive
-- prediction that is also an actual positive value in the data. Recall
-- is defined as follows: Recall = TP\/(TP+FN), with values ranging
-- from 0 to 1. Higher scores reflect a better ability of the model to
-- predict true positives (TP) in the data, and is used in binary
-- classification.
--
-- Recall is important when testing for cancer because it\'s used to
-- find all of the true positives. A false positive (FP) reflects a
-- positive prediction that is actually negative in the data. It is
-- often insufficient to measure only recall, because predicting every
-- output as a true positive will yield a perfect recall score.
--
-- [RecallMacro]
-- The RecallMacro computes recall for multiclass classification
-- problems by calculating recall for each class and averaging scores
-- to obtain recall for several classes. RecallMacro scores range from
-- 0 to 1. Higher scores reflect the model\'s ability to predict true
-- positives (TP) in a dataset. Whereas, a true positive reflects a
-- positive prediction that is also an actual positive value in the
-- data. It is often insufficient to measure only recall, because
-- predicting every output as a true positive will yield a perfect
-- recall score.
--
-- [RMSE]
-- Root mean squared error (RMSE) measures the square root of the
-- squared difference between predicted and actual values, and it\'s
-- averaged over all values. It is used in regression analysis to
-- understand model prediction error. It\'s an important metric to
-- indicate the presence of large model errors and outliers. Values
-- range from zero (0) to infinity, with smaller numbers indicating a
-- better model fit to the data. RMSE is dependent on scale, and should
-- not be used to compare datasets of different sizes.
--
-- If you do not specify a metric explicitly, the default behavior is to
-- automatically use:
--
-- - @MSE@: for regression.
--
-- - @F1@: for binary classification
--
-- - @Accuracy@: for multiclass classification.
newAutoMLJobObjective ::
-- | 'metricName'
AutoMLMetricEnum ->
AutoMLJobObjective
newAutoMLJobObjective pMetricName_ =
AutoMLJobObjective' {metricName = pMetricName_}
-- | The name of the objective metric used to measure the predictive quality
-- of a machine learning system. This metric is optimized during training
-- to provide the best estimate for model parameter values from data.
--
-- Here are the options:
--
-- [Accuracy]
-- The ratio of the number of correctly classified items to the total
-- number of (correctly and incorrectly) classified items. It is used
-- for both binary and multiclass classification. Accuracy measures how
-- close the predicted class values are to the actual values. Values
-- for accuracy metrics vary between zero (0) and one (1). A value of 1
-- indicates perfect accuracy, and 0 indicates perfect inaccuracy.
--
-- [AUC]
-- The area under the curve (AUC) metric is used to compare and
-- evaluate binary classification by algorithms that return
-- probabilities, such as logistic regression. To map the probabilities
-- into classifications, these are compared against a threshold value.
--
-- The relevant curve is the receiver operating characteristic curve
-- (ROC curve). The ROC curve plots the true positive rate (TPR) of
-- predictions (or recall) against the false positive rate (FPR) as a
-- function of the threshold value, above which a prediction is
-- considered positive. Increasing the threshold results in fewer false
-- positives, but more false negatives.
--
-- AUC is the area under this ROC curve. Therefore, AUC provides an
-- aggregated measure of the model performance across all possible
-- classification thresholds. AUC scores vary between 0 and 1. A score
-- of 1 indicates perfect accuracy, and a score of one half (0.5)
-- indicates that the prediction is not better than a random
-- classifier.
--
-- [BalancedAccuracy]
-- @BalancedAccuracy@ is a metric that measures the ratio of accurate
-- predictions to all predictions. This ratio is calculated after
-- normalizing true positives (TP) and true negatives (TN) by the total
-- number of positive (P) and negative (N) values. It is used in both
-- binary and multiclass classification and is defined as follows:
-- 0.5*((TP\/P)+(TN\/N)), with values ranging from 0 to 1.
-- @BalancedAccuracy@ gives a better measure of accuracy when the
-- number of positives or negatives differ greatly from each other in
-- an imbalanced dataset. For example, when only 1% of email is spam.
--
-- [F1]
-- The @F1@ score is the harmonic mean of the precision and recall,
-- defined as follows: F1 = 2 * (precision * recall) \/ (precision +
-- recall). It is used for binary classification into classes
-- traditionally referred to as positive and negative. Predictions are
-- said to be true when they match their actual (correct) class, and
-- false when they do not.
--
-- Precision is the ratio of the true positive predictions to all
-- positive predictions, and it includes the false positives in a
-- dataset. Precision measures the quality of the prediction when it
-- predicts the positive class.
--
-- Recall (or sensitivity) is the ratio of the true positive
-- predictions to all actual positive instances. Recall measures how
-- completely a model predicts the actual class members in a dataset.
--
-- F1 scores vary between 0 and 1. A score of 1 indicates the best
-- possible performance, and 0 indicates the worst.
--
-- [F1macro]
-- The @F1macro@ score applies F1 scoring to multiclass classification
-- problems. It does this by calculating the precision and recall, and
-- then taking their harmonic mean to calculate the F1 score for each
-- class. Lastly, the F1macro averages the individual scores to obtain
-- the @F1macro@ score. @F1macro@ scores vary between 0 and 1. A score
-- of 1 indicates the best possible performance, and 0 indicates the
-- worst.
--
-- [MAE]
-- The mean absolute error (MAE) is a measure of how different the
-- predicted and actual values are, when they\'re averaged over all
-- values. MAE is commonly used in regression analysis to understand
-- model prediction error. If there is linear regression, MAE
-- represents the average distance from a predicted line to the actual
-- value. MAE is defined as the sum of absolute errors divided by the
-- number of observations. Values range from 0 to infinity, with
-- smaller numbers indicating a better model fit to the data.
--
-- [MSE]
-- The mean squared error (MSE) is the average of the squared
-- differences between the predicted and actual values. It is used for
-- regression. MSE values are always positive. The better a model is at
-- predicting the actual values, the smaller the MSE value is
--
-- [Precision]
-- Precision measures how well an algorithm predicts the true positives
-- (TP) out of all of the positives that it identifies. It is defined
-- as follows: Precision = TP\/(TP+FP), with values ranging from zero
-- (0) to one (1), and is used in binary classification. Precision is
-- an important metric when the cost of a false positive is high. For
-- example, the cost of a false positive is very high if an airplane
-- safety system is falsely deemed safe to fly. A false positive (FP)
-- reflects a positive prediction that is actually negative in the
-- data.
--
-- [PrecisionMacro]
-- The precision macro computes precision for multiclass classification
-- problems. It does this by calculating precision for each class and
-- averaging scores to obtain precision for several classes.
-- @PrecisionMacro@ scores range from zero (0) to one (1). Higher
-- scores reflect the model\'s ability to predict true positives (TP)
-- out of all of the positives that it identifies, averaged across
-- multiple classes.
--
-- [R2]
-- R2, also known as the coefficient of determination, is used in
-- regression to quantify how much a model can explain the variance of
-- a dependent variable. Values range from one (1) to negative one
-- (-1). Higher numbers indicate a higher fraction of explained
-- variability. @R2@ values close to zero (0) indicate that very little
-- of the dependent variable can be explained by the model. Negative
-- values indicate a poor fit and that the model is outperformed by a
-- constant function. For linear regression, this is a horizontal line.
--
-- [Recall]
-- Recall measures how well an algorithm correctly predicts all of the
-- true positives (TP) in a dataset. A true positive is a positive
-- prediction that is also an actual positive value in the data. Recall
-- is defined as follows: Recall = TP\/(TP+FN), with values ranging
-- from 0 to 1. Higher scores reflect a better ability of the model to
-- predict true positives (TP) in the data, and is used in binary
-- classification.
--
-- Recall is important when testing for cancer because it\'s used to
-- find all of the true positives. A false positive (FP) reflects a
-- positive prediction that is actually negative in the data. It is
-- often insufficient to measure only recall, because predicting every
-- output as a true positive will yield a perfect recall score.
--
-- [RecallMacro]
-- The RecallMacro computes recall for multiclass classification
-- problems by calculating recall for each class and averaging scores
-- to obtain recall for several classes. RecallMacro scores range from
-- 0 to 1. Higher scores reflect the model\'s ability to predict true
-- positives (TP) in a dataset. Whereas, a true positive reflects a
-- positive prediction that is also an actual positive value in the
-- data. It is often insufficient to measure only recall, because
-- predicting every output as a true positive will yield a perfect
-- recall score.
--
-- [RMSE]
-- Root mean squared error (RMSE) measures the square root of the
-- squared difference between predicted and actual values, and it\'s
-- averaged over all values. It is used in regression analysis to
-- understand model prediction error. It\'s an important metric to
-- indicate the presence of large model errors and outliers. Values
-- range from zero (0) to infinity, with smaller numbers indicating a
-- better model fit to the data. RMSE is dependent on scale, and should
-- not be used to compare datasets of different sizes.
--
-- If you do not specify a metric explicitly, the default behavior is to
-- automatically use:
--
-- - @MSE@: for regression.
--
-- - @F1@: for binary classification
--
-- - @Accuracy@: for multiclass classification.
autoMLJobObjective_metricName :: Lens.Lens' AutoMLJobObjective AutoMLMetricEnum
autoMLJobObjective_metricName = Lens.lens (\AutoMLJobObjective' {metricName} -> metricName) (\s@AutoMLJobObjective' {} a -> s {metricName = a} :: AutoMLJobObjective)
instance Data.FromJSON AutoMLJobObjective where
parseJSON =
Data.withObject
"AutoMLJobObjective"
( \x ->
AutoMLJobObjective'
Prelude.<$> (x Data..: "MetricName")
)
instance Prelude.Hashable AutoMLJobObjective where
hashWithSalt _salt AutoMLJobObjective' {..} =
_salt `Prelude.hashWithSalt` metricName
instance Prelude.NFData AutoMLJobObjective where
rnf AutoMLJobObjective' {..} = Prelude.rnf metricName
instance Data.ToJSON AutoMLJobObjective where
toJSON AutoMLJobObjective' {..} =
Data.object
( Prelude.catMaybes
[Prelude.Just ("MetricName" Data..= metricName)]
)