(原創)大數據時代:基於微軟案例數據庫數據挖掘知識點總結(Microsoft 關聯規則分析算法)

前言html

本篇繼續咱們的微軟挖掘算法系列總結,前幾篇咱們分別介紹了:Microsoft決策樹分析算法Microsoft聚類分析算法Microsoft Naive Bayes 算法Microsoft 時序算法,後續還補充了二篇結果預測篇Microsoft 時序算法——結果預算+下期彩票預測篇,看樣子有必要整理一篇目錄了,不一樣的算法應用的場景也是不一樣的,每篇文章都有它本身的應用場景介紹,有興趣的同窗能夠參閱。本篇咱們總結微軟挖掘算法系列中一款比較重要的算法:Microsoft關聯規則分析算法,根據馬克思哲學理論,所謂世間萬物皆有聯繫,並且聯繫是廣泛的,此篇的Microsoft關聯規則算法就是用來挖掘關聯關係的典型算法,閒言少敘,咱們直接進入正題。算法

應用場景介紹數據庫

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

比較典型的爲你們所熟知的就是:啤酒和尿布的故事函數

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

技術準備spa

 (1)微軟案例數據倉庫(AdventureWorksDW208R2),這裏咱們應用到兩張表:vAssocSeqLineItems 表和 vAssocSeqOrders 表,這兩張表典型的「一對多」的關聯關係,vAssocSeqOrders爲訂單表,vAssocSeqLineItems 表爲訂單明細表,二者經過OrderNumber關聯,稍後的步驟咱們會詳細的分析這兩張表內容3d

(2)VS200八、SQL Server、 Analysis Servicescode

操做步驟htm

(1)咱們這裏仍是利用上一期的解決方案,而後數據源,而後數據源視圖,很簡單的步驟,不明白的能夠看咱們前面幾篇文章,而後將這兩張表的主外鍵關聯上,咱們來看圖:

很基礎的東西,這裏不作過多的解釋,Orders爲主表,Items爲明細表,經過CustomerKey主鍵進行關聯,下面咱們瀏覽下這兩張表裏面的數據:

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

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

(2)新建挖掘結構

 這裏咱們新建這個數據的挖掘模型,很簡單的下一步、下一步就行,有不明白的能夠參照我之前的內容或者私信我,咱們來看幾個關鍵的步驟:

這裏咱們選擇Microsoft關聯規則算法,而後下一步:

 

這裏咱們標示好事例表和嵌套表,下一步咱們指定定型數據

這這裏面咱們配置好鍵、和輸入、輸出預測列,而後起個名字:relevance

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

(3)參數配置

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

Support:定義規則被視爲有效前必須存在的事例百分比。也就是說做爲關聯規則篩選的事例可能性,好比設置成10%,也就是說在只要在全部事例中所佔比爲10%的時候才能進行挖掘。

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

咱們將該模型的兩個參數設置爲:

MINIMUM_PROBABILITY = 0.2

MINIMUM_SUPPORT = 0.01

咱們部署該模型,而後運行,咱們來查看結果。

結果分析

部署完程序以後,咱們經過「挖掘模型查看器」進行查看分析,不廢話,咱們直接看圖:

從上面的截圖中咱們能夠看到,Microsoft關聯規則算法有三個面板來展現結果:規則、項集、依賴關係網絡

下面咱們分別來介紹這三個面板,第一個,規則:

上面有幾個條件篩選項,第一個就是設置最小几率值,也就是上面咱們新建模型設置的參數,第二個是是篩選規則,經過它咱們找到相應的產品方便咱們查看,還有一個重要性的參數,一樣的對於下面結果中的第二列可能性列,最大行數設置顯示的行數。

下面結果的表格中,第一列機率的值就是產品以前會產生關聯的機率,按照機率從大到小排序,第二列爲可能性,該度量規則的有用性。該值越大則意味着規則越有用,設置該規則的目的是避免只使用機率可能發生誤導,好比有時候超市裏舉行促銷活動會每一個人都免費給一間物品,若是僅僅根據機率去推測,這件物品的機率將是1,可是這個規則是不許確的,由於它沒有和其它商品發生任何關聯,也就是說該值是無心義的,因此纔出現了「重要性」列。

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

通過排序能夠看到,上圖中的該條規則項爲關聯規則最強的一種組合:前面的爲:山地自行車(Mountain-200)、山地自行車內胎(Mountain Tire Tube)而後關聯關係最強的爲:自行車輪胎(HL Mountain Tire)

嗯,有道理的很呀,有了山地自行車了,而後一樣也具有山地自行車內胎,剩下的就是須要自行車輪胎了。

其它的也是一樣的分析方法,這裏咱們就不分析了,有興趣的能夠本身分析,嘿..我看到上面的第三條:

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

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

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

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

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

下面咱們來看第二個面板能告訴咱們什麼,咱們打開「項集」面板:

這個面板也簡單的很,上面有幾個篩選框設置咱們的最低支持數,最小的項集大小,最大行數,這個沒啥說的,很簡單,下面的結果集顯示的爲咱們的數據集合中「支持」的事例集合個數、而後「大小」就是該規則下里面的項集的個數,第三列就是項集的詳細了。

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

咱們進入第三個面板「依賴關係網絡」,咱們來看:

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

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

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

其它的商品也利用這種規則進行分析,有興趣的能夠本身分析。

推測結果導出

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

在下面的網格中設置咱們的挖掘篩選規則,點擊「源」,選擇「預測函數」,選擇PredictAssociation,將vAssocSeqLineItems,將其拖到網格中 PredictAssociation 函數的「條件/參數」框。而後設置該參數爲[Association].[v Assoc Seq Line Items],3

咱們點擊運行,直接來查看結果:

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

固然有時候我須要只查看某一種商品,不關係其它的產品有什麼關聯關係,咱們來作單獨查詢,咱們在菜單中的「挖掘模型」,而後選擇「單獨查詢」:

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

「嵌套表輸入」對話框中,選擇「鍵列」窗格中的 Touring Tire

咱們點擊運行,來查看結果:

能夠看到這裏咱們只是篩選出了該商品的關聯關係結果集,固然這裏咱們能夠顯示出該產品之間的關聯的關係值,這裏咱們直接寫語句:

點擊運行,咱們來看結果:

這裏咱們能看到,商品、支持的事例數,可能行、機率等明細值。

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

若是將該挖掘模型利用到電子商務網站...那麼他們推薦的商品將更準確,一樣所獲得的精準銷售也更到位...結果你懂的!

咱們來看步驟:

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

咱們來選擇二者的關聯關係,能夠右鍵直接編輯:

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

點擊查看結果:

能夠看到,這個顧客編號爲:18239的他將買優先買三個產品:Water Bottle、Road-750、Touring-1000,後面還列出他的機率和可能性...

嘿嘿..咱們打開數據庫來看看這個顧客的狀況:

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

而後,咱們將這個結果保存到數據庫..一段簡單的代碼就能搞出那些顧客急須要什麼商品...

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

結語

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

文章的最後咱們給出前幾篇算法的文章鏈接:

Microsoft決策樹分析算法總結

Microsoft聚類分析算法總結

Microsoft Naive Bayes 分析算法

Microsoft算法結果預測篇

Microsoft時序算法總結

Microsoft 時序算法——結果預算+下期彩票預測篇

 

若是您看了本篇博客,以爲對您有所收穫,請不要吝嗇您的「推薦」。

相關文章
相關標籤/搜索