在SQL Server 2008数据库中,对这商务智能方面的功能做了很大的优化。笔者结合相关的案例来谈谈这些优化,希望对各位数据库工程师有所帮助。 商务智能被某些专家宣传的优点神乎其技。其实商务智能并没有那么复杂,在我们身边有很多类似的案例。如就拿SQL Ser
在SQL Server 2008中,对这商务智能方面的功能做了很大的优化。笔者结合相关的案例来谈谈这些优化,希望对各位工程师有所帮助。
商务智能被某些专家宣传的优点神乎其技。其实商务智能并没有那么复杂,在我们身边有很多类似的案例。如就拿SQL Server 数据库来说,数据挖掘功能就是商务智能的最好体现。根据相关的数据,对其按照一定的模型与算法进行分析,最后得出一个结果或者决策。这就是商务智能。
优化一:完善了时序算法的内容。
对于数据挖掘所需要的数据,可以分为两大类,分别为连续性的数据与非连续性的数据。数据类型不同,需要采用不同的算法与数据挖掘模型,只有如此最后得到的结构误差才会最小。而时序算法,就是针对连续数据进行预测分析的回归算法。时序算法仅仅根据用于创建这个模型的原始数据集就可以做出相关的趋势预测。当然,提供的信息越详细,最后的预测结果准确率也会随之上升。用户在进行预测时还可以向模型中添加更多的数据,以获得更小的误差。在实际工作中,这个算法进程使用。如需要根据以前的销售数据,来预测一下下一年各个地区的销售额或者一年四季每个季度的销售趋势,都需要用到这个算法。
在2008版本之前,时序算法中没有采用ARTxp自动回归树算法。为此在使用时序算法与模型来对长期的趋势进行预测时,误差会比较大。也就是说,这之前的时序算法比较适合用来进行短期的趋势预测。为了完善时序模型与算法中某些预测的准确性和稳定性,在2008的数据库商务智能中加入了这个ARTxp自动回归树算法。通过这个算法,时序模型可以实现一些针对比较长期的趋势预测,并且达到比较高的精确度。
在实际工作中,如果要采用时序算法来进行长期趋势预测的话,为了提高最大的准确率,笔者建议两种算法都做一下。即利用ARTxp自动回归树算法和使用ARTMA算法各自计算一次。此时数据库会提供两种不同的结果。虽然数据相同,采用的算法不同最后的结果也是不同的。最后通过数据挖掘模型来评估这两种计算方法得出的结果。在数据分析专家眼中,有时候他们关注的可能并不是最后的结过,而是关系为什么会造成这个差异。通过对差异的分析,找到相关的原因。然后在后续的工作中,积极消除这些因素,使得后续的发展趋势符合预先的规划。
在2008的时序模型中还对这两种算法的结果进行了组合。如可以通过加权的方式最终根据权数来得到一个加权的结果。如果用户有信心的话,当然也可以选择只采用一种算法,以提高数据分析的效率。不过在大部分情况下,用户还是会选择两种算法独立的计算,以得到一个可以比较的结果。具体选择那种算法,还是需要根据用户的用户来定。如需要考虑预测时期的长短、数据的多少、预测的业务等等情况进行确定。
优化二:通过刷选器来帮助用户选择恰当的数据挖掘模型。
在SQL Server 数据库中设计了很多的数据挖掘模型,如决策树模型、线性回归模型、神经网络模型、逻辑回归模型等等。相同的数据,采用了不同的模型,最后得到的结果会有很大的差异。为了提高商务智能的准确性,在对历史数据进行挖掘时,用户需要根据数据的特征、业务的类型等情况选择恰当的数据挖掘模型。只有如此,用户最终才能够得到使用价值比较高的结果。否则的话,反而可能会给用户一个误导。但是,这对用户的要求比较高。如果用户没有丰富的工作经验与理论知识,那么他是很难有这个能力来判断采用哪个模型。这也在很大程度上限制了数据挖掘功能的应用。
在2008数据库版本中,这种对员工经验的依赖情况有所改善。因为在这个版本中,数据库提供了一个挖掘模型的刷选器。这就好像是一个向导工具。在向导中,用户可以输入数据的特征、要预测的业务等内容,然后向导工具在根据用户这些输入的内容,推荐用户采用哪个模型来挖掘数据。这些傻瓜式的操作,可以在最大程度上避免因为用户经验的不足而错误的采用了不恰当的数据挖掘模型。总而言之,通过使用数据挖掘模型刷选器,可以控制用户给模型定型的数据,可以更加容易的帮助用户判断模型的适用性。从而避免采用了不恰当的数据挖掘模型而产生的错误结果。
另外刷选器还可以对数据进行刷选。如现在用户有一份客户信息,里面有所有客户的消费习惯等等。现在企业准备推出一个专门针对女性的服务或者产品。现在需要根据历史数据来预测一下这个产品或者服务的销售情况。此时就需要对原有的数据进行刷选。在以前,必需先对基础数据进行刷选。不过有了刷选器之后,就不需要这么麻烦了。可以在使用数据挖掘模型的时候,直接利用刷选器对于基础数据进行刷选,过滤男性客户的纪录信息。这不仅可以提高数据挖掘结果的准确性,而且还可以提高数据分析的效率。
优化三:支持多个挖掘模型的交叉验证。
在数据挖掘中有一个基础两个核心。基础就是数据,而核心则是挖掘模型与数据挖掘算法。在商务智能中,只有通过这三方面的共同作用,才能够得出正确的结果。在以前的版本中,由于采用的挖掘模型不同,最后产生的结果会相差很大,有时候甚至风马牛不相及。如在SQL Server 数据中,提供了聚类分析模型、决策树模型、逻辑回归模型、顺序分析和聚类分析模型等等数据挖掘模型。即使这些模型采用的数据与计算方法相同,最后得出的结果很有可能都是不同的。为了提高数据挖掘的准确性,在2008中对此进行了优化。主要是提供了多个数据挖掘模型交叉验证的方法,来提高结果与决策的准确性。
多个数据挖掘模型之间的交叉验证是用于评估数据挖掘模型准确性的常用方法之一。在这交叉验证中,数据库工程师可以将挖掘结果分为若干个子集。然后利用这些子集的数据生成对应的子集模型。最后通过衡量每个分区的模型的准确性来判断某个数据挖掘模型是否准确。通过对最后返回的统计信息的分析,可以判断这个挖掘模型的可靠程度,或者说用户所采用的数据挖掘模型是否适用。而且在交叉验证中,用户还可以选择几个相同结构的模型进行对比,以发现相同结构不同模型之间结果的差异。有时候最终的结果可能没有多大的价值,但是中间的分析过程或者结果之间的差异往往会给企业带来意外的收获。如在实际工作中,可以查找差异的原因,从而找到影响某个结果或者决策的关键因素。
在SQL Server 2008数据库版本中,用户可以在两个地方调用这个交叉验证。一是在数据挖掘设计器向导中,可以在“挖掘准确性图表”视图中调用交叉验证;二是通过数据分析存储过程来对挖掘结构分区,调用交叉验证。最后数据库可以根据用户的需要,生成相关的交叉验证报表。在这个报表中,会反映各种可能性以及对应的均方根误差。如果采用聚合模型的话,还会有聚合模型的所有度量值的平均偏差和标准偏差等相关的统计信息。
不过这里需要注意的是,即使采用再复杂的交叉验证模型,也不能够保证最后结构与事实相符。这也是到目前为止商务智能的一个局限性。最后通过数据挖掘所得到的结果,还是要跟用户的相关工作经验进行结合进行判断、甄别决策的准确性。