

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 線性學習程式演算法
<a name="linear-learner"></a>

*線性模型*為監督式學習演算法，用於解決分類或迴歸問題。針對輸入，您提供模型標示範例 (*x*、*y*)。*x* 是一種高維度向量，而 *y* 是一種數字標籤。針對二元分類問題，標籤必須為 0 或 1。針對多類別分類問題，標籤必須從 0 到 `num_classes` - 1。針對迴歸問題，*y* 為實數。演算法會學習線性函式，或者針對分類問題為線性閾值函式，將向量 *x* 映射到標籤 *y* 的近似值。

Amazon SageMaker AI 線性學習程式演算法提供針對分類和迴歸問題的解決方案。使用 SageMaker AI 演算法，您可同步探索不同的訓練目標，然後從驗證組中選出最佳的解決方案。您也可以探索大量模型，選擇最佳方案。最佳模式會最佳化下列兩項的其中之一：
+ 持續目標，例如均方根誤差、跨熵遺失、絕對錯誤。
+ 適合分類的分散式目標，例如 F1 測量、精確度、重新調用或準確度。

相較於僅針對持續目標提供解決方案的方法，SageMaker AI 線性學習程式演算法運用簡單的超參數最佳化技術大幅提升速度。而且也更方便。

線性學習程式演算法需要資料矩陣，其中包含代表觀察的列以及功能維度的欄。它還需要額外的欄位，包含符合資料點的標籤。Amazon SageMaker AI 線性學習程式至少會要求您指定輸入和輸出資料位置和目標類型 (分類或迴歸) 做為引數。也需要功能維度。如需詳細資訊，請參閱[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)。您可以在請求本文的 `HyperParameters` 字串映射中指定額外的參數。這些參數會控制最佳化程序，或您訓練的目標函式規格。例如，epoch、標準化與遺失類型的數量。

如果您使用[受管 Spot 訓練](https://docs.aws.amazon.com/sagemaker/latest/dg/model-managed-spot-training.html)，該線性學習程式演算法可支援使用[檢查點來建立模型狀態快照](https://docs.aws.amazon.com/sagemaker/latest/dg/model-checkpoints.html)。

**Topics**
+ [線性學習程式演算法的輸入/輸出介面](#ll-input_output)
+ [線性學習程式演算法的 EC2 執行個體建議](#ll-instances)
+ [線性學習程式範例筆記本](#ll-sample-notebooks)
+ [線性學習程式的運作方式](ll_how-it-works.md)
+ [線性學習程式超參數](ll_hyperparameters.md)
+ [調校線性學習程式模型](linear-learner-tuning.md)
+ [線性學習程式回應格式](LL-in-formats.md)

## 線性學習程式演算法的輸入/輸出介面
<a name="ll-input_output"></a>

Amazon SageMaker AI 線性學習程式演算法可支援三種資料通道：訓練、驗證 (選用) 與測試 (選用)。如果您提供驗證資料，`S3DataDistributionType` 應為 `FullyReplicated`。演算法會記錄每個 epoch 的驗證遺失，並使用驗證資料範例校正與選取最佳模型。如果您不提供驗證資料，則演算法會使用訓練資料範例校正與選取模型。如果您提供測試資料，則演算法日誌會包含最終模型的測試分數。

**針對訓練**，線性學習程式演算法支援 `recordIO-wrapped protobuf` 和 `CSV` 格式。針對 `application/x-recordio-protobuf` 輸入類型，僅支援 Float32 張量。針對 `text/csv` 輸入類型，第一個欄位假設為標籤，這是預測的目標變數。您可以使用檔案模式或管道模式訓練 `recordIO-wrapped-protobuf` 或 `CSV` 格式資料的線性學習程式模型。

**針對推論**，線性學習程式演算法支援 `application/json`、`application/x-recordio-protobuf` 和 `text/csv` 格式。當您對新資料進行預測時，格式取決於類型的模型。**針對迴歸** (`predictor_type='regressor'`)，`score` 是模型產生的預測。**針對分類** (`predictor_type='binary_classifier'` 或 `predictor_type='multiclass_classifier'`)，模型會傳回 `score`，也會傳回 `predicted_label`。`predicted_label` 是模型預測的類別，而且 `score` 會測量該預測的強度。
+ **針對二進位分類**，`predicted_label` 是 `0` 或 `1`，而 `score` 是單一浮點數，表示演算法認為標籤應為 1 的程度有多強烈。
+ **針對多類別分類**，`predicted_class` 將是從 `0` 到 `num_classes-1` 的整數,，而且 `score` 將是每個類別一個浮點數的清單。

若要解譯分類問題中的 `score`，您必須考慮所使用的損失函式。如果 `loss` 超參數值是 `logistic` (若為二元分類) 或 `softmax_loss` (若為多類別分類)，則 `score` 可以解譯為對應類別的機率。當 `loss` 值是 `auto` 預設值時，這些是線性學習程式所使用的損失值。但是，如果損失設為 `hinge_loss`，則分數無法解譯為機率。原因是鉸鏈損失會對應到支援向量分類器，但其不會產生機率預估值。

如需輸入和輸出檔案格式的詳細資訊，請參閱[線性學習程式回應格式](LL-in-formats.md)。如需推論格式的詳細資訊，請參閱[線性學習程式範例筆記本](#ll-sample-notebooks)。

## 線性學習程式演算法的 EC2 執行個體建議
<a name="ll-instances"></a>

線性學習程式演算法可支援 CPU 和 GPU 執行個體，進行訓練和推論。針對 GPU，線性學習程式演算法可支援 P2、P3、G4dn 和 G5 GPU 系列。

在測試期間，找不到重大證據能證明多 GPU 的執行個體比單 GPU 的執行個體快。結果會隨您的特定使用案例而異。

## 線性學習程式範例筆記本
<a name="ll-sample-notebooks"></a>

 下表概述了解決 Amazon SageMaker AI 線性程式演算法不同使用案例的各種範例筆記本。


| **筆記本標題** | **Description** | 
| --- | --- | 
|  [MNIST 資料集簡介](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/linear_learner_mnist/linear_learner_mnist.html)  |   我們會使用 MNIST 資料集，訓練二元分類器來預測單一數字。  | 
|  [如何建置一個多類別分類器？](https://sagemaker-examples.readthedocs.io/en/latest/scientific_details_of_algorithms/linear_learner_multiclass_classification/linear_learner_multiclass_classification.html)  |   我們會使用 UCI 的 Covertype 資料集，示範如何訓練多類別分類器。  | 
|  [如何建置推論的機器學習 (ML) 管道？](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-python-sdk/scikit_learn_inference_pipeline/Inference%20Pipeline%20with%20Scikit-learn%20and%20Linear%20Learner.html)  |   我們會使用 Scikit 學習容器，示範如何建置端對端機器學習 (ML) 管道。  | 

 有關如何建立和存取可用於在 SageMaker AI 中執行範例的 Jupyter 筆記本執行個體的說明，請參閱[Amazon SageMaker 筆記本執行個體](nbi.md)。建立並開啟筆記本執行個體後，請選擇 **SageMaker AI 範例**索引標籤，查看所有 SageMaker AI 範例清單。使用線性學習演算法模組化範例筆記本的主題位於 **Amazon 演算法簡介**一節。若要開啟筆記本，請選擇其**使用**標籤，然後選擇**建立複本**。

# 線性學習程式的運作方式
<a name="ll_how-it-works"></a>

實作線性學習程式演算法涉及三個步驟：預先處理、訓練和驗證。

## 步驟 1：預先處理
<a name="step1-preprocessing"></a>

標準化 (或特徵擴展) 是某些遺失函式的重要預先處理步驟，此步驟可確保正在資料集上訓練的模型不會受到單一特徵的權重影響。Amazon SageMaker AI 線性學習程式演算法具有標準化選項，可協助此預先處理步驟。如果開啟標準化，此演算法會先瀏覽資料的小部分範本，以了解每個特徵和標籤的平均值和標準偏差。然後，完整資料集中的每個特徵都會移至平均值為零，並經調整以符合單位標準偏差。

**注意**  
為獲得最佳結果，請確保在訓練前將您的資料隨機排列。使用未隨機排列的資料進行訓練可能會導致訓練失敗。

您可以設定線性學習程式演算法是否分別使用 `normalize_data` 和 `normalize_label` 超參數，來將特徵資料和標籤標準化。預設會同時針對迴歸的特徵和標籤啟用標準化。只可將二元分類的特徵標準化，這是預設行為。

## 步驟 2：訓練
<a name="step2-training"></a>

使用線性學習程式演算法，您可以利用隨機梯度下降 (SGD) 的分散式實作開展訓練。您可以選擇最佳化演算法藉以控制最佳化程序。例如，您可以選擇使用 Adam、AdaGrad、隨機梯度下降法，或其他最佳化演算法。您也可以指定它們的超參數，例如動能、學習速率和學習速率排程。如果您不確定該使用哪些演算法或超參數值，請選擇適用於大部分資料集的預設值。

在訓練期間，您會同時最佳化多個模型，每個的目標都略有不同。例如，改變 L1 或 L2 正規化，甄別不同的最佳化工具設定。

## 步驟 3：驗證與設定閾值
<a name="step3-validation"></a>

平行訓練多個模型時，系統會根據驗證集來評估這些模型，以便在訓練完成時立即選取最佳化的模型。對於迴歸，最佳化的模型是在驗證集上達到最佳損失的模型。對於分類，驗證集的範本會用於校正分類閾值。選取的最佳化模型是在驗證集上達到最佳二元分類選取項目條件的模型。這類標準的範例包括 F1 測量、準確度和跨熵遺失。

**注意**  
如果未將驗證集提供給演算法，則無法評估並選取最佳化的模型。若要利用平行訓練和模型選取項目，請確保將驗證集提供給演算法。

# 線性學習程式超參數
<a name="ll_hyperparameters"></a>

下表包含線性學習程式演算法的超參數。這些是由使用者設定的參數，用來協助從資料預估模型參數。首先列出的是必須設定的超參數，依字母順序排列。接著列出的是選用的超參數，也是依字母順序排列。當超參數設定為 `auto` 時，Amazon SageMaker AI 會自動計算並設定該超參數的值。


| 參數名稱 | Description | 
| --- | --- | 
| num\$1classes |  回應變數的類別數。演算法假設類別標示為 `0`、...、`num_classes - 1`。 當 `predictor_type` 為 `multiclass_classifier` 時，則為**必要**。否則，演算法會忽略它。 有效值：3 到 1,000,000 的整數  | 
| predictor\$1type |  將目標變數類型指定為二元分類、多類別分類，或迴歸。 **必要** 有效值：`binary_classifier`、`multiclass_classifier` 或 `regressor`  | 
| accuracy\$1top\$1k |  運算多類別分類的 top-k 準確性指標時，值為 *k*。如果模型將其中一個 top-k 分數指派給真正的標籤，範例會評分為正確。 **選用** 有效值：正整數 預設值：3   | 
| balance\$1multiclass\$1weights |  指定是否使用類別加權，讓每個類別在遺失函式中都有相同的重要性。僅在 `predictor_type` 為 `multiclass_classifier` 時使用。 **選用** 有效值：`true`、`false` 預設值：`false`  | 
| beta\$11 |  第一時間預估的指數衰減率。僅在 `optimizer` 值為 `adam` 時才適用。 **選用** 有效值：`auto` 或介於 0 和 1.0 之間的浮點值 預設值：`auto`  | 
| beta\$12 |  第二時間預估的指數衰減率。僅在 `optimizer` 值為 `adam` 時才適用。 **選用** 有效值：`auto` 或介於 0 和 1.0 之間的浮點整數  預設值：`auto`  | 
| bias\$1lr\$1mult |  允許偏差項有不同學習率。偏差的實際學習率為 `learning_rate` \$1 `bias_lr_mult`。 **選用** 有效值：`auto` 或浮點正整數 預設值：`auto`  | 
| bias\$1wd\$1mult |  允許偏差項有不同的正規化。偏差的實際 L2 正規化權重為 `wd` \$1 `bias_wd_mult`。根據預設，偏差項上沒有正規化。 **選用** 有效值：`auto` 或浮點非負整數 預設值：`auto`  | 
| binary\$1classifier\$1model\$1selection\$1criteria |  當 `predictor_type` 設為 `binary_classifier` 時，驗證資料集的模型評估條件 (或如不提供驗證資料集，則為訓練資料集)。條件包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/ll_hyperparameters.html) **選用** 有效值：`accuracy`、`f_beta`、`precision_at_target_recall`、`recall_at_target_precision` 或 `loss_function` 預設值：`accuracy`  | 
| early\$1stopping\$1patience | 若未在相關指標中進行改善，結束訓練前要等待的 epoch 數量。如已針對 binary\$1classifier\$1model\$1selection\$1criteria 提供值，指標即為該值。否則，指標會與針對 loss 超參數所指定的值相同。在驗證資料上評估的指標。如果尚未提供驗證資料，則指標一律與針對 `loss` 超參數所指定的值相同，並針對訓練資料進行評估。若要停用提早停止，請將 `early_stopping_patience` 值設為大於針對 `epochs` 所指定的值。**選用**有效值：正整數預設值：3 | 
| early\$1stopping\$1tolerance |  測量遺失中改善的相對容錯度。如遺失中的改善率除以過去最佳遺失率的結果小於此值，提早停止會將改善率視為 0。 **選用** 有效值：浮點正整數 預設值：0.001  | 
| epochs |  針對訓練資料的最高傳遞次數。 **選用** 有效值：正整數 預設值：15  | 
| f\$1beta |  計算二元或多類別分類的 F 分數指標時要使用的 beta 值。如果針對 `binary_classifier_model_selection_criteria` 指定的值為 `f_beta`，也使用它。 **選用** 有效值：浮點正整數 預設值：1.0   | 
| feature\$1dim |  輸入資料中的特徵數量。 **選用** 有效值：`auto` 或正整數 預設值：`auto`  | 
| huber\$1delta |  Huber 遺失的參數。在訓練與指標評估期間，運算小於 delta 的 L2 遺失的錯誤值，並運算大於 delta 的 L1 遺失錯誤值。 **選用** 有效值：浮點正整數 預設值：1.0   | 
| init\$1bias |  偏差項的初始權重。 **選用** 有效值：浮點整數 預設值：0  | 
| init\$1method |  設定用於模型權重的初始分發函式。函式包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/ll_hyperparameters.html) **選用** 有效值：`uniform` 或 `normal` 預設值：`uniform`  | 
| init\$1scale |  調整模型權重的初始均勻分布。僅在 `init_method` 超參數設為 `uniform` 時套用。 **選用** 有效值：浮點正整數 預設值：0.07  | 
| init\$1sigma |  常態分布的初始標準偏差。僅在 `init_method` 超參數設為 `normal` 時套用。 **選用** 有效值：浮點正整數 預設值：0.01  | 
| l1 |  L1 正規化參數。如不希望使用 L1 正規化，請將此值設為 0。​ **選用** 有效值：`auto` 或非負浮點數 預設值：`auto`  | 
| learning\$1rate |  參數更新最佳化工具使用的步驟大小。 **選用** 有效值：`auto` 或浮點正整數 預設值：`auto`，其值取決於所選擇的最佳化工具。  | 
| loss |  指定遺失函式。 可用的損失函式及其預設值取決於 `predictor_type` 的值： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/ll_hyperparameters.html) 有效值：`auto`、`logistic`、`squared_loss`、`absolute_loss`、`hinge_loss`、`eps_insensitive_squared_loss`、`eps_insensitive_absolute_loss`、`quantile_loss` 或 `huber_loss`  **選用** 預設值：`auto`  | 
| loss\$1insensitivity |  小量低敏感度遺失類型的參數。在訓練和指標評估期間，任何小於此值的錯誤皆視為零。 **選用** 有效值：浮點正整數 預設值：0.01   | 
| lr\$1scheduler\$1factor |  針對每個 `lr_scheduler_step` 超參數，學習率會依此數量下降。僅在 `use_lr_scheduler` 超參數設為 `true` 時套用。 **選用** 有效值：`auto` 或介於 0 和 1 之間的浮點正整數 預設值：`auto`  | 
| lr\$1scheduler\$1minimum\$1lr |  學習率永遠不會下降至低於針對 `lr_scheduler_minimum_lr` 所設定的值。僅在 `use_lr_scheduler` 超參數設為 `true` 時套用。 **選用** 有效值：`auto` 或浮點正整數 預設值：`auto`  | 
| lr\$1scheduler\$1step |  學習率下降級數之間的步驟數量。僅在 `use_lr_scheduler` 超參數設為 `true` 時套用。 **選用** 有效值：`auto` 或正整數 預設值：`auto`  | 
| margin |  `hinge_loss` 函式的邊際。 **選用** 有效值：浮點正整數 預設值：1.0  | 
| mini\$1batch\$1size |  資料反覆運算器每個微型批次的觀察項數量。 **選用** 有效值：正整數 預設值：1000  | 
| momentum |  `sgd` 最佳化工具的動能。 **選用** 有效值：`auto` 或介於 0 和 1.0 之間的浮點整數 預設值：`auto`  | 
| normalize\$1data |  在訓練前標準化特徵資料。資料標準化會將每個特徵的資料移至平均值為零，再加以調整以符合單位標準偏差。 **選用** 有效值：`auto`、`true` 或 `false` 預設值：`true`  | 
| normalize\$1label |  標準化標籤。標籤標準化會將標籤移至平均值為零，再加以調整以符合單位標準偏差。 `auto` 預設值會將迴歸問題的標籤標準化，但不適用於分類問題。如果您針對分類問題將 `normalize_label` 超參數設為 `true`，則演算法會忽略它。 **選用** 有效值：`auto`、`true` 或 `false` 預設值：`auto`  | 
| num\$1calibration\$1samples |  用於模型校正之驗證資料集的觀察數量 (尋找最佳閾值時)。 **選用** 有效值：`auto` 或正整數 預設值：`auto`  | 
| num\$1models |  平行訓練的模型數量。針對預設值 `auto`，演算法會決定要訓練的平行模型數量。根據指定訓練參數 (正規化、最佳化工具、遺失) 來訓練一個模型，而其他模型則使用封閉式參數訓練。 **選用** 有效值：`auto` 或正整數 預設值：`auto`  | 
| num\$1point\$1for\$1scaler |  用於計算標準化或取消項目偏差的資料點數量。 **選用** 有效值：正整數 預設值：10,000  | 
| optimizer |  要使用的最佳化演算法。 **選用** 有效值： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/ll_hyperparameters.html) 預設值：`auto`。`auto` 的預設設定為 `adam`。  | 
| positive\$1example\$1weight\$1mult |  訓練二元分類工具時指派給正面範例的權重。負面範例的權重固定為 1。如果希望演算法選擇權重，讓分類負面 *vs.* 正面範例的錯誤對於訓練遺失產生同等影響，請指定 `balanced`。如果希望演算法選擇最佳化效能的權重，請指定 `auto`。 **選用** 有效值：`balanced`、`auto` 或浮點正整數 預設值：1.0  | 
| quantile |  分位數遺失的分位數。針對分位數 q，模型會嘗試產生預測，讓 `true_label` 的值大於使用機率 q 的預測。 **選用** 有效值：介於 0 和 1 之間的浮點整數 預設值：0.5  | 
| target\$1precision |  目標精確度。如果 `binary_classifier_model_selection_criteria` 是 `recall_at_target_precision`，則精確度會保留在這個值，同時最大化取回。 **選用** 有效值：介於 0 和 1.0 之間的浮點整數 預設值：0.8  | 
| target\$1recall |  目標取回。如果 `binary_classifier_model_selection_criteria` 是 `precision_at_target_recall`，則取回會保留在這個值，同時最大化精確度。 **選用** 有效值：介於 0 和 1.0 之間的浮點整數 預設值：0.8  | 
| unbias\$1data |  在訓練前取消功能的偏差，讓平均值為 0。根據預設，當 `use_bias` 超參數設為 `true` 時，則取消資料偏差。 **選用** 有效值：`auto`、`true` 或 `false` 預設值：`auto`  | 
| unbias\$1label |  在訓練前取消標籤的偏差，讓平均值為 0。僅在 `use_bias` 超參數設為 `true` 時套用至迴歸。 **選用** 有效值：`auto`、`true` 或 `false` 預設值：`auto`  | 
| use\$1bias |  指定模型是否應該包含偏差項，這是線性方程式中的攔截項。 **選用** 有效值：`true` 或 `false` 預設值：`true`  | 
| use\$1lr\$1scheduler |  學習率是否使用排程工具。如果您想要使用排程工具，請指定 `true`。 **選用** 有效值：`true` 或 `false` 預設值：`true`  | 
| wd |  權重衰減參數，也稱為 L2 正規化參數。如不希望使用 L2 正規化，請將此值設為 0。​ **選用** 有效值：`auto` 或浮點非負整數 預設值：`auto`  | 

# 調校線性學習程式模型
<a name="linear-learner-tuning"></a>

*自動模型調校*，又稱為超參數調校，會透過在您的資料集上，執行許多測試超參數範圍的任務，來尋找最佳版本的模型。您可以選擇可調校的超參數、每一個超參數的值範圍，及目標指標。您可以從演算法運算的指標中選擇目標指標。自動模型調校會搜尋所選擇的超參數，以找出產生之模型可最佳化目標指標的值組合。

線性學習程式演算法也有內部機制可調校超參數，與此處描述的自動模型調校功能有所區隔。根據預設，線性學習程式演算法會透過平行訓練多個模型來調校超參數。當您使用自動模型調校時，線性學習程式的內部調校機制會自動關閉。這會將平行模型的數量 `num_models` 設為 1。演算法會忽略您針對 `num_models` 設定的任何值。

如需模型調校的詳細資訊，請參閱[使用 SageMaker AI 執行自動模型調校](automatic-model-tuning.md)。

## 依線性學習程式演算法運算的指標
<a name="linear-learner-metrics"></a>

線性學習程式演算法回報下表中的指標，它們是在訓練期間計算的。選擇其中一個做為目標指標。為了避免過度擬合，建議您針對驗證指標調校模型，不是針對訓練指標。


| 指標名稱 | Description | 最佳化方向 | 
| --- | --- | --- | 
| test:absolute\$1loss |  測試資料集之最終模型的絕對損失。此目標指標僅對迴歸有效。  |  最小化  | 
| test:binary\$1classification\$1accuracy |  測試資料集之最終模型的準確性。此目標指標僅對二元分類有效。  |  最大化  | 
| test:binary\$1f\$1beta |  測試資料集之最終模型的 F-beta 分數。根據預設是 F1 分數，這是精確度和回呼的調和平均數。此目標指標僅對二元分類有效。  |  最大化  | 
| test:dcg |  測試資料集之最終模型的折扣累積增益。此目標指標僅對多類別分類有效。  |  最大化  | 
| test:macro\$1f\$1beta |  測試資料集之最終模型的 F-beta 分數。此目標指標僅對多類別分類有效。  |  最大化  | 
| test:macro\$1precision |  測試資料集之最終模型的精確度分數。此目標指標僅對多類別分類有效。  |  最大化  | 
| test:macro\$1recall |  測試資料集之最終模型的回呼分數。此目標指標僅對多類別分類有效。  |  最大化  | 
| test:mse |  測試資料集之最終模型的均方誤差。此目標指標僅對迴歸有效。  |  最小化  | 
| test:multiclass\$1accuracy |  測試資料集之最終模型的準確性。此目標指標僅對多類別分類有效。  |  最大化  | 
| test:multiclass\$1top\$1k\$1accuracy |  測試資料集之預測的前 k 個標籤之間的準確性。如果您選擇此指標做為目標，建議您使用 `accuracy_top_k` 超參數設定 k 的值。此目標指標僅對多類別分類有效。  |  最大化  | 
| test:objective\$1loss |  模型訓練後之測試資料集的目標遺失函式平均值。根據預設，遺失是二元分類的邏輯遺失和迴歸的平方遺失。若要將遺失設定成其他類型，請使用 `loss` 超參數。  |  最小化  | 
| test:precision |  測試資料集之最終模型的精確度。如果您選擇此指標做為目標，建議您將 `binary_classifier_model_selection` 超參數設成 `precision_at_target_recall`，並設定 `target_recall` 超參數的值，以設定目標回呼。此目標指標僅對二元分類有效。  |  最大化  | 
| test:recall |  測試資料集之最終模型的回呼。如果您選擇此指標做為目標，建議您將 `binary_classifier_model_selection` 超參數設為 `recall_at_target_precision`，並設定 `target_precision` 超參數的值，以設定目標精確度。此目標指標僅對二元分類有效。  |  最大化  | 
| test:roc\$1auc\$1score |  測試資料集之最終模型接收操作特徵曲線 (ROC 曲線) 以下的區域。此目標指標僅對二元分類有效。  |  最大化  | 
| validation:absolute\$1loss |  驗證資料集之最終模型的絕對損失。此目標指標僅對迴歸有效。  |  最小化  | 
| validation:binary\$1classification\$1accuracy |  驗證資料集之最終模型的準確性。此目標指標僅對二元分類有效。  |  最大化  | 
| validation:binary\$1f\$1beta |  驗證資料集之最終模型的 F-beta 分數。根據預設，F-beta 分數是 F1 分數，這是 `validation:precision` 和 `validation:recall` 指標的調和平均數。此目標指標僅對二元分類有效。  |  最大化  | 
| validation:dcg |  驗證資料集之最終模型的折扣累積增益。此目標指標僅對多類別分類有效。  |  最大化  | 
| validation:macro\$1f\$1beta |  驗證資料集之最終模型的 F-beta 分數。此目標指標僅對多類別分類有效。  |  最大化  | 
| validation:macro\$1precision |  驗證資料集之最終模型的精準度分數。此目標指標僅對多類別分類有效。  |  最大化  | 
| validation:macro\$1recall |  驗證資料集之最終模型的回呼分數。此目標指標僅對多類別分類有效。  |  最大化  | 
| validation:mse |  驗證資料集之最終模型的均方誤差。此目標指標僅對迴歸有效。  |  最小化  | 
| validation:multiclass\$1accuracy |  驗證資料集之最終模型的準確性。此目標指標僅對多類別分類有效。  |  最大化  | 
| validation:multiclass\$1top\$1k\$1accuracy |  驗證資料集之預測的前 k 個標籤之間的準確性。如果您選擇此指標做為目標，建議您使用 `accuracy_top_k` 超參數設定 k 的值。此目標指標僅對多類別分類有效。  |  最大化  | 
| validation:objective\$1loss |  驗證資料集每個 epoch 上目標遺失函式的平均值。根據預設，遺失是二元分類的邏輯遺失和迴歸的平方遺失。若要將遺失設定成其他類型，請使用 `loss` 超參數。  |  最小化  | 
| validation:precision |  驗證資料集之最終模型的精準度。如果您選擇此指標做為目標，建議您將 `binary_classifier_model_selection` 超參數設成 `precision_at_target_recall`，並設定 `target_recall` 超參數的值，以設定目標回呼。此目標指標僅對二元分類有效。  |  最大化  | 
| validation:recall |  驗證資料集之最終模型的回呼。如果您選擇此指標做為目標，建議您將 `binary_classifier_model_selection` 超參數設為 `recall_at_target_precision`，並設定 `target_precision` 超參數的值，以設定目標精確度。此目標指標僅對二元分類有效。  |  最大化  | 
| validation:rmse |  驗證資料集之最終模型的均方根誤差。此目標指標僅對迴歸有效。  |  最小化  | 
| validation:roc\$1auc\$1score |  驗證資料集之最終模型接收操作特徵曲線 (ROC 曲線) 以下的區域。此目標指標僅對二元分類有效。  |  最大化  | 

## 調校線性學習程式超參數
<a name="linear-learner-tunable-hyperparameters"></a>

您可以使用以下超參數調校線性學習程式模型。


| 參數名稱 | 參數類型 | 建議範圍 | 
| --- | --- | --- | 
| wd |  `ContinuousParameterRanges`  |  `MinValue: ``1e-7`, `MaxValue`: `1`  | 
| l1 |  `ContinuousParameterRanges`  |  `MinValue`: `1e-7`, `MaxValue`: `1`  | 
| learning\$1rate |  `ContinuousParameterRanges`  |  `MinValue`: `1e-5`, `MaxValue`: `1`  | 
| mini\$1batch\$1size |  `IntegerParameterRanges`  |  `MinValue`: `100`, `MaxValue`: `5000`  | 
| use\$1bias |  `CategoricalParameterRanges`  |  `[True, False]`  | 
| positive\$1example\$1weight\$1mult |  `ContinuousParameterRanges`  |  `MinValue`：1e-5、`MaxValue`：`1e5`  | 

# 線性學習程式回應格式
<a name="LL-in-formats"></a>

## JSON 回應格式
<a name="LL-json"></a>

所有 Amazon SageMaker AI 內建的演算法，皆採用[常見的資料格式 - 推論](https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html)中所述之常見輸入推論格式。以下是 SageMaker AI 線性學習程式演算法的可用輸出格式。

**二元分類**

```
let response =   {
    "predictions":    [
        {
            "score": 0.4,
            "predicted_label": 0
        } 
    ]
}
```

**多類別分類**

```
let response =   {
    "predictions":    [
        {
            "score": [0.1, 0.2, 0.4, 0.3],
            "predicted_label": 2
        } 
    ]
}
```

**迴歸**

```
let response =   {
    "predictions":    [
        {
            "score": 0.4
        } 
    ]
}
```

## JSONLINES 回應格式
<a name="LL-jsonlines"></a>

**二元分類**

```
{"score": 0.4, "predicted_label": 0}
```

**多類別分類**

```
{"score": [0.1, 0.2, 0.4, 0.3], "predicted_label": 2}
```

**迴歸**

```
{"score": 0.4}
```

## RECORDIO 回應格式
<a name="LL-recordio"></a>

**二元分類**

```
[
    Record = {
        features = {},
        label = {
            'score': {
                keys: [],
                values: [0.4]  # float32
            },
            'predicted_label': {
                keys: [],
                values: [0.0]  # float32
            }
        }
    }
]
```

**多類別分類**

```
[
    Record = {
    "features": [],
    "label":    {
            "score":  {
                    "values":   [0.1, 0.2, 0.3, 0.4]   
            },
            "predicted_label":  {
                    "values":   [3]
            }
       },
    "uid":  "abc123",
    "metadata": "{created_at: '2017-06-03'}"
   }
]
```

**迴歸**

```
[
    Record = {
        features = {},
        label = {
            'score': {
                keys: [],
                values: [0.4]  # float32
            }   
        }
    }
]
```