自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用SQL Server分析服務(wù)定位目標(biāo)用戶

數(shù)據(jù)庫 SQL Server
如何定位目標(biāo)用戶,在任何一個業(yè)務(wù)單元中都是一個很重要的話題,尤其在預(yù)算有限的情況下,如何獲得活動的最大收益,目標(biāo)用戶的定位都是很重要的手段。本文將介紹如何通過SQL Server分析服務(wù)(SSAS)中的數(shù)據(jù)挖掘功能根據(jù)歷史記錄信息來定位目標(biāo)用戶。

如何定位目標(biāo)用戶,在任何一個業(yè)務(wù)單元中都是一個很重要的話題,尤其在預(yù)算有限的情況下,如何獲得活動的最大收益,目標(biāo)用戶的定位都是很重要的手段。

本文將介紹如何通過SQL Server分析服務(wù)(SSAS)中的數(shù)據(jù)挖掘功能根據(jù)歷史記錄信息來定位目標(biāo)用戶。

微軟的SQL Server為數(shù)據(jù)平臺提供了一套完整的解決方案,他不只是一個數(shù)據(jù)引擎,也提供了很多數(shù)據(jù)工具和服務(wù),借助其中的分析服務(wù),結(jié)合業(yè)務(wù)系統(tǒng)中的海量歷史數(shù)據(jù)信息,SQL SERVER就可以幫助我們發(fā)現(xiàn)其中的模式和規(guī)律,從而對目標(biāo)數(shù)據(jù)做預(yù)測分析。

在實際中,不同的挖掘模型適用于不同的問題場景,同一個問題模式下可能有多個模型都適合解決這個問題,這樣對于問題的解決來說就多了很多可對比性,從而我們可以根據(jù)每個模型預(yù)測的準(zhǔn)確程度選擇一個最優(yōu)的模型。

在本文的目標(biāo)用戶定位的問題上,采用三種挖掘模型進行比較,分別是決策樹,貝葉斯和聚類算法。

本文使用的SQL SERVER版本是2012,示例數(shù)據(jù)庫是Adventure Works的數(shù)據(jù)倉庫,關(guān)于如何獲取以及部署這個示例數(shù)據(jù)倉庫,可以參考我的這篇隨筆:

http://www.cnblogs.com/aspnetx/archive/2013/01/30/2883831.html

首先,建立數(shù)據(jù)挖掘項目,打開SQL DATA TOOLS,也就是Visual Studio 2010的那個Shell。

新建一個多維和數(shù)據(jù)挖掘的分析服務(wù)項目。

項目建立完畢后,新建數(shù)據(jù)源連接。

選擇部署好的Adventure Works DW連接。

輸入模擬身份信息,本演示用為了簡便直接使用本地管理員賬戶(當(dāng)然生產(chǎn)環(huán)境中是不建議這么做的)。

#p#

為數(shù)據(jù)源連接起名。

新建數(shù)據(jù)源視圖。

選擇剛才建立的數(shù)據(jù)源連接。

從左邊可選對象列表中選取兩個對象,一個是表ProspectiveBuyer,一個是視圖vTargetMail。

為數(shù)據(jù)源視圖取名。

可以在數(shù)據(jù)源視圖中看到添加進來的兩個表。

#p#

其中左面的表是在數(shù)據(jù)倉庫經(jīng)過整合的一批數(shù)據(jù),用來訓(xùn)練和驗證模型。右面的表是待預(yù)測的表,將在模型生成完畢后對這個表里的數(shù)據(jù)進行預(yù)測。

新建挖掘結(jié)構(gòu)。

同時為挖掘結(jié)構(gòu)指定一個挖掘模型,這里選擇決策樹模型。需要留意的是,一個挖掘結(jié)構(gòu)可以有很多挖掘模型,不過在通過工具創(chuàng)建一個挖掘結(jié)構(gòu)的時候需要指定一個挖掘模型。

選擇剛才建立的數(shù)據(jù)源視圖。

選取事例表vTargetMail。ProspectiveBuyer是后續(xù)要用來進行預(yù)測的,所以這里先忽略這個表。

首先,在Key列一欄選擇CustomerKey,用來指定鍵列。

#p#

然后選擇輸入列:

Age

CommuteDistance

EnglishEducation

EnglishOccupation

Gender

GeographyKey

HouseOwnerFlag

MaritalStatus

NumberCarsOwned

NumberChildrenAtHome

Region

TotalChildren

YearlyIncome

最后,選中以下列表左側(cè)需要選擇的列。這些列不作為模型的考慮元素,但是會用在模型的鉆取結(jié)果上。

AddressLine1

AddressLine2

DateFirstPurchase

EmailAddress

FirstName

LastName

確認(rèn)內(nèi)容類型,這里有兩處需要更改,一處是Geography Key改為Discrete離散型的,以及BikeBuyer改為discrete離散型的。

關(guān)于內(nèi)容類型的參考:

http://technet.microsoft.com/zh-cn/library/ms174572

關(guān)于數(shù)據(jù)類型的參考:

http://technet.microsoft.com/zh-cn/library/ms174796

設(shè)定測試數(shù)據(jù)的比例。也就是說,在所有的歷史數(shù)據(jù)中,這里將決定,有多少數(shù)據(jù)用來訓(xùn)練模型,有多少數(shù)據(jù)用來對模型進行準(zhǔn)確度測試。

這里可以指定百分比或者最大測試事例數(shù),當(dāng)兩個都有配置的時候,系統(tǒng)會取最小測試事例集合的配置。

為挖掘結(jié)構(gòu)和挖掘模型取名,并且選中允許鉆取的選項。

#p#

至此一個決策樹模型生成完畢。

點擊挖掘模型標(biāo)簽,可以更直觀的看到挖掘結(jié)構(gòu)和挖掘模型的結(jié)構(gòu)。

接下來根據(jù)已經(jīng)創(chuàng)建好的挖掘結(jié)構(gòu),創(chuàng)建其它挖掘模型。

右鍵點擊挖掘結(jié)構(gòu),選擇新建挖掘模型,為挖掘結(jié)構(gòu)添加另外幾個模型用于對預(yù)測結(jié)果進行比對。

#p#

為挖掘模型取名,并在算法中選擇聚類算法。

按照同樣的方法,再創(chuàng)建一個貝葉斯模型。

由于貝葉斯模型不支持連續(xù)變量,所以這里會出現(xiàn)提示。繼續(xù)即可。

可以看到創(chuàng)建好的三個模型,并且每個模型中各個字段的用法。

點擊工具欄上的處理按鈕,對模型進行部署和處理。

第一次部署或者項目有過修改都會出現(xiàn)這樣一個提示,點Yes。

處理界面,直接點擊Run開始處理。

#p#

處理過程中,處理的時間取決于訓(xùn)練數(shù)據(jù)的大小以及機器的硬件性能。當(dāng)然對于Adventure Works的這個示例來說,通常就是10多秒的事。

挖掘結(jié)構(gòu)處理完畢后,下面來簡單瀏覽一下各個挖掘模型。點擊挖掘模型瀏覽器標(biāo)簽。然后在Mining Mode中選定TU_DecisonTree決策樹模型。

可以看到,Microsoft 決策樹算法通過在樹中創(chuàng)建一系列拆分來生成數(shù)據(jù)挖掘模型。 這些拆分以"節(jié)點"來表示。 每當(dāng)發(fā)現(xiàn)輸入列與可預(yù)測列密切相關(guān)時,該算法便會向該模型中添加一個節(jié)點。 離根節(jié)點距離越近的屬性,說明這個屬性的變化對預(yù)測列的影響變化更大。

右鍵每一個節(jié)點,可以鉆取到詳細信息。

選擇第一項,查看模型包含的列:

也可以選擇鉆取模型和挖掘結(jié)構(gòu)模型的信息,這樣前面在左側(cè)定義的列就會顯示出來,方便定位詳細信息。

#p#

瀏覽聚類分析模型,這里可以看到各個分類之間的關(guān)系,通過拖動左面的滑塊可以看到相互之間關(guān)系的強弱。

瀏覽貝葉斯模型,在途中可以看到是否是目標(biāo)客戶,模型分析出的幾個關(guān)鍵因素,也可以通過左邊的話快查看這些因素有強到弱的關(guān)系。

接下來,將對各個模型進行測試。雖然對于一個問題可以應(yīng)用很多模型來解決,但往往只有一個才是最優(yōu)的,效率最高的。對模型的測試主要是用到提升圖。

首先,點擊Mining Accuracy Chart選項卡,確定用于提升圖的數(shù)據(jù)是Use mining model test cases。

然后點擊Lift Chart標(biāo)簽,系統(tǒng)會顯示根據(jù)測試數(shù)據(jù)生成的提升圖。

#p#

從提升圖的結(jié)果來看,決策樹的預(yù)測性能明顯高于其它模型。

關(guān)于提升圖,首先,對角線是隨機概率的結(jié)果,最上面的線是最佳理想的預(yù)測結(jié)果,所以實際的模型預(yù)測效率都是介于這兩條線之間。

關(guān)于提升圖的更多信息可以參考微軟的這篇文檔:

http://technet.microsoft.com/zh-cn/library/ms175428

在已經(jīng)確定決策樹模型是最優(yōu)模型之后,如果還希望根據(jù)性別的不同分析購買風(fēng)格的差異,可以創(chuàng)建篩選模型。

首先,回到Mining Models選項卡,右鍵單擊創(chuàng)建好的決策樹模型,選擇新建模型。

在彈出的界面中,給新模型取一個名:TU_DecisionTree_Male,算法選擇Microsoft 決策樹。

點擊OK完成后,右鍵點擊新建的模型,選擇Set Model Filter…

在Conditions中選擇Gender = M。

#p#

按照同樣的方法,建立另外一個TU_DecisionTree_Female,Model Filter中 Conditions選擇Gender = F。

創(chuàng)建完兩個新篩選模型后,點擊提升圖。將Predict Value設(shè)置成1,以驗證目標(biāo)客戶預(yù)測的性能。

點擊Lift Chart查看提升圖。

可以看到,三個決策樹模型的預(yù)測性能都是高于其它模型的。

模型測試完畢,可以判斷決策樹是基于定位目標(biāo)用戶最佳的預(yù)測模型。接下來是用決策樹模型對一個表中的數(shù)據(jù)進行預(yù)測。

#p#

首先,選擇Mining Model Prediction選項卡。

點擊Select Model…選擇前面建立的TU_DecisionTree模型。

然后點擊Select Case Table…選擇實例表ProspectiveBuyer。

點擊OK后,可以看到在表ProspectiveBuyer中并沒有對應(yīng)的Age列,而這一列是在預(yù)測過程中需要參考的一個重要列,所以回到數(shù)據(jù)源視圖,在ProspectiveBuyer表里加入一個計算列。

右鍵單擊表ProspectiveBuyer點擊New Named Calculation…

#p#

在彈出的界面中為計算成員取名并填寫計算公式:

可以看到新建的列已經(jīng)添加到字段列表的末尾。在數(shù)據(jù)源視圖中添加的列可以理解為在物理視圖和表上,在項目里建立的視圖,所以實際上并沒有對實際的表或者視圖的結(jié)構(gòu)進行更改。

然后回到預(yù)測界面,將Mining Model中的Age列拖拽到Select Input Table(s)中剛建立好的CalAge列。

點擊界面左上角的小圖標(biāo),切換到Design設(shè)計模式。

在下方的網(wǎng)格列表中,Source選擇Prediction Function。

指定一個別名Result,然后在Criteria/Argument中,把Bike Buyer字段從上方的Mining Model中拖拽過來。

然后在下方的網(wǎng)格列表中,Source選擇TM_DecisionTree,F(xiàn)iled選擇Bike Buyer。最后在下面幾行中Source指定ProsepectiveBuyer然后Filed中依次指定calAge, FirstName, LastName和AddressLine1以及AddressLine2。

#p#

點擊工具圖標(biāo)切換到Result結(jié)果視圖。

可以看到目標(biāo)數(shù)據(jù)的預(yù)測結(jié)果。

另外,也可以切換到Query模式查看系統(tǒng)生成的DMX語句。

至此,通過建立數(shù)據(jù)挖掘模型,并且選擇最優(yōu)模型之后,對目標(biāo)用戶列表里的數(shù)據(jù)進行了預(yù)測,從而幫助用戶更有效率的確定了目標(biāo)潛在用戶。這樣的預(yù)測在某些場景下是非常有用的,比如企業(yè)最近要做一個活動推廣,但是費用成本不足以給所有的客戶進行推廣,所以這個時候決定給哪些客戶來推送推廣服務(wù)就可以有效的降低推廣活動的成本并且獲取最高的推廣收益。

以上,如何使用SQL Server分析服務(wù)來定位目標(biāo)用戶介紹完畢。關(guān)于如何將這個數(shù)據(jù)挖掘的功能加入到現(xiàn)有的項目中,可以參考我寫的另外一篇關(guān)于購物籃推薦的系列隨筆,里面會有介紹如何構(gòu)建Web服務(wù)以及編寫簡單的應(yīng)用訪問這個服務(wù)從而使用數(shù)據(jù)挖掘的功能。

原文鏈接:http://www.cnblogs.com/aspnetx/archive/2013/04/05/3000448.html

責(zé)任編輯:林師授 來源: 博客園
相關(guān)推薦

2010-06-30 08:34:27

SQL Server

2010-06-29 17:45:22

SQL Server

2013-02-01 14:07:40

2009-04-16 16:54:53

集成IntegrationSSIS

2010-01-08 09:43:23

SQL Server分Analysis Se

2010-07-08 15:26:05

SQL Server

2010-07-20 10:02:41

SQL Server

2010-10-21 16:59:37

SQL Server創(chuàng)

2010-10-21 16:59:37

SQL Server創(chuàng)

2010-10-20 15:27:00

SQL Server用

2010-09-27 14:36:24

SQL Server用

2010-09-06 09:53:41

SQL Server語句

2010-11-10 11:05:38

2010-07-09 12:39:28

SQL Server超

2010-07-05 10:37:00

2010-10-21 16:18:37

sql server服

2009-07-04 00:50:38

2010-07-09 10:08:53

SQL Server函

2010-11-12 11:19:19

SQL Server視

2010-07-20 09:53:01

SQL Server
點贊
收藏

51CTO技術(shù)棧公眾號