全部版块 我的主页
论坛 数据科学与人工智能 人工智能
2476 1
2015-08-11
该案例的工作流如下:

1、商业目标
业务理解:该案例所用的数据是《销售数据.csv》,该数据包含销售日期、销量和利润(万元)三个指标,如下:


表1:销售数据预览
业务目标:建立预测分析系统,分析利润在未来的预测值。
数据挖掘目标:建立时间序列预测模型,该模型以日期为输入,以利润为目标,建立预测模型。

2、数据理解

使用统计节点计算字段的特征统计量,输出结果如下:




3、分布趋势分析


分析时间序列趋势是时间序列建模的初步工作。目的是为了分析时间序列的规律和序列特征,如序列是否平稳?是否有周期性或者趋势性?并由此分析哪些分析模型更适合。

操作如下:


第一步,使用字符转化为日期节点将字符型的日期型转化为日期型。节点配置如下:


第二步,使用时间选择节点选择选择85年 - 95年的数据的进行分析。节点配置如下:


第三步,使用列过滤节点过滤日期字段,节点配置如下:


第四步,使用标准化节点对数据进行标准化。节点配置如下:


第五步,使用线图节点分析序列的趋势。从下图可以看出,序列整体呈下降趋势,且没有周期性。

4、简单序列预测
工作流如下:

接下来,我们选择一个简单的移动平均预测算法进行预测。步骤如下:


第一步,使用日期字段提取节点提取模型所需的日期字段,这里提取年和季度,配置如下:





提取前数据预览如下:


提取后数据预览如下:



第二步,使用汇总字段安装年和季度进行汇总,将数据粒度转化为我们要分析的粒度,节点配置如下:


点击 按钮可以对汇总值的计算方法进行配置,在这里我们数值字段取其平均值(也可以是其他,根据实际情况而定),如下:


执行后节点击右键菜单最下方的"组表"预览数据如下:


第三步,使用列过滤节点选择要分析的变量。节点配置如下:


第四步,使用移动平均节点进行移动平均计算。节点配置如下:


执行后预览数据如下:


第五步,使用Java代码(简单)节点计算残差,节点配置如下:


第六步,生成行ID字段,作为趋势图的横轴。
首先,使用日期转化为为字符串节点,转化字段类型,节点配置如下:


其次,使用行ID节点生成行ID。节点配置如下:


第七步,使用线图节点可视化预测结果。节点配置如下:


如上图所示,移动平均算法对该时间序列的趋势有一定预测能力,该模型也总结一些规律,但是尚有一些规律并未总结出。这是一个趋势性非平稳序列,您还可以考虑使用指数平滑模型、ARIMA模型、残差自回归模型等重新建模。

5、小结

时间序列分析是数据挖掘最难的算法之一。当然它也有一个好处,就是建模之前的数据量一般都很小,一般只有几十条到几百条记录(如果您的预测粒度是月,那么每年才12条数据,10年才120条),因此模型计算很快。


时间序列分析的一般步骤是:首先,探索序列的趋势,看看序列是趋势特征还是周期性特征,平稳序列还是非平稳序列,是白噪声序列,还是非白噪声序列。根据这些信息我们可以把分析尝试的模型范围缩小,有方向的去优化模型。其次,开始使用工具去尝试模型,并解释模型的质量。最后,评估模型。以及考虑是否使用混合模型来提高模型的稳定性。


本文源自:http://wiki.smartbi.com.cn/pages/viewpage.action?pageId=13599873


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-8-11 22:14:45
ngyyt 发表于 2015-8-11 20:03
该案例的工作流如下:

1、商业目标
谢楼主分享
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群