天天看點

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

前言

應用場景介紹

關聯規則算法是在大量資料事例中挖掘項集之間的關聯或相關聯系,它典型的應用就是購物籃分析,通過關聯規則分析幫助我們發現交易資料庫中不同的商品(項)之間的聯系,找到顧客購買行為模式,如購買某一個商品對其它商品的影響。進而通過挖掘結果應用于我們的超市貨品擺放、庫存安排、電子商務網站的導航安排、産品分類、根據購買模式對使用者進行分類,相關産品推薦等等。

比較典型的為大家所熟知的就是:啤酒和尿布的故事

其實很多電子商務網站中在我們浏覽相關産品的時候,它的旁邊都會有相關産品推薦,當然這些它們可能僅僅是利用了分類的原理,将相同類型的的産品根據浏覽量進而推薦給你,這也是關聯規則應用的一種較簡單的方式,而關聯規則算法是基于大量的資料事實,通過資料層面的挖掘來告訴你某些産品項存在關聯,有可能這種關聯關系有可能是自身的,比如:牙刷和牙膏、筷子和碗...有些本身就沒有關聯是通過外界因素所形成的關系,經典的就是:啤酒和尿布,前一種關系通過常識我們有時候可以擷取,但後一種關系通過經驗就不易獲得,而我們的關聯規則算法解決的就是這部分問題。

技術準備

 (1)微軟案例資料倉庫(AdventureWorksDW208R2),這裡我們應用到兩張表:vAssocSeqLineItems 表和 vAssocSeqOrders 表,這兩張表典型的“一對多”的關聯關系,vAssocSeqOrders為訂單表,vAssocSeqLineItems 表為訂單明細表,兩者通過OrderNumber關聯,稍後的步驟我們會詳細的分析這兩張表内容

(2)VS2008、SQL Server、 Analysis Services

操作步驟

(1)我們這裡還是利用上一期的解決方案,然後資料源,然後資料源視圖,很簡單的步驟,不明白的可以看我們前面幾篇文章,然後将這兩張表的主外鍵關聯上,我們來看圖:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

很基礎的東西,這裡不做過多的解釋,Orders為主表,Items為明細表,通過CustomerKey主鍵進行關聯,下面我們浏覽下這兩張表裡面的資料:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

vAssocSeqOrders表内容很簡單:訂單号(邏輯主鍵)、客戶号(客戶表的外鍵)、地區、收入類型,别的沒啥可預覽的,這種表是太基礎的内容,來看另外一張表:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

vAssocSeqLineItems表,訂單号(外鍵)、購買數量、購買産品,很簡單的一張表

(2)建立挖掘結構

 這裡我們建立這個資料的挖掘模型,很簡單的下一步、下一步就行,有不明白的可以參照我以前的内容或者私信我,我們來看幾個關鍵的步驟:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

這裡我們選擇Microsoft關聯規則算法,然後下一步:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

這裡我們标示好事例表和嵌套表,下一步我們指定定型資料

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

這這裡面我們配置好鍵、和輸入、輸出預測列,然後起個名字:relevance

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

 至此,我們的Microsoft關聯規則分析算法已經初步建立好了,下面一步我們來配置該算法幾個關鍵屬性值。

(3)參數配置

此種算法有兩個參數比較重要,我們來看:

Support:定義規則被視為有效前必須存在的事例百分比。也就是說作為關聯規則篩選的事例可能性,比如設定成10%,也就是說在隻要在所有事例中所占比為10%的時候才能進行挖掘。

Probability:定義關聯被視為有效前必須存在的可能性。該參數是作為結果篩選的一個預定參數,比如設定成10%,也就是說在預測結果中機率産生為10%以上的結果值才被展示。

我們将該模型的兩個參數設定為:

MINIMUM_PROBABILITY = 0.2

MINIMUM_SUPPORT = 0.01

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

我們部署該模型,然後運作,我們來檢視結果。

結果分析

部署完程式之後,我們通過“挖掘模型檢視器”進行檢視分析,不廢話,我們直接看圖:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

從上面的截圖中我們可以看到,Microsoft關聯規則算法有三個面闆來展示結果:規則、項集、依賴關系網絡

下面我們分别來介紹這三個面闆,第一個,規則:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

上面有幾個條件篩選項,第一個就是設定最小機率值,也就是上面我們建立模型設定的參數,第二個是是篩選規則,通過它我們找到相應的産品友善我們檢視,還有一個重要性的參數,同樣的對于下面結果中的第二列可能性列,最大行數設定顯示的行數。

下面結果的表格中,第一列機率的值就是産品之前會産生關聯的機率,按照機率從大到小排序,第二列為可能性,該度量規則的有用性。該值越大則意味着規則越有用,設定該規則的目的是避免隻使用機率可能發生誤導,比如有時候超市裡舉行促銷活動會每個人都免費給一間物品,如果僅僅根據機率去推測,這件物品的機率将是1,但是這個規則是不準确的,因為它沒有和其它商品發生任何關聯,也就是說該值是無意義的,是以才出現了“重要性”列。

第三列即為我們的挖掘出來的結果項,前面為已有的産品項,‘—>’後面的即為推測的産品項,我們舉個例子,比如:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

經過排序可以看到,上圖中的該條規則項為關聯規則最強的一種組合:前面的為:山地自行車(Mountain-200)、山地自行車内胎(Mountain Tire Tube)然後關聯關系最強的為:自行車輪胎(HL Mountain Tire)

嗯,有道理的很呀,有了山地自行車了,然後同樣也具備山地自行車内胎,剩下的就是需要自行車輪胎了。

其它的也是同樣的分析方法,這裡我們就不分析了,有興趣的可以自己分析,嘿..我看到上面的第三條:

自行車(Road-750)、水壺(Water Bottle)->自行車水壺框(Road Bottle Cage)

....自行車、水壺,肯定得買個自行車水壺框了......

這個水壺好有個性,下面我們來具體看看跟這個利器有關的商品有哪些....嘿嘿...我們來看圖:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

我那個去....瞅瞅...第一個結果:水壺框(Road Bottle Cage、Mountain Bottle Cage)...下面我目測了下...我可以明确的告訴你,丫的..這個名字叫Water Bottle(水壺...嘿嘿原諒我的E文能力)的利器最相關的就是水壺框(Bottle Cage)了...

超市裡東西怎麼擺放? 網站上該産品的相關推薦該推薦神馬? 有一個顧客已經買了這個東西你推薦它啥懂了吧?......

下面我們來看第二個面闆能告訴我們什麼,我們打開“項集”面闆:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

這個面闆也簡單的很,上面有幾個篩選框設定我們的最低支援數,最小的項集大小,最大行數,這個沒啥說的,很簡單,下面的結果集顯示的為我們的資料集合中“支援”的事例集合個數、然後“大小”就是該規則下裡面的項集的個數,第三列就是項集的詳細了。

我去...上面我們分析的水壺(Water Bottle)竟然排在了第一行,該行中的項集明細為:山地自行車(Mountain-200)、水壺(Water Bottle)、自行車水壺框(Road Bottle Cage),第二行也有,看來這厮看來很有分析價值,我們後續接着分析,嘿嘿

我們進入第三個面闆“依賴關系網絡”,我們來看:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

這幅圖已經很熟悉了吧,前幾篇文章中均有介紹,分析各種産品之間的關聯關系的強弱,拖動右側的滑動條然後進行分析

嘿嘿...我小心翼翼的拖動了這個滑動條...試圖找找上面我們分析的哪款利器(Water Bottle):

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

嘿嘿...找到了,上圖中就标示了這玩意相關的商品,我們來看Mountain Bottle Cage、Road Bottle Cage這兩個都是雙向關聯,然後Road-750、Cycling Cap、Hydration Pack...

其它的商品也利用這種規則進行分析,有興趣的可以自己分析。

推測結果導出

我們到此步驟直接将該模型的分析結果進行預測,暫且不驗證其準确性,直接将結果導出,來看看該算法的應用項,我們進入“挖掘模型預測”:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

在下面的網格中設定我們的挖掘篩選規則,點選“源”,選擇“預測函數”,選擇PredictAssociation,将vAssocSeqLineItems,将其拖到網格中 PredictAssociation 函數的“條件/參數”框。然後設定該參數為[Association].[v Assoc Seq Line Items],3

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

我們點選運作,直接來檢視結果:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

看,上面的Microsoft關聯規則算法給我們推薦出來關聯性最強的三種産品,分别為:Sport-100、Water Bottle、Patch kit...

當然有時候我需要隻檢視某一種商品,不關系其它的産品有什麼關聯關系,我們來做單獨查詢,我們在菜單中的“挖掘模型”,然後選擇“單獨查詢”:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

點選開單獨篩選的條件框:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

在“嵌套表輸入”對話框中,選擇“鍵列”窗格中的 Touring Tire

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

我們點選運作,來檢視結果:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

可以看到這裡我們隻是篩選出了該商品的關聯關系結果集,當然這裡我們可以顯示出該産品之間的關聯的關系值,這裡我們直接寫語句:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

點選運作,我們來看結果:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

這裡我們能看到,商品、支援的事例數,可能行、機率等明細值。

對于Microsoft關聯規則算法還有一種更有趣的應用就是,根據現有的顧客已經買的的産品,然後利用它自己的挖掘模型進行推測,推測出這個顧客将下一個買什麼産品,比如上面的例子中,如果某個顧客已經買了山地自行車、自行車内胎,那麼利用該模型它會自動推測出該顧客下一步将會買自行車輪胎,這個用法其實很關鍵,通過該方法預測已經能推測出顧客下一步的購買意向!...

如果将該挖掘模型利用到電子商務網站...那麼他們推薦的商品将更準确,同樣所得到的精準銷售也更到位...結果你懂的!

我們來看步驟:

我們來選擇應用的事例表:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

我們來選擇兩者的關聯關系,可以右鍵直接編輯:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

然後編輯篩選函數,直接看圖:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

點選檢視結果:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

可以看到,這個顧客編号為:18239的他将買優先買三個産品:Water Bottle、Road-750、Touring-1000,後面還列出他的機率和可能性...

嘿嘿..我們打開資料庫來看看這個顧客的情況:

大資料時代:基于微軟案例資料庫資料挖掘知識點總結(Microsoft 關聯規則分析算法)

.....嘿嘿...這個顧客已經買了兩個商品了,Road-250、Road Bottle Cage,根據上面的推算法則...這個顧客應該馬上急需要買一個叫做Water Bottle的神器...用來喝水

然後,我們将這個結果儲存到資料庫..一段簡單的代碼就能搞出那些顧客急需要什麼商品...

他們最可能買的商品有哪些....,剩下的工作你懂得!

結語

本篇文章到此結束了...結語就是我們後面還會繼續分析其它的算法,有興趣的童鞋可以提前關注。上面其實還有幾部分需要補充,就是準确性驗證和篩選條件挖掘,比如我想知道某些特定客戶群體他們的購買的産品關聯規則等等吧,後續文章繼續分析這些問題。

文章的最後我們給出前幾篇算法的文章連接配接:

<a href="http://www.cnblogs.com/zhijianliutang/p/4000988.html" target="_blank">Microsoft決策樹分析算法總結</a>

<a href="http://www.cnblogs.com/zhijianliutang/p/4009829.html" target="_blank">Microsoft聚類分析算法總結</a>

<a href="http://www.cnblogs.com/zhijianliutang/p/4012108.html" target="_blank">Microsoft Naive Bayes 分析算法</a>

<a href="http://www.cnblogs.com/zhijianliutang/p/4016309.html" target="_blank">Microsoft算法結果預測篇</a>

<a href="http://www.cnblogs.com/zhijianliutang/p/4021799.html" target="_blank">Microsoft時序算法總結</a>

<a href="http://www.cnblogs.com/zhijianliutang/p/4027175.html" target="_blank">Microsoft 時序算法——結果預算+下期彩票預測篇</a>

如果您看了本篇部落格,覺得對您有所收獲,請不要吝啬您的“推薦”。