假如你有一个购物类的网站,那么你如何给你的客户来推荐产品呢?这个功能在很多电商类网站都有,那么,通过SQL Server Analysis Services的数据挖掘功能,你也可以轻松的来构建类似的功能。
前几篇中,简要的介绍如何建立挖掘模型并且编写程序用简单的DMX查询挖掘模型从而实现预测,然后简要介绍如何在Excel中独立地进行预测分析。此篇讲简单介绍如何通过DMX语句创建挖掘结构和挖掘模型,并且训练模型,然后进行预测查询。
在分析服务中涉及到很多门查询语言,首先,SQL语言是我们最熟悉不过的了。在分析服务中,可以通过 SQL来为多维数据集建立分区,或者在数据挖掘中指定训练数据或者预测数据。其次,MDX,可以用它来查询多维数据集。然后就是本文所介绍的DMX,它主要面向分析服务中的数据挖掘部分,通过它可以建立挖掘结构和挖掘模型,以及训练数据和做预测查询。
在微软的文档及示例还有很多图书著作中,通过DMX的方式通常被分为三个步骤:
- 建立挖掘结构
- 建立挖掘模型
- 训练数据
- 预测查询
在现有的一个分析服务数据库进行如上操作之前,还需要手动创建分析服务数据库并且手动建立数据源连接,在SQL中我们知道是由CREATE DATABASE的,但是在分析服务实例下不可以(只能通过XMLA),所以这里需要手动创建。具体方法:
首先,打开SQL Server Management Studio。连接到分析服务。
右键单击Databases节点选择New Database。
给数据库起名DMTest,身份模拟选择指定用户名和密码。这里为了示例能够顺利运行,建议输入登录机器的管理员密码。当然实际生产环境不建议这么做,需要根据具体的权限分配在这里给定指定的用户。
数据库建立完毕,可以在对象浏览器里看到刚刚建立的数据库。
接下来打开SQL Data Tools,点击File->Open->Analysis Services Database…
这个功能可以打开一个正在运行的分析服务数据库。
服务器输入本地localhost或者一个"点",数据库选择刚才在分析服务实例下建立的SSAS数据库DMTest。
点击OK后可以看到分析服务数据库的结构被加载到项目中。这里需要留意的一点是,不同于离线打开,这种方法是在线打开,在这里做的任何修改保存后,都是直接同步到服务器上。
以下步骤跟第一步差不多,这里简单略过。
创建数据源连接。
指定模拟信息。
为数据源起名:DSAW。
可以在解决方案浏览器下看到新建立的数据源连接。
以上SSAS数据库的数据源连接家里完毕。需要注意的是,跟往常不同,这里只需要创建数据源连接就可以了,不需要创建数据源视图。
关闭SQL Data Tools,回到Management Studio中。选择工具栏中的DMX图标,新建一个DMX查询。
可以发现DMX的查询界面跟MDX的比较像。
接下来,输入下面的语句。这条语句用来创建挖掘结构。
CREATE MINING STRUCTURE [Market Basket] (
OrderNumber TEXT KEY,
[Products] TABLE (
[Model] TEXT KEY
)
)
运行完毕后可以看到新建立好的挖掘结构。
然后,为挖掘结构添加挖掘模型。每个模型都需要指定挖掘算法,比如对于商品推荐问题,选用的是关联规则。在创建挖掘模型的同时,还需要用PREDICT指定需要预测的元素。
ALTER MINING STRUCTURE [Market Basket]
ADD MINING MODEL [Default Association]
(
OrderNumber,
[Products] PREDICT (
[Model]
)
)
Using Microsoft_Association_Rules
留意Using后面的部分,这里指定了模型是关联规则模型。
运行完毕后可以在挖掘结构下的挖掘模型。
挖掘模型是位于挖掘结构之下的,同一个挖掘结构可以拥有不同的挖掘模型,拥有多个挖掘模型的好处在于,对于同一个问题,可以应用不同的挖掘模型然后评估哪一个挖掘模型的预测最准确。
接下来需要做的就是训练模型,用到的是INSERT语句。由于订单和订单商品是个嵌套关系,所以留意下面语句的SHAPE和APPEND,以及语句中的RELATE将事例表和嵌套表关联到一起:
INSERT INTO MINING STRUCTURE [Market Basket]
(
[OrderNumber],[Products] (SKIP, [Model])
)
SHAPE {
OPENQUERY([DSAW],'SELECT OrderNumber
FROM vAssocSeqOrders ORDER BY OrderNumber')}
APPEND
(
{OPENQUERY([DSAW],'SELECT OrderNumber, Model FROM
dbo.vAssocSeqLineItems ORDER BY OrderNumber, Model')
}
RELATE OrderNumber to OrderNumber
) AS [Products]
点击运行后系统会根据指定的训练数据处理挖掘结构,处理时间的长短通常由样本数据的大小,以及算法参数决定。
训练完毕后,可以右键点击挖掘结构浏览一下刚才建立的挖掘模型。
在Rules标签下,可以看到系统生成了多少条规则。
Itemsets下可以查看数据项集。
以及依赖关系网络,这个是一个很直观的工具,项之间的关联可以很直观的看出,并且可以通过左面的滑块查看项之间的关联程度。
以上,数据挖掘结构就建立好了,可以看到建立的结构跟第一篇中介绍的通过工具向导的方式是一样的。也就是说,在不通过图形界面的操作之下,也可以像在数据引擎中创建各种对象。
至此,熟悉SQL语句的朋友看DMX可能感觉再亲切不过了,DMX中除了加了几个关键字以及跟算法模型相关的参数外,基本结构似乎都似曾相识。
本篇中用到的示例DMX查询全部来自于微软的教程,关于DMX更详细的信息,大家可以参考教程地址:
http://technet.microsoft.com/zh-cn/library/bb895168(v=sql.100).aspx
关于文中提及到的DMX语句的更多详细信息,大家都可以去参考上面这个地址。
这个DMX教程中包括了自行车购买者,购物篮以及时序预测,虽然没有覆盖全部挖掘算法,但是足以为大家提供参考了。
关于如何把数据挖掘应用到项目中,请参考本系列的第二篇和第三篇。
关于数据挖掘算法的参考,可以参考这个地址:
http://technet.microsoft.com/zh-cn/library/ms175595(v=sql.100).aspx
关于DMX的参考:
http://technet.microsoft.com/zh-cn/library/ms132058(v=sql.100).aspx
以下附加几条测试查询。
测试查询一:
SELECT FLATTENED
PredictAssociation([Default Association].[Products],INCLUDE_STATISTICS,3)
FROM
[Default Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Touring Tire' AS [Model]
) AS [v Assoc Seq Line Items]) AS t
结果:
测试查询二:
SELECT
PREDICT([Default Association].[Products],INCLUDE_STATISTICS,3)
From
[Default Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Mountain Bottle Cage' AS [Model]
UNION SELECT 'Mountain Tire Tube' AS [Model]
UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
结果:
分享到:
相关推荐
购物类的网站都有商品推荐的功能,通过SQL Server Analysis Services的数据挖掘功能,可以轻松的来构建类似的功能,其中一种方案是把DMX查询挖掘模型的过程封装到SSAS CLR存储过程当中,然后在前端展示,这个例子...
实验一介绍了如何使用Microsoft SQL Server Analysis Services,这是一个强大的在线分析处理(OLAP)工具,用于构建和管理数据仓库。实验目标是理解和操作多维数据集,包括事实表、维表、星型模型和雪花模型。在实验...
在本场景中,我们将探讨如何使用SQL Server 2005的Analysis Service进行关联规则挖掘,从而实现商品推荐。 关联规则挖掘是一种数据挖掘技术,它通过发现数据集中项集之间的频繁模式或关联来揭示隐藏的关系。在电子...
SQL Server 2005 Analysis Services 是 Microsoft 提供的一个企业级商业智能平台,它包括多维数据建模和数据挖掘功能。SSAS 可以帮助组织从大量数据中提取有价值的信息,并通过各种可视化工具呈现出来,从而支持决策...
4. **OLAP与数据挖掘的结合**:SQL Server 2005的Analysis Services允许将数据挖掘模型嵌入到多维数据立方体中,使得用户可以在浏览多维数据的同时进行深度分析,这种功能称为数据挖掘扩展(Data Mining Extensions,...
本部分介绍了如何使用SQL Server Business Intelligence Development Studio (BIDS) 创建Analysis Services项目来进行数据挖掘操作。 **详细解释:** 1. **启动BIDS:** - 打开BIDS,这是SQL Server 2008 R2中用于...
SQL Server 2008 R2的数据挖掘功能通过集成的Analysis Services提供,包括了多种挖掘算法,如决策树、聚类、关联规则和序列模式挖掘等。这些工具可以帮助用户预测趋势、识别模式,并进行分类和细分,从而支持业务...
SQL Server 2008 Analysis Services(简称SSAS)是微软公司推出的一款强大的商业智能工具,主要用于处理大数据的分析和报告。它集成了OLAP(在线分析处理)和数据挖掘功能,为企业提供高效的决策支持系统。这篇...
2. **SQL Server 2000中的数据挖掘架构**:阐述SQL Server 2000中的数据挖掘框架,包括Analysis Services组件的角色,以及如何与数据库引擎、Integration Services和Reporting Services协同工作。 3. **数据挖掘...
在SQL Server 2005中,数据挖掘功能被集成到SQL Server Analysis Services(SSAS)之中,为用户提供了全面的数据分析工具。 本资源《SQL Server 2005数据挖掘与商业智能》源码,包含了实现数据挖掘的各种示例和代码...
SQL Server 2005的数据挖掘功能支持多种挖掘模型,包括关联规则、序列模式、聚类、分类和回归等。这些模型可以用于预测、分类、细分客户、优化业务流程等多种应用场景。 本书可能涵盖以下几个核心知识点: 1. 数据...
《Microsoft SQL Server 2008 Analysis Services Step by Step》是一本专为SQL Server 2008 Analysis Services(简称SSAS)设计的教程书籍,旨在帮助读者逐步掌握这一强大的多维数据处理和商务智能工具。SSAS是...
3. **丰富的数据挖掘功能**:除了决策树外,还支持多种其他数据挖掘算法,如聚类、关联规则等。 4. **灵活的数据源支持**:可以连接多种数据源,包括关系型数据库、XML文件等。 5. **集成环境**:与Microsoft SQL ...
2. **SQL Server 2005集成的数据挖掘服务**:SQL Server 2005的Analysis Services提供了数据挖掘架构,包括数据挖掘模型的创建、训练、验证和部署。书中会详细阐述如何使用这些服务,包括数据源视图的建立、数据挖掘...
6. **数据挖掘**:SQL Server 2005 Analysis Services还支持数据挖掘,这是一种预测性分析技术,可以从历史数据中发现模式并建立模型,用于预测未来趋势。它使用各种算法,如关联规则、聚类、序列挖掘和分类,帮助...
SQL Server 2000 Analysis Services的另一个优势是其与Visual Studio集成,开发人员可以使用Business Intelligence Development Studio (BIDS)来设计和部署数据挖掘解决方案。此外,它还支持SQL Server Integration ...
- **SSMS(SQL Server Management Studio)**: 本书强调了如何在SSMS中使用DMX查询来获取SQL Server Analysis Services (SSAS)中的数据。 - **SSRS(SQL Server Reporting Services)**: 虽然本书重点在于SSAS, 但...
数据挖掘是数据分析的一个分支,通过使用算法和统计模型来发现模式、预测趋势和进行关联规则学习。 在C#编程环境中,开发人员可以利用.NET Framework中的ADOMD.NET库和Microsoft.AnalysisServices.AdomdClient命名...