SQL Server 2008 數(shù)據(jù)挖掘的概念
數(shù)據(jù)挖掘是從大型數(shù)據(jù)集中發(fā)現(xiàn)可行信息的過程。數(shù)據(jù)挖掘使用數(shù)學分析來派生存在于數(shù)據(jù)中的模式和趨勢。通常,由于這些模式的關系過于復雜或涉及數(shù)據(jù)過多,因此使用傳統(tǒng)數(shù)據(jù)瀏覽無法發(fā)現(xiàn)這些模式。
這些模式和趨勢可以被收集在一起并定義為“數(shù)據(jù)挖掘模型”。挖掘模型可以應用于特定的業(yè)務方案,例如:
◆ 預測銷售額
◆ 向特定客戶發(fā)送郵件
◆ 確定可能需要搭售的產(chǎn)品
◆ 查找客戶將產(chǎn)品放入購物車的順序序列
生成挖掘模型是大型過程的一部分,此過程包括從提出相關數(shù)據(jù)問題并創(chuàng)建模型以解答這些問題到將模型部署到工作環(huán)境的所有事情。此過程可以使用下列六個基本步驟進行定義:
◆ 定義問題
◆ 準備數(shù)據(jù)
◆ 瀏覽數(shù)據(jù)
◆ 生成模型
◆ 瀏覽和驗證模型
◆ 部署和更新模型
以下關系圖說明過程中每個步驟之間的關系,以及 Microsoft SQL Server 2008 中可用于完成每個步驟的技術。
盡管關系圖中所示的過程是一個循環(huán)過程,但是每個步驟并不需要直接執(zhí)行到下一個步驟。創(chuàng)建數(shù)據(jù)挖掘模型是一個動態(tài)、交互的過程。瀏覽完數(shù)據(jù)之后,您可能會發(fā)現(xiàn)數(shù)據(jù)不足,無法創(chuàng)建適當?shù)耐诰蚰P?,因此必須查找更多的?shù)據(jù)?;蛘?,您可以生成數(shù)個模型,但隨后發(fā)現(xiàn)這些模型無法充分地回答定義的問題,因此必須重新定義問題。您可能必須在部署模型之后對其進行更新,因為又出現(xiàn)了更多的可用數(shù)據(jù)??赡苄枰啻沃貜瓦^程中的每個步驟才能創(chuàng)建良好的模型。
SQL Server 2008 提供用于創(chuàng)建和使用數(shù)據(jù)挖掘模型的集成環(huán)境,稱為 Business Intelligence Development Studio。該環(huán)境包括數(shù)據(jù)挖掘算法和工具,使用這些算法和工具更易于生成用于各種項目的綜合解決方案。
創(chuàng)建數(shù)據(jù)挖掘解決方案后,您可以使用 SQL Server Management Studio 維護和瀏覽該解決方案。
定義問題
與以下關系圖的突出顯示相同,數(shù)據(jù)挖掘過程的第一步就是明確定義業(yè)務問題,并考慮解答該問題的方法。
該步驟包括分析業(yè)務需求,定義問題的范圍,定義計算模型所使用的度量,以及定義數(shù)據(jù)挖掘項目的特定目標。這些任務轉換為下列問題:
◆ 您在查找什么?您要嘗試找到什么類型的關系?
◆ 您要嘗試解決的問題是否反映了業(yè)務策略或流程?
◆ 您要通過數(shù)據(jù)挖掘模型進行預測,還是僅僅查找受關注的模式和關聯(lián)?
◆ 您要嘗試預測數(shù)據(jù)集的哪個屬性?
◆ 列如何關聯(lián)?或者如果有多個表,則表如何關聯(lián)?
◆ 如何分發(fā)數(shù)據(jù)?數(shù)據(jù)是否具有季節(jié)性性質(zhì)?數(shù)據(jù)是否可以準確反映業(yè)務流程?
#p#
若要回答這些問題,可能必須進行數(shù)據(jù)可用性研究,必須調(diào)查業(yè)務用戶對可用數(shù)據(jù)的需求。如果數(shù)據(jù)不支持用戶的需求,則還必須重新定義項目。
此外,還需要考慮如何將模型結果納入用于度量業(yè)務進度的關鍵績效指標 (KPI)。
準備數(shù)據(jù)
如以下關系圖中突出顯示的那樣,數(shù)據(jù)挖掘過程的第二步就是合并和清除定義問題步驟中標識的數(shù)據(jù)。
數(shù)據(jù)可以分散在公司的各個部門并以不同的格式存儲,或者可能包含錯誤項或缺少項之類的不一致性。例如,數(shù)據(jù)可能顯示客戶在產(chǎn)品推向市場之前購買該產(chǎn)品,或者客戶在距離她家 2,000 英里的商店定期購物。
數(shù)據(jù)清除不僅僅是刪除錯誤數(shù)據(jù),還包括查找數(shù)據(jù)中的隱含相關性、標識最準確的數(shù)據(jù)源并確定哪些列最適合用于分析。例如,應當使用發(fā)貨日期還是訂購日期?最佳銷售影響因素是數(shù)量、總價格,還是打折價格?不完整數(shù)據(jù)、錯誤數(shù)據(jù)和輸入看似獨立,但實際上有很強的關聯(lián)性,它們可以以意想不到的方式影響模型的結果。因此,在開始生成挖掘模型之前,應確定這些問題及其解決方式。
通常,您使用的是一個非常大的數(shù)據(jù)集,并且無法仔細查看每個事務。因此,必須使用某種自動化的形式(如,在 Integration Services 中)來瀏覽數(shù)據(jù)并找到這些不一致。Microsoft SQL Server 2008 Integration Services (SSIS) 包含完成該步驟所需的所有工具,步驟內(nèi)容包括轉換到自動執(zhí)行數(shù)據(jù)清除和合并。
需要特別注意的是用于數(shù)據(jù)挖掘的數(shù)據(jù)不必存儲在聯(lián)機分析處理 (OLAP) 多維數(shù)據(jù)集中,或者甚至不必存儲在關系數(shù)據(jù)庫中,但是您可以將它們作為數(shù)據(jù)源使用。您可以使用已被定義為 Analysis Services 數(shù)據(jù)源的任何數(shù)據(jù)源執(zhí)行數(shù)據(jù)挖掘。這些數(shù)據(jù)源可以包括文本文件、Excel 工作簿或來自其他外部提供程序的數(shù)據(jù)。
瀏覽數(shù)據(jù)
如以下關系圖中突出顯示的那樣,數(shù)據(jù)挖掘過程的第三步就是瀏覽已準備的數(shù)據(jù)。
您必須了解數(shù)據(jù),以便在創(chuàng)建挖掘模型時作出正確的決策。瀏覽技術包括計算最小值和最大值,計算平均偏差和標準偏差,以及查看數(shù)據(jù)的分布。例如,通過查看最大值、最小值和平均值,您可以確定數(shù)據(jù)并不能代表客戶或業(yè)務流程,因此您必須獲取更多均衡數(shù)據(jù)或查看您的預期結果所依據(jù)的假定。標準偏差和其他分發(fā)值可以提供有關結果的穩(wěn)定性和準確性的有用信息。大型標準偏差可以指示添加更多數(shù)據(jù)可以幫助改進模型。與標準分發(fā)偏差很大的數(shù)據(jù)可能已被扭曲,抑或準確反映了現(xiàn)實問題,但很難使模型適合數(shù)據(jù)。
借助您自己對業(yè)務問題的理解來瀏覽數(shù)據(jù),您可以確定數(shù)據(jù)集是否包含缺陷數(shù)據(jù),隨后您可以設計用于解決該問題的策略或者更深入地理解業(yè)務的典型行為。
BI Development Studio 中的數(shù)據(jù)源視圖設計器包含數(shù)種可用于瀏覽數(shù)據(jù)的工具。
此外,在創(chuàng)建模型時,Analysis Services 還會針對該模型中包含的數(shù)據(jù)自動創(chuàng)建統(tǒng)計摘要,您可以進行查詢以便用于報告或進一步分析。
生成模型
如以下關系圖中突出顯示的那樣,數(shù)據(jù)挖掘過程的第四步就是生成一個或多個挖掘模型。您將使用從瀏覽數(shù)據(jù)步驟中獲得的知識來幫助定義和創(chuàng)建模型。
通過創(chuàng)建挖掘結構定義要使用的數(shù)據(jù)。挖掘結構定義數(shù)據(jù)源,但只有對挖掘結構進行處理后,該結構才會包含任何數(shù)據(jù)。處理挖掘結構時,Analysis Services 生成可用于分析的聚合信息以及其他統(tǒng)計信息?;谠摻Y構的所有挖掘模型均可使用該信息。
在處理模型之前,數(shù)據(jù)挖掘模型只是一個容器,指定用于輸入的列、要預測的屬性以及指示算法如何處理數(shù)據(jù)的參數(shù)。處理模型也稱為“定型”。定型表示向結構中的數(shù)據(jù)應用特定數(shù)學算法以便提取模式的過程。在定型過程中找到的模式取決于選擇的定型數(shù)據(jù)、所選算法以及如何配置該算法。SQL Server 2008 包含多種不同算法,每種算法都適合不同的任務類型,并且每種算法都創(chuàng)建不同的模型類型。
此外,還可以使用參數(shù)調(diào)整每種算法,并向定型數(shù)據(jù)應用篩選器,以便僅使用數(shù)據(jù)子集,進而創(chuàng)建不同結果。在通過模型傳遞數(shù)據(jù)之后,即可查詢挖掘模型對象包含的摘要和模式,并將其用于預測。
您可以在 BI Development Studio 中使用數(shù)據(jù)挖掘向?qū)Щ蚴褂脭?shù)據(jù)挖掘擴展插件 (DMX) 語言來定義新的模型。
務必記住,只要數(shù)據(jù)發(fā)生更改,必須更新數(shù)據(jù)挖掘結構和挖掘模型。重新處理挖掘結構以進行更新時,Analysis Services 檢索源中的數(shù)據(jù),包括任何新數(shù)據(jù)(如果動態(tài)更新源),并重新填充挖掘結構。如果您具有基于結構的模型,則可以選擇更新基于該結構的模型,這表示可以根據(jù)新數(shù)據(jù)保留模型,或者也可以使模型保持原樣。
#p#
瀏覽和驗證模型
如以下關系圖中突出顯示的那樣,數(shù)據(jù)挖掘過程的第五步就是瀏覽您已經(jīng)生成的挖掘模型并測試其有效性。
在將模型部署到生產(chǎn)環(huán)境之前,您需要測試模型的性能。此外,在生成模型時,您通常需要使用不同配置創(chuàng)建多個模型,并對所有這些模型進行測試,以便查看哪個模型為您的問題和數(shù)據(jù)生成最佳結果。
Analysis Services 提供的工具可幫助您將數(shù)據(jù)分成定型數(shù)據(jù)集和測試數(shù)據(jù)集,使您可以更準確地評估基于相同數(shù)據(jù)的所有模型的性能。您使用定型數(shù)據(jù)集生成模型,并通過創(chuàng)建預測查詢來使用測試數(shù)據(jù)集測試模型的準確性。在 SQL Server 2008 Analysis Services 中,生成挖掘模型時可自動執(zhí)行該分區(qū)操作。
可以使用 BI Development Studio 中數(shù)據(jù)挖掘設計器內(nèi)的查看器來瀏覽算法發(fā)現(xiàn)的趨勢和模式。還可以使用該設計器中的工具(如,提升圖和分類矩陣)來測試模型創(chuàng)建預測的性能。若要驗證模型是否特定于您的數(shù)據(jù),或者是否可用于推斷總體,您可以使用稱為“交叉驗證”的統(tǒng)計方法來自動創(chuàng)建數(shù)據(jù)子集,并參照每個子集測試模型。
如果您在生成模型步驟中創(chuàng)建的所有模型都無法正常工作,則必須返回到此過程的上一個步驟,并重新定義問題或重新調(diào)查原始數(shù)據(jù)集中的數(shù)據(jù)。
部署和更新模型
如下面的關系圖中突出顯示的那樣,數(shù)據(jù)挖掘過程的最后一步是將性能最佳的模型部署到生產(chǎn)環(huán)境。
當生產(chǎn)環(huán)境中部署了挖掘模型之后,便可根據(jù)您的需求執(zhí)行許多任務。下面是一些可以執(zhí)行的任務:
使用模型創(chuàng)建預測,然后可以使用這些預測作出業(yè)務決策。SQL Server 提供可用于創(chuàng)建預測查詢的 DMX 語言,同時還提供有助于生成查詢的預測查詢生成器。
創(chuàng)建內(nèi)容查詢以檢索模型中的統(tǒng)計信息、規(guī)則或公式。
直接將數(shù)據(jù)挖掘功能嵌入到應用程序。您可以包括含有一組對象的分析管理對象 (AMO),應用程序可使用這組對象創(chuàng)建、更改、處理以及刪除挖掘結構和挖掘模型。另外,可以直接將 XML for Analysis (XMLA) 消息發(fā)送到 Analysis Services 實例。
使用 Integration Services 創(chuàng)建一個包,在這個包中,挖掘模型用于將傳入數(shù)據(jù)合理地分離到多個表中。例如,如果數(shù)據(jù)庫不斷地通過潛在客戶進行更新,則可以結合使用挖掘模型和 Integration Services 將傳入數(shù)據(jù)拆分為可能購買產(chǎn)品的客戶和不可能購買產(chǎn)品的客戶。
創(chuàng)建可讓用戶直接對現(xiàn)有挖掘模型進行查詢的報表。
在查看和分析后更新模型。任何更新都要求您重新處理該模型。
隨著組織傳入的數(shù)據(jù)不斷增多,應將動態(tài)更新模型并進行一致更改(以便提高解決方案的效率)作為部署策略的一部分。
【編輯推薦】