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