Microsoft 时序算法是 Microsoft SQL Server 2005 Analysis Services (SSAS) 提供的回归算法,用于创建数据挖掘模型以预测连续列,如预测方案中的产品销售额。其他 Microsoft 算法创建依靠给定输入列来预测可预测列的模型(如决策树模型),而时序模型的预测则仅根据算法在创建模型时从原始数据集派生的趋势。以下关系图显示了一个典型模型,用于预测各个时间的销售额。 数据挖掘研究院
.gif)
关系图中显示的该模型由两部分组成:历史信息以红色显示,预测信息以蓝色显示。红色数据代表算法用于创建模型的信息,而蓝色数据则代表模型作出的预测。由红色数据和蓝色数据联合形成的线称为“序列”。每个预测模型必须包含一个事例序列,即区分序列列中不同点的列。例如,因为关系图中的数据显示了几个月中的历史和预测销售额序列,因此数据列为事例序列。 数据挖掘实验室
Microsoft 时序算法的一个重要功能就是可以执行交叉预测。也就是说,如果使用两个单独但相关的序列为该算法定型,就可以使用得到的模型根据其他序列的行为预测一个序列的结果。例如,一个产品的实际销售额可能会影响另一个产品的预测销售额。
示例Adventure Works Cycle 公司的管理层希望预测来年的自行车每月销售额。该公司尤其关注的是不同型号的自行车的销售是否彼此相关,一种自行车型号的销售情况是否可用于预测另一种型号的销售情况。通过对过去三年的历史数据使用 Microsoft 时序算法,该公司可以生成一个数据挖掘模型,用于预测未来的自行车销售情况。此外,该公司还可以执行交叉预测,以查看各个自行车型号的销售趋势是否相关。 数据挖掘研究院
算法的原理Microsoft 决策树算法通过使用自动回归决策树来为模型定型。每个模型都包含一个 KEY TIME 列,该列定义了模型将定义的时间段。该算法将过去的项的可变数目关联到要预测的每个当前项目。 数据挖掘研究院
有关 Microsoft 时序算法如何运行的详细说明,请参阅 Autoregressive Tree Models for Time-Series Analysis。
可以用两种方式定义 Microsoft 时序模型的输入数据。为了了解第一种方法,请考虑下表中的输入事例:
| TimeID | Product | Sales | Volume |
|---|---|---|---|
|
1/2001 |
A 数据挖掘研究院 |
1000 |
600 |
|
2/2001 |
A |
1100 数据挖掘实验室 |
500 |
|
1/2001 数据挖掘研究院 |
B 数据挖掘研究院 |
500 |
900 数据挖掘研究院 |
|
2/2001 数据挖掘研究院 |
B 数据挖掘研究院 |
300 数据挖掘研究院 |
890 数据挖掘实验室 |
表中的 TimeID 列包含一个时间标识符,每个日期有两个条目。Product 列定义数据库中的产品。Sales 列说明指定产品一天的毛利润,Volume 列说明仓库中保存的指定产品的数量。在本例中,模型可以包含两个可预测列:Sales 和 Volume。 数据挖掘实验室
此外,时序模型的输入数据可定义为如下表所示:
| TimeID | A_Sales | A_Volume | B_Sales | B_Volume |
|---|---|---|---|---|
|
1/2001 数据挖掘研究院 |
1000 |
600 数据挖掘实验室 |
500 数据挖掘研究院 |
900 |
|
2/2001 数据挖掘实验室 |
1100 |
500 |
300 数据挖掘研究院 |
890 数据挖掘实验室 |
在上表中,Sales 和 Volume 列分别被拆分成两列,每个列都用产品名称作前缀。结果,TimeID 列中每天只有一个条目。该模型包含了四个可预测列:A_Sales、A_Volume、B_Sales 和 B_Volume。
这两种定义输入数据的方法都会使模型中显示相同信息,而输入事例的格式将改变定义挖掘模型的方式。
使用算法时序算法要求要预测的列必须是连续的。每个模型只允许使用一个事例序列。 数据挖掘研究院
Microsoft 时序算法支持特定输入列内容类型、可预测列内容类型和建模标志,这些类型和标志如下表所列。 数据挖掘研究院
|
输入列内容类型 数据挖掘研究院 |
Continuous、Key、Key Time 和 Table 数据挖掘研究院 |
|
可预测列内容类型 数据挖掘研究院 |
Continuous 和 Table |
|
建模标志 |
NOT NULL 和 REGRESSOR 数据挖掘研究院 |
所有 Microsoft 算法均支持一些通用的函数。但是,Microsoft 时序算法还支持下表所列的其他函数。 数据挖掘研究院
|
Lag |
PredictTimeSeries 数据挖掘研究院 |
|
PredictNodeId |
PredictVariance 数据挖掘研究院 |
|
PredictStdev |
|
有关对所有 Microsoft 算法都通用的函数列表,请参阅数据挖掘算法。有关如何使用这些函数的详细信息,请参阅数据挖掘扩展插件 (DMX) 函数参考。
Microsoft 时序算法不支持使用预测模型标记语言 (PMML) 创建挖掘模型。 数据挖掘实验室
Microsoft 时序算法支持多个参数,这些参数可影响生成的挖掘模型的性能和准确性。下表对各参数进行了说明: 数据挖掘研究院
| 参数 | 说明 |
|---|---|
|
MINIMUM_SUPPORT |
指定在每个时序树中生成一个拆分所需的最小时间段数。 数据挖掘研究院 默认值为 10。 数据挖掘研究院 |
|
COMPLEXITY_PENALTY 数据挖掘实验室 |
控制决策树的增长。减少该值将增加拆分的可能性。增加该值将降低拆分的可能性。 数据挖掘实验室 默认值为 0.1。 数据挖掘研究院 |
|
PERIODICITY_HINT 数据挖掘研究院 |
提供算法的有关数据周期的提示。例如,如果销售逐年变化,序列中的度量单位是月,则周期为 12。此参数采用 {n [, n]} 的格式,其中的 n 是任意正数。方括号 [] 中的 n 是可选项,可以按需重复多次。 数据挖掘研究院 默认值为 {1}。 数据挖掘实验室 |
|
MISSING_VALUE_SUBSTITUTION |
指定用于填充历史数据中空白的方法。默认情况下,数据中不允许存在不规则的空白或参差不齐的边缘。以下是可用来填充不规则空白或边缘的方法:使用以前的值、使用平均值或使用特定数值常量。 |
|
AUTO_DETECT_PERIODICITY |
指定一个介于 0 和 1 之间的数字值,用于检测周期。如果将此值设置为更接近于 1 的数,则允许查找许多接近周期的模式并允许自动生成周期提示。处理大量的周期提示可能会导致模型定型时间明显加长,模型更准确。如果将此值设置为更接近于 0 的数,则只检测周期性强的数据的周期。 默认值为 0.6。 |
|
HISTORIC_MODEL_COUNT 数据挖掘实验室 |
指定将要生成的历史模型的数量。 数据挖掘实验室 默认值为 1。 |
|
HISTORICAL_MODEL_GAP 数据挖掘研究院 |
指定两个连续的历史模型之间的时间间隔。例如,如果将此值设置为 g,则以 g、2*g、3*g (依此类推)的时间间隔为被时间段截断的数据生成历史模型。 数据挖掘实验室 默认值为 10。 |
注意: |
|---|
| 周期提示对模型质量很敏感。如果给出的提示与实际周期不同,结果会受不良影响。 |


注意: