

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

# 了解 Amazon Quick Sight 使用的机器学习算法
<a name="concept-of-ml-algorithms"></a>


|  | 
| --- |
|  您不需要任何机器学习方面的技术经验即可使用 Amazon Quick Sight 中基于机器学习的功能。本节深入讨论该算法的技术细节，适用于那些希望详细了解该算法的工作原理的人员。不需要阅读该信息即可使用这些功能。  | 

Amazon Quick Sight 使用随机砍伐森林 (RCF) 算法的内置版本。以下各节解释了这意味着什么，以及如何在 Amazon Quick Sight 中使用它。

首先，让我们看一下涉及的一些术语：
+ 异常 – 由于与同一样本中的大多数其他内容不同而被划分出来的某些内容。也称为异常值、例外、偏差等。
+ 数据点 – 数据集中的一个独立单元，或者简而言之，一行。不过，如果在不同维度上使用度量，则一个行可能具有多个数据点。
+ 决策树 – 是一种可视化算法决策过程的方法，用于评估数据中的模式。
+ 预测 – 根据当前和过去的行为预测将来的行为。
+ 模型 – 算法的数学表示形式或算法学习的内容。
+ 季节性 – 在时间序列数据中循环发生的重复行为模式。
+ 时间序列 – 一个字段或列中的日期或时间数据的有序集合。

**Topics**
+ [异常检测与预测之间有何区别？](difference-between-anomaly-detection-and-forecasting.md)
+ [什么是 RCF？](what-is-random-cut-forest.md)
+ [RCF 如何应用于检测异常](how-does-rcf-detect-anomalies.md)
+ [RCF 如何应用于生成预测](how-does-rcf-generate-forecasts.md)
+ [机器学习和 RCF 参考](learn-more-about-machine-learning-and-rcf.md)

# 异常检测与预测之间有何区别？
<a name="difference-between-anomaly-detection-and-forecasting"></a>

异常检测确定异常值及其贡献驱动因素，用于回答“发生了什么不常发生的情况？” 预测回答问题“如果一切继续按预期发生，将来会发生什么情况？” 允许预测的数学还使我们能够询问“如果一些事情发生了变化，则会发生什么情况？” 

异常检测和预测都是从检查当前已知数据点开始的。Amazon Quick Sight 异常检测从已知数据开始，因此它可以确定已知集之外的内容，并将这些数据点识别为异常（异常值）。Amazon Quick Sight预测不包括异常数据点，并坚持已知模式。预测关注数据分布的既定模式。而异常检测关注偏离预期的数据点。每种方法从不同的方向接近决策制定。

# 什么是 RCF？
<a name="what-is-random-cut-forest"></a>

*随机砍伐森林* (RCF) 是一种特殊类型的*随机森林* (RF) 算法，是一种在机器学习中广泛使用且获得成功的技术。它需要使用一组随机数据点，将它们砍伐为相同数量的点，然后构建一组模型。相比之下，模型对应于决策树，因此被命名为森林。由于 RFs 无法轻易地以增量方式更新， RCFs 因此在树结构中发明了旨在允许增量更新的变量。

作为非监督型算法，RCF 使用聚类分析检测时间序列数据中的峰值、周期性或季节性中断以及数据点异常。随机砍伐森林可用作动态数据流（或时间索引的数值序列）的概要或概述。有关流的问题答案来自于该概要。以下特性描述了流以及我们如何与异常检测和预测建立关联：
+ *流式处理算法* 是一种占用内存较少的在线算法。在线算法在看到第 **(t\$11)** 个点之前就按时间 **t** 索引的输入点做出决策。小内存允许以低延迟生成答案的敏捷算法并允许用户与数据交互。
+ 在异常检测和预测中需要尊重*在线* 算法中按时间进行的排序。如果我们已经知道后天会发生什么，那么预测明天会发生什么就不是预测，而只是插入一个未知的缺失值。同样，今天引入的新产品可能是异常，但不一定在下一个季度末仍然是异常。

# RCF 如何应用于检测异常
<a name="how-does-rcf-detect-anomalies"></a>

人类可以轻松地辨别与其余数据不同的数据点。通过构建决策树的“森林”，然后监控新数据点如何更改森林，RCF 做着相同的事情。

*异常*是一个数据点，会将您的注意力从正常点上移开，比如黄色花田里一朵红花的图像。此“注意力转移”编码为树（即 RCF 中的模型）的（预期）位置被输入点占据。理念是创建其中每个决策树均来自为训练算法而采样的数据分区的森林。在更技术的角度看，每个树为样本生成特定类型的二进制空间分区树。当 Amazon Quick Sight 对数据进行采样时，RCF 会为每个数据点分配一个异常分数。它为看似异常的数据点提供较高的分数。该分数与树中的点的最终深度大致成反比。Random Cut Forest 通过从组成的每棵树计算平均分数，并根据样本大小缩放结果，从而分配异常分数。

将聚合不同模型的投票或分数，因为每个模型本身是一种弱预测器。当数据点的分数与最近的分数明显不同时，Amazon Quick Sight 会将其识别为异常。划定为异常的内容取决于应用程序。

这篇论文《[基于随机切入森林的直播异常检测》](http://proceedings.mlr.press/v48/guha16.pdf)提供了这种 state-of-the-art在线异常检测（时间序列异常检测）的多个示例。 RCFs用于连续的数据段或 “瓦片” 数据，其中直接数据段中的数据充当最新数据段的上下文。基于 RCF 的异常检测算法的先前版本对整个瓦形进行评分。Amazon Quick Sight 中的算法还提供了当前扩展环境中异常的大致位置。此大致位置在检测异常存在延迟的场景中非常有用。出现延迟是因为任何算法都需要将“以前看到的偏差”描绘为“异常偏差”，这在一些时间后进行。

# RCF 如何应用于生成预测
<a name="how-does-rcf-generate-forecasts"></a>

要预测静止时间序列中的下一个值，RCF 算法回答问题“在我们具有候选值后，最可能实现什么？” 它使用 RCF 中的单个树搜索最佳候选项。将聚合不同树中的候选项，因为每个树本身是弱预测器。聚合还允许生成分位数错误。此过程重复 **t** 次来预测未来的第 **t** 个值。

Amazon Quick Sight 中的算法叫做 *BIFOCAL*。它使用两个 RCFs来创建 CALibrated 商业智能FOrest 架构。第一个 RCF 用于筛选出异常并提供弱预测，该预测由第二个 RCF 纠正。总之，此方法提供了比其他广泛可用的算法（如 ETS）显著可靠的预测。

Amazon Quick Sight 预测算法中的参数数量明显少于其他广泛使用的算法。这样，它就现成可用，无需人针对大量时间序列数据点进行调整。随着更多数据在特定时间序列中积累，Amazon Quick Sight 中的预测可以根据数据漂移和模式变化进行调整。对于显示趋势的时间序列，首先执行趋势检测以使序列成为静止的。将使用趋势投影回该静止序列的预测。

由于算法依赖高效的在线算法 (RCF)，它可以支持交互式“假设”查询。在这些中，一些预测可更改并视为假设来提供条件预测。这是在分析过程中探索“假设”场景的能力来源。

# 机器学习和 RCF 参考
<a name="learn-more-about-machine-learning-and-rcf"></a>

要了解更多有关机器学习和此算法的信息，我们推荐以下资源：
+ [可靠的随机砍伐森林 (RRCF)：没有数学说明](https://www.linkedin.com/pulse/robust-random-cut-forest-rrcf-math-explanation-logan-wilt/)一文提供了清晰的说明但没有数学方程式。
+ [*The Elements of Statistical Learning: Data Mining, Inference, and Prediction*, Second Edition (Springer Series in Statistics)](https://www.amazon.com/Elements-Statistical-Learning-Prediction-Statistics/dp/0387848576) 一书提供了机器学习的全面基础。
+ [Random Cut Forest Based Anomaly Detection On Streams](http://proceedings.mlr.press/v48/guha16.pdf)**，这是一篇学术论文，深入介绍了异常检测和预测技术并提供了示例。

其他 AWS 服务中出现了不同的区域合作框架方法。如果要了解如何在其他服务中使用 RCF，请参阅以下内容：
+ *适用于 Apache Flink 的 Amazon 托管服务 SQL 参考：RANDOM\$1CUT\$1FOREST 和* [https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sqlrf-random-cut-forest.html](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sqlrf-random-cut-forest.html)
+ *Amazon SageMaker 开发者指南：*[随机砍伐森林 (RCF) 算法](https://docs.aws.amazon.com/sagemaker/latest/dg/randomcutforest.html)。[Machine Learning for Business](https://www.amazon.com/Machine-Learning-Business-Doug-Hudgeon/dp/1617295833/ref=sr_1_3)（2018 年 10 月）中的[随机砍伐森林算法](https://freecontent.manning.com/the-randomcutforest-algorithm/)一章中也解释了这种方法。