使用SQL Server Analysis Services数据挖掘的关联规则实现商品推荐功能(五)

假如你有一个购物类的网站,那么你如何给你的客户来推荐产品呢?这个功能在很多电商类网站都有,那么,通过SQL Server Analysis Services的数据挖掘功能,你也可以轻松的来构建类似的功能。

 

 

此篇承接上篇,主要演示如何根据工具的要求组织数据,然后在Excel中做挖掘预测分析。

 

 

上一篇中我们演示了如何用微软提供的Data Mining for Add-ins里的示例数据来实现挖掘预测分析的功能,此篇我们用Adventure Works来演示如何来组织数据在Excel中进行挖掘预测。

微软提供的Adventure Works示例库分为OLTP库和OLAP库,前者记录业务数据,在一个系统中的业务数据通常都是操作在这一层,业务数据层经过ETL的清洗加载和转换进入到数据仓库,供分析系统做统计分析。

关于如何获取并且安装这些示例库,可以参考我的这篇随笔

在微软提供的Adventure Works示例中,已经为我们创建好了Data Warehouse库,在2012版中默认对应的名称是AdventureWorksDW2012。

在第一篇的演示中,我们用过一个视图:vAssocSeqLineItems。

这个视图里面记录了订单号和商品名称等信息。通过这个视图,嵌套另外一个视图,我们生成了关联规则挖掘模型进行预测分析。

在上一篇中,挖掘工具中还需要提供商品价格信息,明显这个视图无法满足工具的要求,所以我们根据数据仓库的结构重新定义样本数据。

上一篇我们提到的设置界面中,需要指定三个信息,订单编号商品名商品价格。工具会根据这三列的信息生成临时的挖掘模型然后生成预测报告。

在数据仓库中,选择两张表,事实表FactInternetSales和维度表DimProduct,在事实表中我们取订单编号,然后连接到维度表中取产品名称和价格信息。建立如下查询:

SELECT

f.[SalesOrderNumber] AS [OrderNumber]

,Coalesce(p.[ModelName], p.[EnglishProductName]) AS [Model]

,f.ExtendedAmount AS Amount

FROM [dbo].[FactInternetSales] f

INNER JOIN [dbo].[DimProduct] p ON f.[ProductKey] = p.[ProductKey]

这个查询会连接事实表和维度表生成符合工具要求格式的数据,也就说订单编号,商品名和价格。

接下来,需要在Excel中把上面SQL语句的查询结果导入进来。下面的操作会演示如何导入一条SQL语句的结果到Excel中。当然在Excel中导入的方法很多,下面只介绍一种:

打开Excel,点击Ribbon菜单下的Data,From Other Sources->From SQL Server。

在新弹出的数据连接工具中,指定分析服务器所在的Server。

点击下一步。

留意Connect to specific table,由于我们这里用的是一个查询而不是已经存在的一张表活着一个视图,所以需要把这里勾选掉。然后选择AdventureWorksDW2012 数据仓库,点下一步。

确认连接文件后点击Finish。

接下来的界面中会让你选择指定数据库下的一张表,这里随便选择一个。然后点OK。

在然后出现的Import Data界面中,选择属性Properties,出现连接属性界面:

在连接属性界面中,点击Definition,Command type更改成SQL,Command text里输入刚才建立的SQL查询,然后点击OK。

以上,样本数据生成好了,接下来,按照上一篇的方法开始购物篮预测分析。

具体的方法可以参考上一篇的内容,这里需要留意的是,Transation ID选择OrderNumber,Item选择Model,Item Value选择Amount。

在工具新建的两个标签页中,可以看到根据组织的数据生成的挖掘报告。

同时,在挖掘分析的过程中,可以通过点击Advanced设置一些挖掘参数:

在新弹出的界面中,可以指定最小支持度和最小规则概率。

这些参数的设置会影响到预测结果集。通过这里的设置,可以过滤掉一些支持度低和发生概率小的事件,根据不同的业务场景需要动态的调节这些值以达到符合我们要求的挖掘结果。

任何挖掘工具都只是一个工具,里面会让我们去设置一些跟算法相关的参数,这些参数的设置,从技术的角度上来说没有任何的建议,如何去设置就需要一定的行业经验。这也就是为什么说,有行业经验的数据分析师待遇都相当不错。同时也间接的解释了一个行业里流传好久的事实,就是为什么用顶端工具的,比如Excel,会比纯粹写SQL语句的人赚更多的钱。

 

 

总结:

此篇的演示基于前一篇的基础之上,从微软提供的示例数据DW中开始组织数据,然后导入到Excel利用数据挖掘插件实现挖掘预测分析。

至此,在Excel中进行关联规则挖掘分析的介绍暂告一段落。跟前三篇的通过分析服务的方法相比,在Excel中的操作更直接一些,前者更适应用到IT系统中,适合更大量的数据,比如网站的购物篮推荐,后者更适合做内部的小规模的挖掘预测分析。

posted @ 2013-03-03 18:20  哥本哈士奇(aspnetx)  阅读(3786)  评论(0编辑  收藏  举报