標籤:文章 vs2008 reg 知識 視圖 htm 建立 研究 將不
前言
本篇文章繼續我們的微軟挖掘系列演算法總結,前幾篇文章已經將相關的主要演算法做了詳細的介紹,我為了展示方便,特地的整理了一個目錄提綱篇:大資料時代:深入淺出微軟資料採礦演算法總結連載,有興趣的童鞋可以點擊查閱,本篇我們將要總結的演算法為: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 順序分析和群集演算法)