文章出處

前言

本篇文章繼續我們的微軟挖掘系列算法總結,前幾篇文章已經將相關的主要算法做了詳細的介紹,我為了展示方便,特地的整理了一個目錄提綱篇:大數據時代:深入淺出微軟數據挖掘算法總結連載,有興趣的童鞋可以點擊查閱,本篇我們將要總結的算法為:Microsoft順序分析和聚類分析算法,此算法為上一篇中的關聯規則分析算法的一個延伸,為關聯規則分析算法所形成的種類進行了更細粒度的挖掘,挖掘出不同種類內部的事例間的順序原則,進而用以引導用戶進行消費。

應用場景介紹

Microsoft順序分析和聚類分析算法,根據名稱就可以聯想到其應用特點,該挖掘算法是基于聚類分析算法之上然后對其分類內的事例順序進行挖掘,其分析的重點在于事例間的順序規則,上一篇我們介紹的Microsoft關聯規則算法它的重點在于挖掘事例間的關聯關系,而對產生關聯關系的順序則不關系,簡單點講:關聯規則算法研究的是“雞與蛋的關系”,而順序分析和聚類分析算法則研究的就是“先有雞還是先有蛋的問題”,上一篇文章中我們挖掘出幾組產品間關聯關系最強的,比如:山地自行車、輪胎和內胎;自行車、水壺、水壺框,這幾種產品關聯關系最強,也就是說客戶想買其中的一些產品,就會產生最大可能的購買其他相關的產品,但是購買這幾種產品的順序是什么樣的呢?

Microsoft順序分析好聚類分析算法常用的場景:

1、網站中的瀏覽網站所產生的web點擊流,進而進行用戶行為預測

2、發生事故(比如服務器宕機、數據庫死鎖等)之前的事件日志,進而預測下一次事故發生的點

3、根據用戶發生購買、添加購物車的順序記錄,根據產品優先級進行最佳產品推薦

其實該算法應用場景類似于聚類分析算法,但相比而言此算法更細粒度化,對聚類中的事例間的順序進而進行挖掘。

技術準備

(1)微軟案例數據倉庫(AdventureWorksDW208R2),和上一篇的關聯規則用到的表一樣,兩張表:vAssocSeqLineItems 表和 vAssocSeqOrders 表,這兩張表典型的“一對多”的關聯關系,vAssocSeqOrders為訂單表,vAssocSeqLineItems 表為訂單明細表,兩者通過OrderNumber關聯,具體內容可參照上篇博客:Microsoft 關聯規則分析算法

(2)VS2008、SQL Server、 Analysis Services

操作步驟

(1)我們這里還是利用上一期的解決方案,數據源視圖同樣也是繼續沿用,直接看圖

其實這里面應用的最重要的一列就是LineNumber列,該列記錄的就是產品的購買順序,進而就是反應順序規則,我們來瀏覽一下該數據:

(2)新建挖掘結構

我們來新建這個數據挖掘模型,新簡單的步驟,具體內容可參照我之前的博客內容,看幾個關鍵步驟:

選擇該算法,然后單擊下一步,選擇數據源視圖,然后選擇好事例表和嵌套表:

點擊下一步,來設置輸入輸出列:

然后下一步我們起個名字即可:

我們來部署該挖掘模型,然后進行處理,過程簡單,不廢話介紹。

結果分析

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

嘿,多么熟悉的面板,如果有童鞋看過我之間的文章,可以看到此算法用的結果展示面板其實和前面的Microsoft聚類分析算法是一樣的,只是這里添加了一個新的面板:狀態轉換,下面我們簡要的分析這幾個面板,有不清楚的可以參照之前文章,重點的看看這個新添加的面板有啥作用。

這里我們隨便找一個產品來分析,我們就選擇上一篇關聯規則算法中最出眾的水壺(Water Bottle)來看看:

我們重命名了兩類群體,顏色最深的最可能買水壺的群體和顏色最淺的最不可能買水壺的群體,我們針推這兩個群體進行聚類分析‘,我們來看第二個面板:

我們可以看到買不買水壺的兩種群體和地區有著非常大的關系,比如上圖中最想買的人群集中在北美,而在太平洋地區則買的人很少,如果向下拖動的話,還可以看到和收入也有著很大的關系,比如收入高的人群買水壺的人數就少,汗...估計都是買水喝,相反收入低的屌絲階層買水壺的人就多!嘿嘿...微軟的案例數據庫給出的數據看樣子還挺真實。

接下來我們來看“分類特征”這一面板:

我們選擇一個群體,來查看明細數據,上圖中我勾選出的數據,展示的就是本章算法的重點,[開始]->Women's Mountain Shorts表示的就是一個客戶來商店,最想放入購物籃的第一個產品就是:Women's Mountain Shorts(婦女的山地短褲?我去...為什么是婦女的!!...婦女最喜歡買短褲?...);[開始]->Water Bottle,也是同樣的含義,表示最先放入購物籃的就是水壺這個神器了。當然還有其它幾個比較重要的概率屬性:都是在北美、收入是有節制的人群。

圖中給出的商品順序即是Microsoft 順序分析和聚類分析算法推測出的順序產品,也就是說一定按照此順序發生購買行為的,比如上面的第一個:

Women's Mountain Shorts(婦女的山地短褲),然后Long-Sleeve Logo Jesey(長袖?)

 

最不可能買自行車的群體...來瞅瞅...太平洋地區、高收入、直接上來就買自行車(Mountain-200)或者Patch kit...

我們直接通過“分類對比”面板進行對比,查看結果:

 不介紹,上圖介紹的很全面。

下面我們來看最后一個:狀態轉換面板

 上圖給出的就是各個產品間的狀態轉換問題,首先顏色的深淺告訴了我們這個群體的特征,然后就是產品之間轉換的可能性,可以通過拖動左側的滑動條查看,首先與Water Bottle關聯的是Sport-100,也就是說賣完水壺之后,最先買的就是Sport-100;然后是賣完Women’s Mountain Shorts,最先買的是Long-Sleeve Logo...

有興趣的可以分析其它群體的特征和購買順序。

推測結果導出

我們到此步驟直接將該模型的分析結果進行預測,進入到“挖掘模型預測”面板:

我們來設置挖掘函數:源選擇:預測函數、字段選擇:PredictSequence、條件/參數:直接將v Assoc Seq Line Items拖入,點擊運行查看結果:

我們來查看結果:

可以看到所有結果中,最先放入購物籃的產品為Mountain-200這款山地自行車。如果默認不加任何選擇條件的話,此結果輸出項只有一個,也就是預測的第一個事例,當然很多的需求并非如此簡單,比如:有時候我們需要根據地區去區分不同的購買序列問題,因為上面我們從“分類特征”面板中已經分析出來,產品件的順序和地區有著很大的區別;

我們選擇“單獨查詢輸入”,點擊“Region”,選擇Europe地區:

我們可以看到這個群體的第一個最有可能購買的產品已經變了,改成了:Touring-1000,當然我們直接寫DMX語句就可以:

這樣實現方式更靈活,我們可以查詢出產品和概率項:

其實,對于SSAS所產生的結果集,有其專用的DMX語言進行靈活的查詢和操作,這里我們就不多解釋了,有時間專門來解析這塊。

當然,此塊我們也可以根據已有的客戶列表中,進行挖掘,推測出該用戶最大可能性的選擇的下一款產品是神馬?我們選擇現有的事例表和嵌套表,然后設計語句:

我們來查看結果:

看上圖,根據本篇的Microsoft 順序分析和聚類分析算法,已經將不同的用戶可能按照順序購買的產品有哪些,這里面分析的結果是嚴格按照順序進行的,我們可以看到上面有一個顧客編號的為18239的,他最可能先買Water Bottle,然后再買Sport-100....

我們看看這個顧客已經發生的購買行為:

看在S051176這個訂單中,這貨已經買了倆產品...下一步他將買啥?我們上面已經推測出來了:Water Bottle,然后再買Sport-100....

下一步我們的工作就是保存到數據庫,一段簡單的代碼經這部分群體的意向購買行為給挖掘出來,然后你就拿著去找BOSS可以了....

此部分過程很簡單,不明白的可以參照我之間的博客。

結語

本篇文章到此結束了...關于“現有雞先有蛋的問題”我們就研究到此,后續文章繼續分析其它問題。

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

Microsoft決策樹分析算法總結

Microsoft聚類分析算法總結

Microsoft Naive Bayes 分析算法

Microsoft算法結果預測篇

Microsoft時序算法總結

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

Microsoft 關聯規則分析算法 

大數據時代:深入淺出微軟數據挖掘算法總結連載

如果您看了本篇博客,覺得對您有所收獲,請不要吝嗇您的“推薦”。

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜

    大師兄 發表在 痞客邦 留言(0) 人氣()