高级时序预测(中间数据挖掘教程)

你从探索预测模型中看到,虽然大多数区域的销售额遵循类似的模式,但一些区域和一些模型(如太平洋地区的 M200 模型)表现出非常不同的趋势。 这并不奇怪你,因为你知道区域之间的差异是常见的,可能是由许多因素造成的,包括营销促销、不准确的报告或地缘政治事件。

但是,你的用户要求一个可在全球应用的模型。 因此,为了最大程度地减少单个因素对投影的影响,你决定构建一个基于全球销售聚合度量值的模型。 然后,可以使用此模型为每个单个区域进行预测。

在此任务中,你将生成执行高级预测任务所需的所有数据源。 你将创建两个数据源视图,用作预测查询的输入,以及一个用于生成新模型的数据源视图。

步骤

  1. 准备扩展的销售数据(用于预测)

  2. 准备聚合数据(用于生成模型)

  3. 准备系列数据(用于交叉预测)

  4. 使用 EXTEND 进行预测

  5. 创建交叉预测模型

  6. 使用 REPLACE 进行预测

  7. 查看新的预测

创建新的扩展销售数据

若要更新销售数据,需要获取最新的销售数据。 特别感兴趣的是来自太平洋地区的数据,该区域推出了区域销售促销,以引起人们对新商店的关注,并提高他们对产品的认识。

对于此方案,我们假设数据已从 Excel 工作簿导入,该工作簿仅包含几个区域的三个月新数据。 你将使用 Transact-SQL 脚本为数据创建表,然后定义用于预测的数据源视图。

创建包含新销售数据的表

  1. 在 Transact-SQL 查询窗口中,执行以下语句,将销售数据添加到 AdventureWorksDW 数据库(或任何其他数据库)。

    USE [database name];  
    GO  
    IF OBJECT_ID ([dbo].[NewSalesData]) IS NOT NULL   
        DROP TABLE [dbo].[NewSalesData];  
    GO  
    CREATE TABLE [dbo].[NewSalesData]([Series] [nvarchar](255) NULL,  
    [NewDate] [datetime] NULL,  
    [NewQty] [float] NULL,  
    [NewAmount] [money] NULL) ON [PRIMARY]  
    
    GO  
    
  2. 使用以下脚本插入新值。

    INSERT INTO [NewSalesData]  
    (Series,NewDate,NewQty,NewAmount)  
    VALUES('T1000 Pacific', '7/25/08', 55, '$130,170.22'),  
    ('T1000 Pacific', '8/25/08', 50, '$114,435.36 '),  
    ('T1000 Pacific', '9/25/08', 50, '$117,296.24 '),  
    ('T1000 Europe', '7/25/08', 37, '$88,210.00 '),  
    ('T1000 Europe', '8/25/08', 41, '$97,746.00 '),  
    ('T1000 Europe', '9/25/08', 37, '$88,210.00 '),  
    ('T1000 North America', '7/25/08', 69, '$164,500.00 '),  
    ('T1000 North America', '8/25/08', 66, '$157,348.00 '),  
    ('T1000 North America', '9/25/08', 58, '$138,276.00 '),  
    ('M200 Pacific', '7/25/08', 65, '$149,824.35'),  
    ('M200 Pacific', '8/25/08', 54,  '$124,619.46'),  
    ('M200 Pacific', '9/25/08', 61, '$141,143.39'),  
    ('M200 Europe', '7/25/08', 75, '$173,026.00'),  
    ('M200 Europe', '8/25/08', 76, '$175,212.00'),  
    ('M200 Europe', '9/25/08', 84, '$193,731.00'),  
    ('M200 North America', '7/25/08', 94, '$216,916.00'),  
    ('M200 North America', '8/25/08', 94, '$216,891.00'),  
    ('M200 North America', '9/25/08', 91,'$209,943.00');  
    

    警告

    引号与货币值一起使用,以防止出现逗号分隔符和货币符号的问题。 还可以采用以下格式传入货币值: 130170.22

    请注意,示例数据库中使用的日期已对此版本进行更改。 如果使用早期版本的 AdventureWorks,则可能需要相应地调整插入的日期。

使用新的销售数据创建数据源视图

  1. 解决方案资源管理器中,右键单击 “数据源视图”,然后选择“ 新建数据源视图”。

  2. 在“数据源视图”向导中,进行以下选择:

    数据源:Adventure Works DW 多维 2012

    选择表和视图:选择刚刚创建的表 NewSalesData。

  3. 单击“完成”。

  4. 在数据源视图设计图面中,右键单击 NewSalesData,然后选择“ 浏览数据 ”以验证数据。

警告

仅使用此数据进行预测,因此数据不完整并不重要。

为交叉预测模型创建数据

原始预测模型中使用的数据已按视图 vTimeSeries 进行分组,该视图将多个自行车模型折叠为少量类别,并将各个国家/地区的结果合并为区域。 若要创建可用于全球投影的模型,可以直接在数据源视图设计器中创建一些额外的简单聚合。 新的数据源视图将只包含所有区域的所有产品的销售额和平均值。

创建用于模型的数据源后,必须创建新的数据源视图才能用于预测。 例如,如果要使用新的全球模型预测欧洲的销售,则必须仅向欧洲区域提供数据。 因此,你将设置一个新的数据源视图来筛选原始数据,并更改每个预测查询集的筛选条件。

使用自定义数据源视图创建模型数据

  1. 解决方案资源管理器中,右键单击 “数据源视图”,然后选择“ 新建数据源视图”。

  2. 在向导的欢迎页上,单击“ 下一步”。

  3. “选择数据源 ”页上,选择 Adventure Works DW 多维 2012,然后单击“ 下一步”。

  4. 在页面中, 选择表和视图,不添加任何表,只需单击“ 下一步”。

  5. 在页面上, 完成向导,键入名称 AllRegions,然后单击“ 完成”。

  6. 接下来,右键单击空白数据源视图设计图面,然后选择“ 新建命名查询”。

  7. 在“ 创建命名查询 ”对话框中,对于 “名称”、“类型 AllRegions”和 “说明”,键入 “总和”和所有模型和区域的销售额平均值

  8. 在 SQL 文本窗格中,键入以下语句,然后单击“确定” :

    SELECT ReportingDate,   
    SUM([Quantity]) as SumQty, AVG([Quantity]) as AvgQty,  
    SUM([Amount]) AS SumAmt, AVG([Amount]) AS AvgAmt,  
    'All Regions' as [Region]  
    FROM dbo.vTimeSeries   
    GROUP BY ReportingDate  
    
  9. 右键单击 AllRegions 该表,然后选择“ 浏览数据”。

创建用于交叉预测的序列数据

  1. 解决方案资源管理器中,右键单击 “数据源视图”,然后选择“ 新建数据源视图”。

  2. 在“数据源视图”向导中,进行以下选择:

    数据源:Adventure Works DW Multidimensional 2012

    选择表和视图:不选择任何表

    名称T1000 Pacific Region

  3. 单击“完成”。

  4. 右键单击 T1000 Pacific Region.dsv 的空设计图面,然后选择“ 新建命名查询”。

    此时会显示“ 创建命名查询 ”对话框。 重新键入名称,然后添加以下说明:

    名称T1000 Pacific Region

    说明按区域和模型进行筛选vTimeSeries

  5. 在文本窗格中,键入以下查询,然后单击“确定” :

    SELECT ReportingDate, ModelRegion, Quantity, Amount  
    FROM dbo.vTimeSeries  
    WHERE (ModelRegion = N'T1000 Pacific')  
    

    注释

    由于需要单独为每个序列创建预测,因此可能需要复制查询文本并将其保存到文本文件中,以便可以将其重新用于其他数据系列。

  6. 在数据源视图设计图面中,右键单击 T1000 Pacific,然后选择“ 浏览数据 ”以验证数据是否已正确筛选。

    创建交叉预测查询时,将此数据用作模型的输入。

课程中的下一个任务

使用更新的数据进行时序预测(中间数据挖掘教程)

另请参阅

Microsoft时序算法
Microsoft时序算法技术参考
多维模型中的数据源视图