假如你有一個購物類的網站,那麼你如何給你的客戶來推薦產品呢?這個功能在很多電商類網站都有,那麼,通過SQL Server Analysis Services的資料採礦功能,你也可以輕鬆的來構建類似的功能。
將分為三個部分來示範如何?這個功能。
1.構建採礦模型
2.為採礦模型編寫服務介面
3.開發簡單的前端應用
4.使用Excel進行關聯商品分析
5.組織資料並用Excel進行關聯商品分析
6.使用DMX建立挖據模型
第一篇介紹如何使用SQL Server Analysis Services基於此問題來構建簡單的採礦模型。
關於資料採礦,簡單的就是說從海量資料中發現資訊的一個過程。如果說商業智慧分為三個層次:告訴你發生了什麼,為什麼會發生,將來會發生什麼。那麼,資料採礦絕對算是商業智慧中最高的一個層次,告訴你將來會發生什麼,也就是預測。而預測的基礎就是根據海量的曆史資料,結合一定的演算法,以機率為基礎,告訴你一條新資料某條屬性的趨勢。
資料採礦的模型很多,貝葉斯,時間序列,關聯規則等都是常用的模型,根據不同的問題特徵可以套用不同的模型演算法。比如此篇提到的商品推薦,就是典型的適合用關聯規則來解決。在資料採礦中典型的啤酒和尿布的問題,大體上就是基於這個方法。
通過第一篇的內容,你可以基本掌握如何構建一個基於關聯規則的資料採礦模型。
第二篇在上一篇已經構建好採礦模型的基礎之上,介紹如何構建服務介面。
編寫服務介面的方法很多,比如使用WCF。為了簡便,這裡直接使用ASP.NET Web Services。
將採礦模型的具體查詢的實現部分寫到Web服務代碼中,主要是考慮到代碼分層降低耦合性。另外這部分邏輯通過服務的方式來暴露介面,可以方便其它任何平台來進行調用,比如ASP.NET, Winform, WPF或者其它基於java的技術架構等。Web服務最主要的部分是XML,一個服務介面往往就是一個URL地址,用戶端程式通過向這個地址發送xml請求的方式,來擷取服務端代碼的響應,結果再以xml的方式返回回來。那麼既然來回通訊的都是xml資料,是否意味這還要手動寫代碼來序列化和還原序列化xml資料呢?這裡面又涉及到一個SOAP的概念,這是一個在10年前很火的概念,簡易物件存取通訊協定 (SOAP)。通過這個SOAP協議,用戶端程式可以知道要訪問一個Web服務,應該發送什麼樣的xml資料,以及收到服務端xml的資料之後,本地再如何解析這些資料。基於這樣一個方式,Visual Studio中,當你引用一個服務的時候,它就會根據這個協議,在你本地產生若干代理類,這樣在你調用遠端一個Web服務的時候,你就會感覺像是在調用本地裡的一個類的方法一樣方便。
通過第二篇的內容,你可以基本掌握做資料採礦查詢的基本方法,以及如何使用資料採礦模型。
第三篇在上兩篇已經構建好採礦模型和服務層的基礎之上,介紹如何構構建簡單的前端應用來做商品推薦功能。
由於我們用的是Web服務的方法來封裝採礦模型的查詢,所以理論上這個服務可以被很多用戶端應用程式訪問,比如ASP.NET, winform和WPF等,這裡我們選擇Silverlight 5。
Silverlight 5是跟FLASH差不多的東西,是微軟平台下的RIA方案。在這個平台下我們可以通過XAML開發出絢麗的應用程式。
雖然它的光輝已經快被HTML5所掩蓋,而且微軟也停止了後續版本的更新,全力的投入到HTML5中,但是HTML5成型還尚早,在企業開發中,Silverlight還是有十足的魅力和足夠的優勢以及強大的開發工具支援。
當然,如果你得項目是ASP.NET或者其它類型的項目,那麼也可以參考此篇來進行操作。實際上此篇對於一個有經驗的前端開發人員意義不大,因為這裡主要講的是如何調用一個Web服務。但作為一個系列考慮到每個人的側重點都不同,為了做一個整體的介紹,所以這裡還將細緻到每一步的操作。
通過第三篇的內容,你可以看到如何通過一個用戶端程式訪問服務介面然後做挖掘預測查詢從而實現商品推薦功能。
第四篇獨立於前三篇,主要介紹如何通過Excel的資料採礦來獨立的實現商品推薦功能,將通過微軟提供的樣本資料來進行示範。
Excel是大家再熟悉不過的工具,它是微軟Office裡的組件之一。在baidu百科中你可以找到如下的描述:
Excel 是微軟辦公套裝軟體的一個重要的組成部分,它可以進行各種資料的處理、統計分析和輔助決策操作,廣泛地應用於管理、統計財經、金融等眾多領域。
資料處理,統計分析是我們經常用Excel來做的事,而輔助決策對應商業智慧中的最高的一個層次,也就是微軟提供的Excel資料採礦功能。
在Excel中進行資料採礦,需要安裝一個外掛程式:SQL Server Data Mining Tools Add-ins for Office。
通過第四篇的內容,你可以看到如何通過Excel實現商品推薦功能。
第五篇承接上一篇,主要介紹如何組織資料然後通過Excel的資料採礦來獨立的實現商品推薦功能。
上一篇中我們示範了如何用微軟提供的Data Mining for Add-ins裡的樣本資料來實現挖掘預測性分析的功能,此篇我們用Adventure Works來示範如何來組織資料在Excel中進行挖掘預測。
微軟提供的Adventure Works樣本庫分為OLTP庫和OLAP庫,前者記錄業務資料,在一個系統中的業務資料通常都是操作在這一層,業務資料層經過ETL的清洗載入和轉換進入到資料倉儲,供分析系統做統計分析。
關於如何擷取並且安裝這些樣本庫,可以參考我的這篇隨筆。
通過第五篇的內容,你可以簡單的瞭解如何組織資料採礦的樣本資料,並且在Excel中匯入。
第六篇為獨立的一篇,主要示範如何通過DMX建立採礦模型。
前幾篇中,簡要的介紹如何建立採礦模型並且編寫程式用簡單的DMX查詢採礦模型從而實現預測,然後簡要介紹如何在Excel中獨立地進行預測性分析。此篇講簡單介紹如何通過DMX語句建立採礦結構和採礦模型,並且訓練模型,然後進行預測查詢。
在分析服務中涉及到很多門查詢語言,首先,SQL語言是我們最熟悉不過的了。在分析服務中,可以通過 SQL來為Cube建立分區,或者在資料採礦中指定訓練資料或者預測資料。其次,MDX,可以用它來查詢Cube。然後就是本文所介紹的DMX,它主要面向分析服務中的資料採礦部分,通過它可以建立採礦結構和採礦模型,以及訓練資料和做預測查詢。
在微軟的文檔及樣本還有很多圖書著作中,通過DMX的方式通常被分為三個步驟: 1.建立採礦結構 2.建立採礦模型 3.訓練資料 4.預測查詢
通過第六篇的內容,你可以簡單的瞭解如何組織資料採礦的樣本資料,並且在Excel中匯入。
希望這個小系列能在項目中幫到大家。
文章相關檔案下載:
分析服務項目下載
分析服務Database Backup下載
服務及前端程式下載
用到的資源:
如何擷取官方的樣本庫並且部署它們
微軟官方的資料採礦教程
相關外掛程式下載:
Microsoft SQL Server 2012 Data Mining Add-ins for Microsoft Office 2010