假如你有一個購物類的網站,那麼你如何給你的客戶來推薦產品呢?這個功能在很多電商類網站都有,那麼,通過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系統中,適合更大量的資料,比如網站的購物籃推薦,後者更適合做內部的小規模的挖掘預測性分析。