andy - 6/17/2007 2:21:00 PM
DMX(Data Mining Extensions)数据挖掘扩展插件,适用于SQL Server 2005的数据挖掘领域,也叫数据挖掘语言。DMX是一种适应时代发展,为了更好的推动数据挖掘的应用而出现的。
在关系型数据库领域,有SQL语言;在多维数据库领域,有相应的MDX语言;而在数据挖掘领域也出现了对应的DMX。这就是DMX在数据挖掘领域的地位。
那么如何使用DMX来创建、管理数据挖掘中的相关对象呢?
下面我们以一个简单的例子来进行说明:
假设我们有两个表,一个表叫做User表,表中存储的数据为音响商店的那个客户,我们用UserID来代表;另一张表叫做Movies表,里面存储的数据是那个用户买了什么电影。根据需求,我们在所有客户中找到那些电影之间的关联性最强,当然,通过Visual Studio平台,我们可以进行数据挖掘模型的建立,完成业务分析,我们在这里用DMX来实现这一功能。
第一种方式:
1、首先创建一个挖掘结构
create mining structure MovieSurvey
(
UserID text key,
Movies table
(
UserID text discrete,
Movie text key,
MoviePre text discrete
)
);
2、为挖掘结构添加挖掘模型
alter mining structure MovieSurvey
add mining model [MovieSurvey]
(
UserID,
Movies
(
UserID,
Movie,
MoviePre predict
)
)using Microsoft_association_rules(Minimum_support=20,minimum_probability=0.05)with drillthrough;
3、为数据挖掘模型填充数据,进行处理
insert into mining model [MovieSurvey]([UserID],[Movies](skip,Movie,MoviePre))
shape{openquery([DMXDS],'select UserID from [Survey] order by UserID‘)}
append(
{openquery([DMXDS],'select UserID, Movie,Movie as MoviePre from Movies order by UserID,MoviePre,Movie')}
relate UserID to UserID
) as [Models]
第二种方式:
1、直接创建挖掘模型。
create mining model Movie
(
UserID text key,
Movies table
(
UserID text discrete,
Movie text key,
MoviePre text discrete predict
)
)using Microsoft_association_rules(Minimum_support=20,minimum_probability=0.05)with drillthrough;
2、填充数据,进行处理
insert into mining model [Movie]([UserID],[Movies](skip,Movie,MoviePre))
shape{openquery([DMXDS],'select UserID from [Survey] order by UserID’)}
append(
{openquery([DMXDS],'select UserID, Movie,Movie as MoviePre from Movies order by UserID,MoviePre,Movie')}
relate UserID to UserID
) as [Models];
这样,利用DMX就可以实现了对数据挖掘模型的创建和管理。对于更强大功能的演示,我们会在以后有更多的帖子和文章。
也欢迎大家进行讨论交流。
风子 - 5/13/2008 11:14:00 AM
可以用挖掘模型进行预测,并且相应的DMX语句可以自动生成
SELECT
[Afinal08 Core].[PLANTNAME],
t.[PLANTNAME] as t,
PredictProbability([afinal08 core].[plantname])
From
[Afinal08 Core]
PREDICTION JOIN
OPENQUERY([Plant],
'SELECT
[PLANTNAME],
[FID_VEG],
[FID_POSI],
[FID_ELEV]
FROM
[dbo].[afinalww08_core]
') AS t
ON
[Afinal08 Core].[PLANTNAME] = t.[PLANTNAME] AND
[Afinal08 Core].[FID VEG] = t.[FID_VEG] AND
[Afinal08 Core].[FID POSI] = t.[FID_POSI] AND
[Afinal08 Core].[FID ELEV] = t.[FID_ELEV]
风子 - 5/13/2008 11:16:00 AM
但我想知道的是,假如我希望把生成的结果重新生成一张表存储在数据库里如何做呢?我是要在程序里实现,或者能在DMX语句中实现也行
chenjing957 - 3/10/2010 3:11:00 AM
andy 能帮我看看这个DMX查询问题出在哪儿吗?谢谢
报错信息:错误 (数据挖掘): 在第 3 行第 48 列的上下文中找不到指定的 DMX 列。
select
t.RequestsID,
(select $Sequence,PageName,PredictProbability([PageName]) as Histogram
from PredictSequence([ClickPath],2))as Sequences
from Websequence PREDICTION JOIN
SHAPE {
OPENQUERY([EBOOK DW],'select RequestsID from AssocSeqRequest')
}
APPEND (
{OPENQUERY([EBOOK DW],'select RequestsID,LineNumber,PageName from AssocSeqLineURl')}
RELATE RequestsId To RequestsID
)AS ClickPath AS t
ON
WebSequence.RequestsID = t.RequestsID AND
WebSequence.ClickPath.LineNumber = t.ClickPath.LineNumber AND
WebSequence.ClickPath.PageName = t.ClickPath.PageName
chenjing957 - 3/11/2010 3:00:00 AM
这个问题已经解决了。PageName必须定义为可预测变量。