邀朋友种豆,一起分享吧
喜欢购买正品行货?那就去品牌街

如何使用SQL Server分析服务定位目标用户

来自:种豆 时间:2018-01-01 阅读:366次 原文链接

如何定位目标用户,在任何一个业务单元中都是一个很重要的话题,尤其在预算有限的情况下,如何获得活动的最大收益,目标用户的定位都是很重要的手段。

本文将介绍如何通过SQL Server分析服务(SSAS)中的数据挖掘功能根据历史记录信息来定位目标用户。

微软的SQL Server为数据平台提供了一套完整的解决方案,他不只是一个数据引擎,也提供了很多数据工具和服务,借助其中的分析服务,结合业务系统中的海量历史数据信息,SQL SERVER就可以帮助我们发现其中的模式和规律,从而对目标数据做预测分析。

在实际中,不同的挖掘模型适用于不同的问题场景,同一个问题模式下可能有多个模型都适合解决这个问题,这样对于问题的解决来说就多了很多可对比性,从而我们可以根据每个模型预测的准确程度选择一个最优的模型。

在本文的目标用户定位的问题上,采用三种挖掘模型进行比较,分别是决策树,贝叶斯和聚类算法。

本文使用的SQL SERVER版本是2012,示例数据库是Adventure Works的数据仓库,关于如何获取以及部署这个示例数据仓库,可以参考我的这篇随笔:

aspnetx/archive/2013/01/30/2883831.html

首先,建立数据挖掘项目,打开SQL DATA TOOLS,也就是Visual Studio 2010的那个Shell。

新建一个多维和数据挖掘的分析服务项目。

项目建立完毕后,新建数据源连接。

选择部署好的Adventure Works DW连接。

输入模拟身份信息,本演示用为了简便直接使用本地管理员账户(当然生产环境中是不建议这么做的)。

为数据源连接起名。

新建数据源视图。

选择刚才建立的数据源连接。

从左边可选对象列表中选取两个对象,一个是表ProspectiveBuyer,一个是视图vTargetMail。

为数据源视图取名。

可以在数据源视图中看到添加进来的两个表。

其中左面的表是在数据仓库经过整合的一批数据,用来训练和验证模型。右面的表是待预测的表,将在模型生成完毕后对这个表里的数据进行预测。

新建挖掘结构。

同时为挖掘结构指定一个挖掘模型,这里选择决策树模型。需要留意的是,一个挖掘结构可以有很多挖掘模型,不过在通过工具创建一个挖掘结构的时候需要指定一个挖掘模型。

选择刚才建立的数据源视图。

选取事例表vTargetMail。ProspectiveBuyer是后续要用来进行预测的,所以这里先忽略这个表。

首先,在Key列一栏选择CustomerKey,用来指定键列。

然后选择输入列:

Age

CommuteDistance

EnglishEducation

EnglishOccupation

Gender

GeographyKey

HouseOwnerFlag

MaritalStatus

NumberCarsOwned

NumberChildrenAtHome

Region

TotalChildren

YearlyIncome

最后,选中以下列表左侧需要选择的列。这些列不作为模型的考虑元素,但是会用在模型的钻取结果上。

AddressLine1

AddressLine2

DateFirstPurchase

EmailAddress

FirstName

LastName

确认内容类型,这里有两处需要更改,一处是Geography Key改为Discrete离散型的,以及BikeBuyer改为discrete离散型的。

关于内容类型的参考:

zh-cn/library/ms174572

关于数据类型的参考:

zh-cn/library/ms174796

设定测试数据的比例。也就是说,在所有的历史数据中,这里将决定,有多少数据用来训练模型,有多少数据用来对模型进行准确度测试。

这里可以指定百分比或者最大测试事例数,当两个都有配置的时候,系统会取最小测试事例集合的配置。

为挖掘结构和挖掘模型取名,并且选中允许钻取的选项。

至此一个决策树模型生成完毕。

点击挖掘模型标签,可以更直观的看到挖掘结构和挖掘模型的结构。

接下来根据已经创建好的挖掘结构,创建其它挖掘模型。

右键点击挖掘结构,选择新建挖掘模型,为挖掘结构添加另外几个模型用于对预测结果进行比对。

为挖掘模型取名,并在算法中选择聚类算法。

按照同样的方法,再创建一个贝叶斯模型。

由于贝叶斯模型不支持连续变量,所以这里会出现提示。继续即可。

可以看到创建好的三个模型,并且每个模型中各个字段的用法。

点击工具栏上的处理按钮,对模型进行部署和处理。

第一次部署或者项目有过修改都会出现这样一个提示,点Yes。

处理界面,直接点击Run开始处理。

处理过程中,处理的时间取决于训练数据的大小以及机器的硬件性能。当然对于Adventure Works的这个示例来说,通常就是10多秒的事。

挖掘结构处理完毕后,下面来简单浏览一下各个挖掘模型。点击挖掘模型浏览器标签。然后在Mining Mode中选定TU_DecisonTree决策树模型。

可以看到,Microsoft 决策树算法通过在树中创建一系列拆分来生成数据挖掘模型。 这些拆分以"节点"来表示。 每当发现输入列与可预测列密切相关时,该算法便会向该模型中添加一个节点。 离根节点距离越近的属性,说明这个属性的变化对预测列的影响变化更大。

右键每一个节点,可以钻取到详细信息。

选择第一项,查看模型包含的列:

也可以选择钻取模型和挖掘结构模型的信息,这样前面在左侧定义的列就会显示出来,方便定位详细信息。

浏览聚类分析模型,这里可以看到各个分类之间的关系,通过拖动左面的滑块可以看到相互之间关系的强弱。

浏览贝叶斯模型,在途中可以看到是否是目标客户,模型分析出的几个关键因素,也可以通过左边的话快查看这些因素有强到弱的关系。

接下来,将对各个模型进行测试。虽然对于一个问题可以应用很多模型来解决,但往往只有一个才是最优的,效率最高的。对模型的测试主要是用到提升图。

首先,点击Mining Accuracy Chart选项卡,确定用于提升图的数据是Use mining model test cases。

然后点击Lift Chart标签,系统会显示根据测试数据生成的提升图。

从提升图的结果来看,决策树的预测性能明显高于其它模型。

关于提升图,首先,对角线是随机概率的结果,最上面的线是最佳理想的预测结果,所以实际的模型预测效率都是介于这两条线之间。

关于提升图的更多信息可以参考微软的这篇文档:

zh-cn/library/ms175428

 
关于种豆 ┊ 联系我们 ┊ 免责声明 ┊ 发帖须知 ┊ 请提意见 ┊ 站点地图
本站为个人爱好兴趣分享网站,不代表本人观点,如有侵权请联系QQ3033380280进行处理
sowsoy.com 版权所有 Copyright©2010-2021 备案号:蜀ICP备2020025376号-3
Email:sowsoy#hotmail.com