

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 高级训练配置
<a name="adv-training-configs"></a>

## 采样率配置
<a name="sample-rate-configuration"></a>

**采样率**定义了记录传感器读数的频率（例如，每秒一次或每分钟一次）。此设置直接影响训练数据的**粒度**，并影响模型捕捉传感器行为的短期变化的能力。

访问[高频数据采样以及训练和推理之间的一致性](ano-best-practices.md#apply-sampling-high-frequency-data)以了解最佳实践。

### 配置目标采样率
<a name="configuring-target-sampling-rate"></a>

您可以选择在训练配置`TargetSamplingRate`中指定，以控制数据的采样频率。支持的值为：

```
PT1S | PT5S | PT10S | PT15S | PT30S | PT1M | PT5M | PT10M | PT15M | PT30M | PT1H
```

这些是 ISO 8601 持续时间格式，表示以下时间格式：
+ `PT1S`= 1 秒
+ `PT1M`= 1 分钟
+ `PT1H`= 1 小时

选择在**数据分辨**率和**训练效率之间取得适当平衡的采样率**。可用的费率如下：
+ **较高的采样率** (`PT1S`) 可提供更精细的细节，但可能会增加数据量和训练时间。
+ **较低的采样率** (`PT10M`,`PT1H`) 会减少数据大小和成本，但可能会错过短暂的异常。

### 处理时间戳错位
<a name="handling-timestamp-misalignment"></a>

AWS IoT SiteWise 在训练期间自动补偿多个数据**流的时间戳不对齐**。即使输入信号在时间上没有完全对齐，这也可确保模型行为的一致性。

访问[高频数据采样以及训练和推理之间的一致性](ano-best-practices.md#apply-sampling-high-frequency-data)以了解最佳实践。

### 启用采样
<a name="enable-sampling"></a>

将以下代码添加到`anomaly-detection-training-payload.json`。

通过添加`TargetSamplingRate`训练动作有效载荷和数据的采样率来配置采样。允许的值为:`PT1S | PT5S | PT10S | PT15S | PT30S | PT1M | PT5M | PT10M | PT15M | PT30M | PT1H`。

```
{
    "exportDataStartTime": StartTime,
    "exportDataEndTime": EndTime,
    "targetSamplingRate": "TargetSamplingRate"
}
```

**Example 采样率配置：**  

```
{
    "exportDataStartTime": 1717225200,
    "exportDataEndTime": 1722789360,
    "targetSamplingRate": "PT1M"
}
```

## 为数据添加标签
<a name="ano-labeling-data"></a>

为数据添加标签时，必须定义表示设备异常行为的时间间隔。此标签信息以`CSV`文件形式提供，其中每行都指定了设备无法正常运行的时间范围。

每行包含两个时间戳：
+ **开始时间**，表示认为异常行为何时开始。
+ **结束时间**，表示首次观察到故障或问题的时间。

此 CSV 文件存储在 Amazon S3 存储桶中，在模型训练期间用于帮助系统从已知的异常行为示例中学习。以下示例显示标签数据应如何显示为`.csv`文件。该文件没有标题。

**Example 在 CSV 文件中：**  

```
2024-06-21T00:00:00.000000,2024-06-21T12:00:00.000000
2024-07-11T00:00:00.000000,2024-07-11T12:00:00.000000
2024-07-31T00:00:00.000000,2024-07-31T12:00:00.000000
```

**第 1 行**表示 **2024 年 6 月 21 日的**维护事件，有 **12 小时的时间段**（从`2024-06-21T00:00:00.000000Z`到`2024-06-21T12:00:00.000000Z`） AWS IoT SiteWise 来查找异常行为。

**第 2 行**表示 **2024 年 7 月 11 日的**维护事件，有 **12 小时的时间段**（从`2024-07-11T00:00:00.000000Z`到`2024-07-11T12:00:00.000000Z`） AWS IoT SiteWise 来查找异常行为。

**第 3 行**表示 **2024 年 7 月 31 日的**维护事件，有 **12 小时的时间段**（从`2024-07-31T00:00:00.000000Z`到`2024-07-31T12:00:00.000000Z`） AWS IoT SiteWise 来查找异常行为。

AWS IoT SiteWise 使用所有这些时间窗口来训练和评估可以识别围绕这些事件的异常行为的模型。请注意，并非所有事件都是可检测到的，而且结果在很大程度上取决于基础数据的质量和特征。

有关采样最佳做法的详细信息，请参阅[最佳实践](ano-best-practices.md)。

### 数据标签步骤
<a name="label-data-steps"></a>
+ 根据标签[数据](anomaly-prerequisites.md#label-data)先决条件中的标签先决条件配置您的 Amazon S3 存储桶。
+ 将文件上传到您的标签存储桶。
+ 将以下内容添加到`anomaly-detection-training-payload.json`。
  + 在文件`labelInputConfiguration`部分中提供位置。`labels-bucket`替换为存储桶名称、`files-prefix`文件路径或前缀的任何部分。该位置的所有文件都会被解析，并且（成功后）用作标签文件。

```
{
    "exportDataStartTime": StartTime,
    "exportDataEndTime": EndTime,
    "labelInputConfiguration": 
      {
       "bucketName": "label-bucket",
       "prefix": "files-prefix"
      }
}
```

**Example 标签配置：**  

```
{
    "exportDataStartTime": 1717225200,
    "exportDataEndTime": 1722789360,
    "labelInputConfiguration": {
      "bucketName": "anomaly-detection-customer-data-278129555252-iad",
      "prefix": "Labels/model=b2d8ab3e-73af-48d8-9b8f-a290bef931b4/asset[d3347728-4796-4c5c-afdb-ea2f551ffe7a]/Lables.csv"
    }
}
```

## 评估模型
<a name="evaluating-model"></a>

 AWS IoT SiteWise 训练模型的 Pointwise 模型诊断是对单个事件中模型性能的评估。在训练期间，为输入数据集中的每一行 AWS IoT SiteWise 生成异常分数和传感器贡献诊断。异常分数越高表示发生异常事件的可能性越高。

当您使用 [ExecuteAction](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ExecuteAction.html)API 和`AWS/ANOMALY_DETECTION_TRAINING`操作类型训练模型时，可以使用逐点诊断。

要配置模型评估，
+ 根据标签[数据](anomaly-prerequisites.md#label-data)先决条件中的标签先决条件配置您的 Amazon S3 存储桶。
+ 将以下内容添加到`anomaly-detection-training-payload.json`。
  + 在用于评估模型性能的窗口中为数据提供`evaluationStartTime`和`evaluationEndTime`（均以纪元秒为单位）。
  + 提供 Amazon S3 存储桶位置 (`resultDestination`) 以便写入评估诊断。

**注意**  
模型评估间隔 (`dataStartTime`t `dataEndtime` o) 必须与训练间隔重叠或相邻。不允许出现任何间隙。

```
{
  "exportDataStartTime": StartTime,
  "exportDataEndTime": EndTime,
  "modelEvaluationConfiguration": {
    "dataStartTime": evaluationStartTime,
    "dataEndTime": evaluationEndTime
    "resultDestination": {
      "bucketName": "s3BucketName",
      "prefix": "bucketPrefix"
    }
  }
}
```

**Example 模型评估配置：**  

```
{
  "exportDataStartTime": 1717225200,
  "exportDataEndTime": 1722789360,
  "modelEvaluationConfiguration": {
    "dataStartTime": 1722789360,
    "dataEndTime": 1725174000,
    "resultDestination": {
      "bucketName": "anomaly-detection-customer-data-278129555252-iad",
      "prefix": "Evaluation/asset[d3347728-4796-4c5c-afdb-ea2f551ffe7a]/1747681026-evaluation_results.jsonl"
    }
  }
}
```

## 生成模型指标
<a name="generating-model-metrics"></a>

模型指标可全面了解经过训练的异常检测模型的性能和质量。训练过程会自动生成这些指标并将其发布到您指定的 Amazon S3 存储桶，从而便于在再训练工作流程中进行分析、模型比较和晋升决策。

### 了解模型指标
<a name="understanding-model-metrics"></a>

训练过程会自动生成模型指标并提供有关以下内容的详细信息：
+ **模型性能**：有标签数据时精度、召回率和 AUC 等定量衡量标准
+ **数据质量**：有关所用训练数据和所涵盖时间段的信息
+ **事件检测**：有关已识别异常和已标记事件的统计信息
+ **模型比较**：再训练期间不同模型版本之间的比较指标

### 配置模型指标目标
<a name="configuring-model-metrics-destination"></a>

要启用模型指标生成，请配置发布指标的 Amazon S3 目标。

1. 按照配置您的 Amazon S3 存储桶[模型评估先决条件](anomaly-prerequisites.md#prerequisites-model-evaluation)。

1. 将以下内容添加到您的训练操作负载中，以指定模型指标的存储位置：

   ```
   {
       "trainingMode": "TRAIN_MODEL",
       "exportDataStartTime": StartTime,
       "exportDataEndTime": EndTime,
       "modelMetricsDestination": {
           "bucketName": "bucket-name",
           "prefix": "prefix"
       }
   }
   ```  
**Example 模型指标配置示例**  

   ```
   {
       "exportDataStartTime": 1717225200,
       "exportDataEndTime": 1722789360,
       "modelMetricsDestination": {
           "bucketName": "anomaly-detection-metrics-bucket-123456789012-iad",
           "prefix": "ModelMetrics/computation-model-id/asset-id/training-metrics.json"
       }
   }
   ```

### 配置模型指标以进行再训练
<a name="configuring-model-metrics-retraining"></a>

设置再训练计划时，需要模型指标目标才能实现全面的模型性能跟踪和比较：

```
{
    "trainingMode": "START_RETRAINING_SCHEDULER",
    "modelMetricsDestination": {
        "bucketName": "bucket-name",
        "prefix": "prefix"
    },
    "retrainingConfiguration": {
        "lookbackWindow": "P180D",
        "promotion": "SERVICE_MANAGED",
        "retrainingFrequency": "P30D",
        "retrainingStartDate": "StartDate"
    }
}
```参数

`bucketName`  
用于存储模型指标的 Amazon S3 存储桶

`prefix`  
Amazon S3 prefix/path 用于组织模型指标文件

### 模型指标结构
<a name="model-metrics-structure"></a>

模型指标以 JSON 文件形式存储在您的 Amazon S3 存储桶中，结构如下：

```
{
    "labeled_ranges": [],
    "labeled_event_metrics": {
        "num_labeled": 0,
        "num_identified": 0,
        "total_warning_time_in_seconds": 0
    },
    "predicted_ranges": [],
    "unknown_event_metrics": {
        "num_identified": 0,
        "total_duration_in_seconds": 0
    },
    "data_start_time": "2023-11-01",
    "data_end_time": "2023-12-31",
    "labels_present": false,
    "model_version_metrics": {
        "precision": 1.0,
        "recall": 1.0,
        "mean_fractional_lead_time": 0.7760964912280702,
        "auc": 0.5971207364893062
    }
}
```关键指标

`labeled_ranges`  
训练期间提供标记异常的时间范围

`labeled_event_metrics`  
有关模型识别已知标记事件效果的统计数据

`num_labeled`  
训练数据中已标记事件的总数

`num_identified`  
模型正确识别的已标记事件的数量

`total_warning_time_in_seconds`  
模型在标记事件的警告状态下所花费的总时间

`predicted_ranges`  
模型在评估期间预测异常的时间范围

`unknown_event_metrics`  
有关在未标记的数据中检测到的异常的统计信息

`data_start_time / data_end_time`  
训练数据覆盖的时间窗口

`labels_present`  
布尔值，表示训练期间是否使用了带标签的数据

`model_version_metrics`  
用于模型比较的其他版本特定指标

### 已标记模型的高级指标
<a name="advanced-metrics-labeled-models"></a>

当您在训练期间提供带标签的数据时，Amazon S3 文件中还会包含其他性能指标：
+ **回忆**：在同一时段内 AWS IoT SiteWise 正确识别的事件与您标记的事件的比例。例如，您可能已标记了 10 个事件，但 AWS IoT SiteWise 只识别了其中 9 个。在这种情况下，召回率为90％。
+ **精度**：真阳性占已识别事件总数的比例。例如，如果 AWS IoT SiteWise 标识了 10 个事件，但其中只有 7 个事件对应于您标记的事件，则精度为 70%。
+ **MeanFractionalLeadTime**：衡量 AWS IoT SiteWise 检测每个事件的平均速度（相对于事件的长度）。例如，您所在设施的典型活动可能持续 10 个小时。平均而言，模型可能需要 3 小时才能识别事件。在本例中，平均分数提前期为 0.7。
+ **AUC**：曲线下的面积 (AUC) 衡量机器学习模型预测正面示例与负面示例相比得分更高的能力。介于 0 和 1 之间的值，表示您的模型能够很好地区分数据集中的类别。值为 1 表示它能够完美地分离类别。

### 模型促销和指标
<a name="model-promotion-metrics"></a>

在再训练工作流程中，Amazon S3 中存储的指标有助于做出明智的模型升级决策：

#### 托管模式（自动推广）
<a name="managed-mode-promotion"></a>
+ 系统使用 Amazon S3 存储的数据自动比较新旧模型版本之间的指标
+ 根据改进的绩效指标对模型进行推广
+ 促销决策包括存储在指标旁边的特定原因代码：
  + `AUTO_PROMOTION_SUCCESSFUL`: 新模型指标优于当前版本
  + `MODEL_METRICS_DIDNT_IMPROVE`: 新车型的性能没有改善
  + `POOR_MODEL_QUALITY_DETECTED`: 新车型的质量评估不佳

#### 手动模式（由客户控制的促销）
<a name="manual-mode-promotion"></a>
+ 您可以从 Amazon S3 下载和分析详细指标，以做出晋升决策
+ 所有历史模型版本及其指标仍可在 Amazon S3 中访问
+ 您可以使用 Amazon S3 存储的指标来构建自定义控制面板和分析工具