假如你有一個購物類的網站,那么你如何給你的客戶來推薦產品呢?這個功能在很多電商類網站都有,那么,通過SQL Server Analysis Services的數據挖掘功能,你也可以輕松的來構建類似的功能。
此篇承接上篇,主要演示如何根據工具的要求組織數據,然后在Excel中做挖掘預測分析。
上一篇中我們演示了如何用微軟提供的Data Mining for Add-ins里的示例數據來實現挖掘預測分析的功能,此篇我們用Adventure Works來演示如何來組織數據在Excel中進行挖掘預測。
微軟提供的Adventure Works示例庫分為OLTP庫和OLAP庫,前者記錄業務數據,在一個系統中的業務數據通常都是操作在這一層,業務數據層經過ETL的清洗加載和轉換進入到數據倉庫,供分析系統做統計分析。
關於如何獲取並且安裝這些示例庫,可以參考我的這篇隨筆。
在微軟提供的Adventure Works示例中,已經為我們創建好了Data Warehouse庫,在2012版中默認對應的名稱是AdventureWorksDW2012。
在第一篇的演示中,我們用過一個視圖:vAssocSeqLineItems。
這個視圖里面記錄了訂單號和商品名稱等信息。通過這個視圖,嵌套另外一個視圖,我們生成了關聯規則挖掘模型進行預測分析。
在上一篇中,挖掘工具中還需要提供商品價格信息,明顯這個視圖無法滿足工具的要求,所以我們根據數據倉庫的結構重新定義樣本數據。
上一篇我們提到的設置界面中,需要指定三個信息,訂單編號,商品名和商品價格。工具會根據這三列的信息生成臨時的挖掘模型然后生成預測報告。
在數據倉庫中,選擇兩張表,事實表FactInternetSales和維度表DimProduct,在事實表中我們取訂單編號,然后連接到維度表中取產品名稱和價格信息。建立如下查詢:
SELECT
f.[SalesOrderNumber] AS [OrderNumber]
,Coalesce(p.[ModelName], p.[EnglishProductName]) AS [Model]
,f.ExtendedAmount AS Amount
FROM [dbo].[FactInternetSales] f
INNER JOIN [dbo].[DimProduct] p ON f.[ProductKey] = p.[ProductKey]
這個查詢會連接事實表和維度表生成符合工具要求格式的數據,也就說訂單編號,商品名和價格。
接下來,需要在Excel中把上面SQL語句的查詢結果導入進來。下面的操作會演示如何導入一條SQL語句的結果到Excel中。當然在Excel中導入的方法很多,下面只介紹一種:
打開Excel,點擊Ribbon菜單下的Data,From Other Sources->From SQL Server。
在新彈出的數據連接工具中,指定分析服務器所在的Server。
點擊下一步。
留意Connect to specific table,由於我們這里用的是一個查詢而不是已經存在的一張表活着一個視圖,所以需要把這里勾選掉。然后選擇AdventureWorksDW2012 數據倉庫,點下一步。
確認連接文件后點擊Finish。
接下來的界面中會讓你選擇指定數據庫下的一張表,這里隨便選擇一個。然后點OK。
在然后出現的Import Data界面中,選擇屬性Properties,出現連接屬性界面:
在連接屬性界面中,點擊Definition,Command type更改成SQL,Command text里輸入剛才建立的SQL查詢,然后點擊OK。
以上,樣本數據生成好了,接下來,按照上一篇的方法開始購物籃預測分析。
具體的方法可以參考上一篇的內容,這里需要留意的是,Transation ID選擇OrderNumber,Item選擇Model,Item Value選擇Amount。
在工具新建的兩個標簽頁中,可以看到根據組織的數據生成的挖掘報告。
同時,在挖掘分析的過程中,可以通過點擊Advanced設置一些挖掘參數:
在新彈出的界面中,可以指定最小支持度和最小規則概率。
這些參數的設置會影響到預測結果集。通過這里的設置,可以過濾掉一些支持度低和發生概率小的事件,根據不同的業務場景需要動態的調節這些值以達到符合我們要求的挖掘結果。
任何挖掘工具都只是一個工具,里面會讓我們去設置一些跟算法相關的參數,這些參數的設置,從技術的角度上來說沒有任何的建議,如何去設置就需要一定的行業經驗。這也就是為什么說,有行業經驗的數據分析師待遇都相當不錯。同時也間接的解釋了一個行業里流傳好久的事實,就是為什么用頂端工具的,比如Excel,會比純粹寫SQL語句的人賺更多的錢。
總結:
此篇的演示基於前一篇的基礎之上,從微軟提供的示例數據DW中開始組織數據,然后導入到Excel利用數據挖掘插件實現挖掘預測分析。
至此,在Excel中進行關聯規則挖掘分析的介紹暫告一段落。跟前三篇的通過分析服務的方法相比,在Excel中的操作更直接一些,前者更適應用到IT系統中,適合更大量的數據,比如網站的購物籃推薦,后者更適合做內部的小規模的挖掘預測分析。