高级时序预测(数据挖掘中级教程)
通过浏览预测模型,您发现尽管大多数区域的销售额都遵循一个相似的模式,但是某些区域和某些型号(例如,太平洋地区的 M200 型号)却呈现出完全不同的趋势。 您对此并不感到惊奇,因为您知道区域之间的差异很常见,可以由多种因素引起,其中包括市场促销、错误的报告或地理政治事件。
但是,您的用户要求提供可在全球范围内应用的模型。 因此,为了将各个因素对预测所造成的影响降至最低,您决定生成一个基于全球范围内销售额的聚合度量值的模型。 然后,您可以使用此模型对每个区域进行预测。
在本任务中,您将生成所需的所有数据源以执行高级预测任务。 您将创建两个数据源视图用作预测查询的输入,一个数据源视图用于生成新模型。
步骤
准备扩展的销售额数据(用于预测)
准备聚合数据(用于生成模型)
准备序列数据(用于交叉预测)
创建新的扩展销售额数据
要更新您的销售额数据,您需要获取最新的销售额数字。 特别关注来自太平洋地区的数据,该地区启动了区域性促销以吸引新商店的关注并提升产品知名度。
对于此方案,我们假定已从 Excel 工作簿导入数据,该工作簿只包含一些区域三个月的新数据。 您将使用 Transact-SQL 脚本创建一个数据表,然后定义用于预测的数据源视图。
使用新的销售额数据创建表
在 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
使用以下脚本插入新值。
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,则可能需要对插入的日期进行相应的调整。
使用新的销售额数据创建数据源视图
在**“解决方案资源管理器”中,右键单击“数据源视图”,然后选择“新建数据源视图”**。
在数据源视图向导中进行以下选择:
数据源: Adventure Works DW Multidimensional 2012
选择表和视图:选择您刚创建的表 NewSalesData。
单击**“完成”**。
在数据源视图设计图面上,右键单击 NewSalesData,然后选择**“浏览数据”**以验证数据。
注意 |
---|
您仅将此数据用于预测,因此数据是否完整并不重要。 |
创建用于交叉预测模型的数据
在原始预测模型中使用的数据已被视图 vTimeSeries 略微分组,它将几个自行车型号折叠为更少的类别,将几个国家/地区的结果合并为区域结果。 为了创建可用于全球范围内预测的模型,您将直接在数据源视图设计器中创建一些其他简单的聚合。 新的数据源视图将仅包含所有产品在各个区域的销售额的总和以及平均值。
创建了用于模型的数据源后,必须创建用于预测的新数据源视图。 例如,您要使用新的全球范围内模型预测欧洲的销售额,必须仅输入欧洲区域的数据。 因此,您将设置一个筛选原始数据的新数据源视图,并为每组预测查询更改筛选条件。
使用自定义数据源视图创建模型数据
在**“解决方案资源管理器”中,右键单击“数据源视图”,然后选择“新建数据源视图”**。
在向导的欢迎页上,单击**“下一步”**。
在**“选择数据源”页上,选择 Adventure Works DW Multidimensional 2012 ,然后单击“下一步”**。
在**“选择表和视图”页上,不添加任何表,仅仅单击“下一步”**。
在**“完成向导”页上,键入名称 AllRegions,然后单击“完成”**。
接下来,右键单击空白数据源视图设计图面,然后选择**“新建命名查询”**。
在**“创建命名查询”对话框中,对于“名称”键入 AllRegions,对于“说明”**键入所有型号和区域的平均销售额和总销售额。
在“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
右键单击 AllRegions 表,然后选择**“浏览数据”**。
创建用于交叉预测的序列数据
在**“解决方案资源管理器”中,右键单击“数据源视图”,然后选择“新建数据源视图”**。
在数据源视图向导中进行以下选择:
数据源: Adventure Works DW Multidimensional 2012
选择表和视图:不选择任何表
名称:T1000 Pacific Region
单击**“完成”**。
右键单击 T1000 Pacific Region.dsv 的空设计图面,然后选择**“新建命名查询”**。
**“创建命名查询”**对话框随即出现。 重新键入名称,然后添加下面的说明:
名称:T1000 Pacific Region
说明:按区域和型号筛选 vTimeSeries
在“文本”窗格中键入以下查询,然后单击“确定”:
SELECT ReportingDate, ModelRegion, Quantity, Amount FROM dbo.vTimeSeries WHERE (ModelRegion = N'T1000 Pacific')
注意 由于需要单独为每个序列创建预测,您可能要复制查询文本并将其保存为文本文件,以便其他数据序列可以重用它。
在数据源视图设计图面上,右键单击 T1000 Pacific,然后选择**“浏览数据”**以验证是否已正确筛选数据。
在创建交叉预测查询时,您将使用此数据作为模型的输入。