SQL Server Analysis Services 数据挖掘

要你产生一个购物类的网站,那么您怎么为你的客户来推举产品也?这个功效于很多

电商类网站还来,那么,通过SQL Server Analysis
Services的数据挖掘功能,你吧足以轻松的来构建类似之效能。

拿分成三独组成部分来演示如何兑现此力量。

  1. 构建挖掘模型
  2. 为发掘模型编写服务接口
  3. 付出简单的前端采用

此篇介绍如何下SQL Server Analysis
Services基于此问题来构建简单的掘进模型。

有关数据挖掘,简单的乃是从海量数据被发觉信息之一个进程。如果说商业智能分为三独层次:告诉你产生了呀,为什么会来,将来会来什么。那
么,数据挖掘绝对算是商业智能中高的一个层次,告诉您将来见面时有发生啊,也不怕是展望。而预计的底子就算是因海量的历史数据,结合自然的算法,以概率为基
础,告诉您同长新数据某条属性的大势。

数量挖掘的模子很多,贝叶斯,时间序列,关联规则等还是常用的范,根据不同之题目特征可以套用不同的模型算法。比如此篇涉嫌的货物推荐,就是一流的合乎用干规则来缓解。在数量挖掘遭名列榜首的啤酒与尿布的题目,大体上就是是根据此法。

创办挖掘模型项目

作者注:如果你是一个c#抑或连带的应用程序开发人员,以下的情节看起或会见聊陌生,笔者建议之有就文章中牵线的步骤来举行就是可以,相关细节我会尽量以开发人员的角度去讲。后面有契合开发人员逻辑的一些介绍好拉您再好的喻数据挖掘项目。

打开SQL Server Data Tools,点击File->New->Project

SQL Server 1

择品种类别:

Analysis Services Multidimensional and Data Mining Models

啊项目增长数据源。

SQL Server 2

假如图,在Solution Explorer中,右键单击Data Sources,选择New Data Source:

SQL Server 3

此处用的数据源是微软官方示例库Adventure Works DW 2012,是Data
Warehouse的示例库。

关于怎样取得并且安排这些示例库,可以参照此篇下面的篇章列表。

下一场,添加数量源视图,在Solution Explorer中右键Data Source
Views,选择New Data Source View。

当Relational data source中,选择才建立的数据源名称:

SQL Server 4

点击下一样步。

SQL Server 5

这个界面中选择用到的表明。根据微软官方教程以及示例数据,只选vAssocSeqLineItems和vAssocSeqOrders两单视图就可。

若果如就此干规则来解决问题,那么你的数量将符合一定之构造。而具体的组织要求就是可以参见这片个视图。

SQL Server 6

vAssocSeqOrders是订单主表,里面著录了骨干的订单信息,一条订单一行记录。

vAssocSeqLineItems是订单相信信息表,里面著录了每条订单里还带有了哪些商品。

些微布置表逻辑上通过OrderNumber关联,我们关心之字段是Model,这间著录了商品名称。

挑好用到之申后,可以直接点击完成为止数据源视图的安装。

立刻片独视图是尚未逻辑关系的,但此间用指定一下。

方法就是是当数码源视图里,拖拽vAssocSeqLineItems里之OrderNumber字段到vAssocSeqOrders的
OrderNumber字段。完成后好望一个起vAssocSeqLineItems视图指向vAssocSeqOrders的箭头。

SQL Server 7

到此数据源视图设置完。

脚建立因关联规则的掘进模型。在Solution Explorer中,右键单击Mining
Structures,选择New Mining Structure。

SQL Server 8

先是个界面,使用都存在的关系数据库或者数据仓库,所以一直生一样步。

SQL Server 9

下一场在斯界面中指定挖掘结构要动用的发掘模型。点击下拉框,选择Microsoft
Association Rules,也便是涉嫌规则。点下一样步。

SQL Server 10

此地指定数量源视图,默认选项刚刚建立之虽可以,直接点击下一样步。

SQL Server 11

当时同样步于根本,理解起来为正如绕。这里要是如果指定事例表和嵌套表。在此处,记录订单基本信息之是事例表,而记录订单里发出安产品的表为嵌套表。

于这模型中,我们而明的凡,我们的例证单位,是一条条订单,而休是订单里之一个个出品。如果老是在成立模型的进程遭到无法区分哪个应该是例证表谁应该是镶嵌套表的话,那么得回头来先想生这个题材。

指定了事例表和嵌套表,点击下一致步。

SQL Server 12

此处指定在解析范中如何行使这些列。首先乘定键列为OrderNumber和Model,然后又将Model列指定为输入列和可预测列。因为此就是使因已经选择的货物来预测客户将会见打什么商品。

仍如图所示的不二法门指定了后,点击下一致步。

SQL Server 13

择列的门类,这里根据系统自动判断的项目选择虽得,直接点击下同样步。

SQL Server 14

下一场是界面被至关重要是因此来指定测试数据集的有些。默认是30%,也就是当数量被,保留30%之数据来说明建立好的打模型的不易。此篇非对准其开过详细的牵线,所以先安装成0,然后径直点击Finish完成模型设置引导。

SQL Server 15

得视建立好的打桩结构。

范建立好了随后,需要用那部署及一个分析服务的实例上去,然后将该处理。

SQL Server 16

此地直接右键点击Solution
Explorer根目录的项目名称,然后右键菜单中选择Process。

SQL Server 17

系统会唤醒服务器内容曾逾期,VS的判定是设你的Source
Code比目标服务器的版新,那么还见面报是out of
date错误,即使目标服务器上常有没有这库房。所以这里选择Yes。

SQL Server 18

首先不好
部署可能会见弹出这个提示框让你指定可以向数据源链接的账户,这里通常直接敲本地管理员的账户即
ok。

SQL Server 19

起这界面,直接点击Run处理打模型。

SQL Server 20

接下来系统会活动去做过多干活,这里的细节你可以不错过关注。(当然在该非报Error的状下)

拍卖好之后,挖掘模型就起好了。后续的实现货物推荐的力量,就是基于这模型来落实的。

此处又介绍一个概念,叫DMX,也许你打没听说过,但你势必了解SQL,简单的来说SQL就是因此来查表得,那么DMX就是故来查阅数据挖掘模型的。

她同SQL一样,也是SELECT
FROM的组织。具体的语法信息大家发出趣味之得错过参考微软的SQL
Server联机数据库。在此篇中,下面会叫出一个概括的DMX查询,大家只要基本清楚它们是怎么的即足以了。

DAX示例查询:

SELECT FLATTENED

PredictAssociation([Association].[v Assoc Seq Line
Items],INCLUDE_STATISTICS,3)

FROM

[Association]

NATURAL PREDICTION JOIN

(SELECT (SELECT ‘Touring Tire’ AS [Model]

) AS [v Assoc Seq Line Items]) AS t


夫讲话的盖意思就是是,购买了产品Touring
Tire的用户中,根据历史信息,还发出或会见请什么产品。

那么我们来拘禁查询结果:

Model SUPPORT PROBABILITY ADJUSTEDPROBABILITY
Touring Tire Tube 1397 0.860385925 0.783460119
Sport-100 6171 0.267877412 0.489939538
Patch kit 3010 0.244040863 0.567612365

然后我们来简单说下相互关列的音讯:

SUPPORT-支持度,所处行的起支持度,这里与风的支持度有些不同,这里,比如第一推行,指的凡发生小只订单中含有了出品Touring
Tire Tube。

每当数据仓库中,我们可以就此SQL语句来证明下之结果

SELECT COUNT(1)

FROM [AdventureWorksDW2012].[dbo].[vAssocSeqLineItems]

WHERE [Model]=’Touring Tire Tube’


返的结果虽是1397。

PROBABILITY-概率

打Touring Tire的订单被而带有Touring Tire
Tube的个数。再略点说哪怕是概率中的P(A|B)的题目了。

那么我们或来证实下第一行之盘算结果,同时市Touring Tire Tube和Touring
Tire的订单数量:

SELECT T1.[OrderNumber]

FROM [AdventureWorksDW2012].[dbo].[vAssocSeqLineItems] T1

INNER JOIN

(

    SELECT T2.[OrderNumber]

    FROM [AdventureWorksDW2012].[dbo].[vAssocSeqLineItems] T2

     WHERE T2.[Model]=’Touring Tire Tube’

) TZ ON T1.OrderNumber=TZ.OrderNumber

WHERE T1.[Model]=’Touring Tire’


咱们得看看查询返回的结果数量是758行。

下一场再计下订单中唯有含Touring Tire的数据:

SELECT [OrderNumber]

FROM [AdventureWorksDW2012].[dbo].[vAssocSeqLineItems]

WHERE [Model]=’Touring Tire’


回的记录行数是881执行。

故而758除了因881,得到的数字刚是0.860385925。

以此概率正好反映了如此一个真相,就是买入Touring
Tire的客户会起好挺的可能性购买Touring Tire Tube,所以当客户购买Touring
Tire之后系统自动的为其引进Touring Tire Tube准没错。

莫不你既看到了那条DMX语句之有途径,当然,有些重要字汝小可以无用失去关爱,必要的时候可以参见微软的文档。那么扩展一下,比如,客户打了点名的简单类产品,那么自己根据当下点儿种就摘的产品应推荐给客户什么吧?

SELECT FLATTENED

PredictAssociation([Association].[v Assoc Seq Line
Items],INCLUDE_STATISTICS,3)

FROM

[Association]

NATURAL PREDICTION JOIN

(SELECT (SELECT ‘Touring Tire’ AS [Model]

UNION SELECT ‘Touring Tire Tube’ AS [Model]

) AS [v Assoc Seq Line Items]) AS t


探望熟悉的UNION语句了吧,好吧,相信你不懂DMX的讲话你呢见到这漫漫告词的原理了,这些虽足足了,后续文章中以见面在c#逻辑代码中冲当下漫漫主干的喻词来动态的来拼DMX语句。

以上数据挖掘模型的立部分到之结束,这是普普通通一个商业智能项目遭到底层架构的基本有。

相关文章