Microsoft SQL Server提供了集成的数据挖掘建模分析环境,这里我们用SQL Server官网提供的数据创建模型并用于分析顾客购车行为,从而预测潜在购车客户。
前提条件
安装:Microsoft SQL Server 2012 (注:最好英文版,中文版有些地方可能会出错)
安装:多维模式下的Microsoft SQL Server 分析服务
数据库:采用官网的样例数据库 http://go.microsoft.com/fwlink/?LinkId=88417
准备分析服务数据库
使用SQL Server建立商业智能应用程序( business intelligence application)进行建模分析。用数据工具(SQL Server Data Tools (SSDT))建立分析服务项目(SQL Server Analysis Services project),之后建立一或多个数据源(data sources),然后定义元数据视图(data source view)。
创建分析服务项目(Analysis Services Project)
打开SQL Server数据工具(SQL Server Data Tools (SSDT))
注意:要确认是商业智能项目模式(Business Intelligence Projects)。
更改步骤:工具->导入和导出设置。
一直到下一步,可以看到环境为 商业智能集合。
点击 文件->新建->项目
选择分析服务多维和数据挖掘项目(Analysis Services Multidimensional and Data Mining Project),项目起名为CustomerDataMining。
确认项目部署的服务名:
点击项目(右键)->属性->部署->服务器为localhost。
创建数据源(Data Source)
数据源文件夹(右键)->新建数据源
跳过欢迎页进行下一步->新建
点击服务器名,选择自己的服务器(若为空则手动输入localhost)->刷新->选择数据库(这里我们从外部导入之下下载的样例数据库)->确定
选择服务账户
数据源起名Adventure Works DW 2012,点击完成。
创建数据源视图(Data Source View)
通过数据源视图,我们可以选择项目所需要的数据,建立表之间的关系,在不修改原来的数据的情况下修改数据的结构。
点击数据源视图(右键)->新建数据源视图
选择已有数据源->下一步
选择需要的表或视图,这里我们选择:
ProspectiveBuyer (dbo) – 可能购车者信息
vTargetMail (dbo) – 曾经购车者信息
点击下一步,设置视图名 Targeted Mailing,点击完成。
创建目标邮件结构
创建目标邮件挖掘模型结构(Targeted Mailing Mining Model Structure)
点击挖掘结构(右键)->新建挖掘结构
下一步->从已有的数据仓库选择->数据挖掘结构,我们选择决策树
选择数据源:
选择模型信息,我们最少需要一个预测列,一个输入列和一个关键值列。
预测列:
• BikeBuyer
关键值:
• CustomerKey
输入列:
• Age
• CommuteDistance
• EnglishEducation
• EnglishOccupation
• Gender
• GeographyKey
• HouseOwnerFlag
• MaritalStatus
• NumberCarsOwned
• NumberChildrenAtHome • Region
• TotalChildren
• YearlyIncome
其他分析列:
• AddressLine1
• AddressLine2
• DateFirstPurchase • EmailAddress
• FirstName
• LastName
确认数据类型,内容类型(Content and Data Type)
点击检测按钮,对信息类型进行基本检测,点击完成。
注:这里GeographyKey 是文本,不然可能会有标识符等不识别错误。
确认测试数据集结构(Testing Data Set for the Structure)
这里设置测试比例为30%,测试集中最大数量为1000。
挖掘数据结构名:Targeted Mailing
挖掘模型名:TM_Decision_Tree
选择允许通过,点击完成。
添加·处理模型
点击挖掘模型页面,我们可以看到之前建立的决策树模型,这里我们再建立两个模型,模型处理这里省略了。
聚类分析挖掘模型
点击结构(右键)->新建挖掘模型
模型名 TM_Clustering,选择聚类分析算法。
朴素贝叶斯挖掘模型
点击结构(右键)->新建挖掘模型
模型名 TM_NaiveBayes,选择朴素贝叶斯算法。
模型探索
由于挖掘模型的结果是复杂的,因而我们采用图形等简易的方式进行展示更加直观。
决策树模型
点击查看挖掘模型视图,点击部署,运行。
运行报错
原因是没有设置数据库的用户名。
打开管理工具,新建登录,登录名为报错内容的ODBC连接错误用户名。
重新部署。
显示等级默认为3,这里改为4。
背景值改为1,(这里1代表曾经购买过车,0代表未曾购买过车)
点击结点(右键) ->钻取->仅模型/模型和结构
聚类分析模型
挖掘模型部分选择聚类分析模型,选择Microsoft集群视图( Microsoft Cluster Viewer),阴影变量处选购车者,状态选1。
点击节点(右键)可以进行重命名,这里将浅色节点命名Bike Buyers Low,深色节点为Bike Buyers High。
点击集群配置文件,设置直方图为5,查看不同因素的影响。
点击集群识别标签,设置集群1为Bike Buyers High,集群2为Bike Buyers Low。
朴素贝叶斯模型
选择朴素贝叶斯模型,同样进行相关分析。
测试模型
用梯度图测试准确性
选择输入数据集,模型,预测列,值。
点击梯度图:
测试过滤模型
之前我们已经对比得到决策树的准确性相对最高,这里用于测不同性别人购车对比。
在挖掘模型页面新建两个模型:TM_Decision_Tree_Male,TM_Decision_Tree_Female。
点击决策树右键,添加模型筛选器
将新建的两个模型点右键进行处理
对两个模型都点击挖掘模型视图,设置背景为1,等级为3。
设置精确度
查看不同性别对比
进行预测
创建预测
在挖掘模型中,点击选择模型,选择决策树模型。
在测试表中选择 ProspectiveBuyer (dbo)
更改信息
在解决方案资源管理器中,数据源视图右键,点击视图设计器
右键表ProspectiveBuyer,新建命名计算,输入信息。
列名 calcAge,描述 Calculate age based on birthdate,表达式 DATEDIFF(YYYY,[BirthDate],getdate())
在挖掘模型中,重新修改连接,年龄选择ProspectiveBuyer.calcAge。
source选择Prediction Function,field选择PredictProbability,alias选择Probability of result,将Bike Buyer拖到Criteria/Argument。
点击查询结果
钻取数据视图
在挖掘模型视图中,选择结点(例age >= 43 and < 50)右键钻取,模型和结构列,查看钻取结果。