利用SSAS 2005进行数据挖掘
SSAS是SQL SERVER 2005中用于BI的组件之一。通过SSAS可以创建多维数据库,并在之上进行数据挖掘操作。本文中要讲的就是利用SSAS进行数据挖掘的方法。在SSAS中进行数据挖掘可以有两种方式,一种是利用数据挖掘向导一步一步地创建挖掘结构和挖掘模型并进行模型的训练和
SSAS是SQL SERVER 2005中用于BI的组件之一。通过SSAS可以创建多维数据库,并在之上进行数据挖掘操作。本文中要讲的就是利用SSAS进行数据挖掘的方法。在SSAS中进行数据挖掘可以有两种方式,一种是利用数据挖掘向导一步一步地创建挖掘结构和挖掘模型并进行模型的训练和预测。另一种方式就是使用DMX脚本的方式进行挖掘结构、挖掘模型的创建、模型训练以及模型预测。
-
创建挖掘结构或挖掘模型
-
训练挖掘模型
-
应用挖掘模型
创建挖掘结构:
创建挖掘结构,一个挖掘结构包含多个挖掘模型 //创建挖掘结构,一个挖掘结构包含多个挖掘模型 Create Mining Structure CustomerDecisionTreeStru
cture ( CustomerID Long Key, Gender Text Discrete, Income Text Discrete, Occupation Text Discrete, MemberCard Text Discrete, Education Text Discrete, City Text Discrete, TotalChildren Text Discrete )
这段代码创建了一个名为CustomerStructure的挖掘结构。其中包含我将会用于创建挖掘模型的所有列的集合。并且指定了对应的数据类型,以及数据的连续性。下一步就要创建指定算法的挖掘模型。
创建挖掘模型:
创建挖掘模型 //创建挖掘模型 Alter Mining Structure CustomerDecisionTreeStru
cture Add Mining Model MemberCard_Prediction ( CustomerID, Occupation, Income Predict_Only, Education, MemberCard Predict_Only ) Using Microsoft_Decision_Trees
训练挖掘模型:
上面的代码实现了模型的训练功能。通过将名为[Foodmart数据源]的数据源对象将数据源中的数据灌入挖掘模型实现模型的训练。这里是通过OPENQUERY函数来获取训练数据的。这个函数是SSAS 2005新增的一个功能。另外还可以用OPENROWSET函数来获取训练数据,通过这个函数可以获取带有嵌套表的数据。下面是一个包含嵌套表的训练语句:
使用数据训练挖掘模型 //使用数据训练挖掘模型 Insert Into MemberCard_Prediction ( CustomerID, Occupation, Income, Education, MemberCard ) OPENQUERY ( [Foodmart数据源], 'SELECT customer_id, occupation, yearly_income,education, member_card FROM Customer' )
在这个查询中Order是一个嵌套表。在SSAS中使用OPENROWSET函数先将其打开,因为在SSAS中默认是关闭的。打开OPENROWSET函数的方法是:打开AS项目的属性窗口,将AllowAdhocOpenRowsetQuer
带嵌套表的模型训练 Insert Into MemberCard_Prediction ( CustomerID, Occupation, Income, Education, MemberCard, Order(skip, CustomerID, ProductName, Quantity) ) OPENROWSET ( 'MSDataShape', 'data provider=SQLOLEDB;Server=dwserver;UID=xxxxxx;PWD=xxxxxx', 'Shape { Select customer_id, occupation, yearly_income,education, member_card Append( {Select CustomerID, ProductName,Quantity From Order} Relate CustomerID to CustomerID ) AS Order }' )
模型应用(预测) SELECT PredictProbability([Units Shipped]) AS [Units_Shipped的概率], [Units Shipped] FROM [DemoPrediction] NATURAL PREDICTION JOIN (SELECT 300 AS [Units Ordered]) AS T
以上就是在SSAS中进行数据挖掘的整个过程。在本文中我使用的是决策树算法。数据挖掘有很多算法可能使用,在SSAS中提供了九种算法。除了这九种算法也可以自行扩展算法。在实际开发应用中,如果只是基本的开发使用,可以不必了解算法的内部原理,只要知道算法的输入是什么意思输出是什么意思即可。不过,了解算法的原理肯定是很有价值的,因为只有在了解算法原理的前提下才能更有效地设置算法参数,提高算法的确定性。在了解现有算法原理的前提下可以对现有的算法进行扩展,开发自己的算法。
更多推荐
所有评论(0)