(原創)大數據時代:基於微軟案例數據庫數據挖掘知識點總結(Microsoft 時序算法)

前言html

本篇文章一樣是繼續微軟系列挖掘算法總結,前幾篇主要是基於狀態離散值或連續值進行推測和預測,所用的算法主要是三種:Microsoft決策樹分析算法Microsoft聚類分析算法Microsoft Naive Bayes 算法,固然後續還補充了一篇結果預測篇,所涉及的應用場景在前幾篇文章中也有介紹,有興趣的同窗能夠點擊查看,本篇咱們將總結的算法爲Microsoft時序算法,此算法也是數據挖掘算法中比較重要的一款,由於全部的推算和預測都將利用於將來,而這全部的一切都將有一條時間線貫穿始終,而這將是時序算法的側重點。算法

應用場景介紹數據庫

經過前幾篇文章的介紹,咱們已經能預測出影響某種行爲的因素有哪些,而且根據這些因素綜合挖掘出咱們的最優客戶羣體(將會購買自行車),這也是上面介紹的幾種算法的長項,可是會不會以爲從大數據中獲取的信息太少了點,與不少問題僅僅經過上面幾種算法是推算不出來的,但這些信息恰巧是上層領導關注的,好比說:數據結構

一、做爲數據分析人員,你能不能根據以往的銷售狀況預測出明年的銷售業績?這樣的問題怎麼解決?有哥們會這麼解決了,哈...我取去年一年的銷售值作平均值,那若是不足一年呢?那要是預測明年一月份的呢?....工具

二、能不能根據以往的銷售狀況預測出銷售的旺季,像房地產行業的「金九銀十」說的就是這個,這些都是資深銷售人員的經驗總結,可是你能保證公司裏面有這種人?即使有你能保證他說的正確?即使正確能保證他說的適合別的產品?即使適合能保證適合不一樣的地區?....我那個去...這些的這些稍後咱們讓數據來告訴你!測試

三、不一樣地區的銷售規律是否一致?也就是說是否爲同一種銷售策略....哪種銷售策略更適合那一類產品的方式..各類產品之間的銷售量是否會有影響、存不存在連帶銷售?是不適合咱們作捆綁銷售。大數據

以上的這些問題咱們經過Microsoft時序算法均可以解決,而這些問題也就是該算法的應用場景,閒言少敘,咱們進入本篇的正題。spa

技術準備3d

(1)一樣咱們利用微軟提供的案例數據倉庫(AdventureWorksDW2008R2),這這裏咱們只須要用到一張表,確切的說是一張視圖vTimeSeries,其實這裏面就是記錄的往年不一樣月份的銷售彙總值,稍後咱們將詳細分析這部分數據。htm

(2)VS200八、SQL Server、 Analysis Services沒啥可介紹的,安裝數據庫的時候全選就能夠了,這裏前段時間有人問我爲何他的vs工具沒有新建數據挖掘工程的模板,這裏提一下,其實vs做爲微軟的主打開發軟件,因此它的更新速度是遠遠快於數據庫更新版本,因此要選擇開發數據挖掘解決方案的時候須要在開始菜單中找到SQL Server目錄下的vs鏈接便可。

操做步驟

(1)新建解決方案,而後數據源,而後數據源視圖,很簡單的步驟,不明白的能夠看咱們前面幾篇文章,咱們直接看圖

咱們給解決方案取了個名字,而後從數據源中找到了咱們須要挖掘的表,將咱們須要的表建立好,取了個名字爲:SalesByArea,能夠看到這張表就是記錄往年各個月份的銷售記錄和銷售業績,下面咱們對這個表裏面的數據進行粗略分析。

(2)預覽數據,分析源數據結構內容

這裏咱們須要對要分析的數據進行分析,先看看裏面有那些內容,是否是知足時序算法的數據要求條件。一樣咱們右鍵「瀏覽數據」,咱們選擇隨機抽樣,抽樣數據爲5000行。具體方法這裏不贅述,具體方法可參考前篇文章,咱們直接看圖

這裏面有幾列數據,其實內容挺簡單的,咱們來看,有自行車品牌和地區、時間線、銷售數量、銷售額度、年、月、報告日期。從報告日期來看基本上是每月的25號造成報告,而後每月生成一份,在利用Microsoft時序算法中對數據是有要求的:

一、要求分析數據序列必須含有時間序列,而且序列值爲連續...這個能夠理解...若是沒有連續值就談不上推測,由於數據自己他就沒有規律可循....

二、要求分析數據序列存在惟一標示值,其實也就說傳統意義上面的主鍵,這個在每一個算法中都要用

從上面的數據中咱們能夠將報告日期和第一列自行車品牌和地區(ModelRegion)造成組合主鍵知足上面的第二點要求,由於同一個時間一個品牌在一個地區只能產生一個銷售值。

咱們來詳細分析上面的時間看看能不能知足第一個條件,咱們選擇透視表,這個和Excel裏面的透視表是同樣的,用起來基本沒啥問題,咱們將明細數據拖入到區域中間,將列選擇報告日期、行選擇自行車品牌區域(ModelRegion),咱們來看看數據:

咱們能夠看到,這張往年銷售記錄表中包含了從2005年到2008年的銷售記錄,其中06年和07年都是整年每個月份都會含有一個記錄,而2005年、08年只有半年的數據,其實這裏08年只有半年數據是正常的,由於微軟案例數據庫AdventureWorksDW2008R2產生的日期就是在這裏,也就是說咱們會預測這以後的銷售記錄,05年只有半年表示數據時從這裏開始的,這個沒啥問題...咱們繼續向下拖動

我去...這下面的幾種產品在05年、06年就沒有任何銷售記錄,這有兩種可能,第一種是這兩個產品從06年纔開始引進銷售的,因此以前的數據沒有是正常的,固然還有一種極端的狀況那就是這兩年這個產品銷售量就爲0...對於這種狀況咱們要跟業務方確認作處理,對於咱們分析人員而言...銷售記錄不存在空值,也就是說這地方沒有銷售顯示值應爲0,而非空!

咱們點擊年份進入月份,詳細的看一下值。

看來這些數據開始日期真是從05年7月份開始,而後到08年6月結束,並且這之間每月份的數據都是連續的,也就是說從開始到結束連續的每月都有值,咱們向下面拖

的確,下面的這幾種商品是從07年7月份開始產生銷售,結束日期都是到08年6月份結束。

通過上面的分析,其實這種表中的數據是知足咱們Microsoft時序算法的數據要求的,其中存在連續的時間軸維度,只是有幾種產品銷售開始日期不是所有從開始日期開始的,對於這種狀況時序算法是容許的,只要保證在咱們時間軸維度中每個序列都有統一的結束日期,而且區間時間爲連續的既能夠。

固然能夠經過其它方式分析源數據,咱這裏就不進行了。

(3)新建挖掘結構

在挖掘結構上右鍵,如今新建數據挖掘結構,而後下一步...繼續而後下一步...這裏不作贅述,不明白能夠參考前幾篇文章,咱們選擇Microsfoft時序算法,看圖

 

 

點擊下一步,有幾個關鍵點咱們須要設置一下,咱們來看圖:

這裏咱們將品牌和區域、報告日期聯合造成鍵列,將銷售量和銷售業績兩列即做爲輸入又做爲輸出,由於這兩列即便咱們歷史分析要用的輸入值,也是咱們之後將要推測的輸出列,固然也能夠經過建議進行分析,這裏咱們很明白要作的事情,咱們點擊下一步,

咱們留下30%的事實,作後面的準確性驗證測試,而後取個名字:Forecasting,而後選擇下一步

 (4)參數配置

對於Microsoft時序算法有幾個參數比較重要,須要單獨配置,這裏咱們介紹一下

PERIODICITY_HINT:該參數提供了有關數據模式重複頻率的算法信息。簡單點講就是時間序列的重複迭代時間間隔,好比本篇文章中用到的時間軸就是爲每月更改一次,且週期爲年爲單位,因此咱們將這個參數設置成12,意思是每十二個月重複一次。

而後咱們就須要部署、處理該挖掘模型了。而後下一步咱們進行結果分析。 

結果分析

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

上面的圖就是Microsoft時序算法出來的結果圖了,挖掘模型查看器爲這種算法提供了兩個面板查看,一個是圖表、另外一個是模型,下面咱們將以此詳細分析,日常最經常使用的就是圖表模型查看器,圖標區分爲兩塊,如上圖,前半部分模型歷史分析數據,後面模糊區爲推測區域,右側一個序列篩選的下拉選項框,從橫軸中咱們能夠看到,時間區間爲2005年7月25——2007年11月25折線以實線表示,後面的區域爲預測區域,預測區間爲2008年7月25日至2008年11月25,折線以虛線表示。

嘿嘿...看起來是否是很清爽。

咱們來選擇一個產品來看看,咱們選擇M200 Europe、M200 NorthAmerica的銷量狀況,下面看圖:

經過點擊圖表中間的點擊線,咱們能夠分析這款自行車在這個兩個地區一年中的銷售峯值爲5月和12月,也就是所謂的旺季...這沒啥特別的對吧,5月大春天...嗯?米國五月應該也是春天...春天適合戶外...自行車買的好也理所固然,這裏其實咱們更關心明年的旺季或者淡季是啥時候,由於根據此咱們更可以採起相應的應對措施,好比旺季多增長庫存,淡季減小庫存等吧,咱們來看M200這款產品在08年的旺季是那個月....

看到了吧,08年的7月份將是這款產品的旺季,一樣淡季爲九月份

而這是在歐洲的銷量,可是在北美就不同了,它反而是在08年的9月份爲旺季,是吧,上圖中能夠看到,說明這兩個區域的銷售量還會有蠻大區別的,僅僅憑靠經驗是分析不出來的對吧。一樣它的淡季反而提早到來了,看下圖:

一樣從上面的全部的這兩款產品的產品圖中能夠看到,這兩款產品的銷量是蒸蒸日上,也就是所謂的朝陽好賣的產品,所帶來的利潤確定也在將來將會更好,咱們能夠點擊推測出他們在08年的營業額度是多少。咱們來看圖:

從上面圖能夠看出,根據折線圖規律能夠看出銷售額度和銷售量是相關的,汗...廢話!當銷售量增長的時候,銷售額度也跟着增長,可是從上圖中能夠看到一個有趣的信息,那就是在2006年6月25號之前銷售額度和銷售量是一條線,可是以後就分開了...對吧?這說明什麼?...以後的銷售數量開始慢慢的比銷售額度增高了...啥意思?也就是說這款產品賣得多了,他的銷售額度反而少了...汗...啥緣由?緣由很簡單....產品降價了!..產品降價了因此它的銷量上去了,同比這裏我說的是同比他的銷售額度反而降下來。

無論怎麼着這款產品隨着時間的增加慢慢的開始大賣了..並且營業額也在增長,尤爲在2007年末的時候有了一個大面積的跳躍,我估計是採起了比較好的措施。從圖中咱們還能夠看到將在2008年8月份有一個很大的銷售額度...推測出來的銷售額爲2267%。當你拿着這份預測成績單給BOSS...BOSS會不會睡夢中都能把本身笑醒...

是否是全部的產品都這麼叫賣呢,咱們來展開其它的幾款看看:

嘿嘿...咱們找到了一款比較不叫座的產品...T1000,從圖中能夠看到,這款產品是2007年8月份才上市的,而且已經上市銷量開始提高,可是之後開始慢慢萎縮...我去...經預測到08年的時候這款產品銷售額平平,還有大跌的趨勢!若是你做爲領導層看到這種業績該咋辦?想法子?仍是直接退市?

若是此曲線顯示不夠直觀,咱們能夠經過更改預測步驟數,更改折線的平滑程度,來對將來的預測顯示的更直觀一點。固然調整這個參數也能夠更改預測區間

是吧...這個T1000產品到2011年的時候估計就埋沒了...看樣子還有可能成負數...也就是會出現賠本賺吆喝的境地,固然預測的時間區間越遠,該算法的準確度將更低,畢竟嘛誰也不能預測過久將來的事情,由於不少因素都在變化着。

下面咱們來看看VS爲咱們提供的另外一個面板「模型」,該面板提供了每個序列類型根據數據內容造成決策樹算法,推測每一個序列隨着時間軸的進展所影響該序列的因素值,詳細信息能夠參照我前面的文章:Microsoft決策樹算法

上圖中能夠看到R250這款產品將以2007年8月22日這天爲分界線,在這以前銷量值遠遠大於這以後的銷量,神馬緣由?怎麼回事?這些的就須要去諮詢業務部分了,咱們從數據中能夠看到這個情況,這些狀況的發生都通常都會有巨大的緣由因素來促成,舉個例子:好比今年9月30,國內發佈了新的房貸政策...若是該曲線是房價預測線,這個因素就能體如今那天、再好比上一週北京持續霧霾...若是該曲線是口罩的銷售量預測線,這個因素就是促成這個節點的緣由.....

這個面板展現結果咱們就不詳細分析了,它的展現方式就是決策樹的分析方法,有興趣的同窗能夠參照我之前的文章。

上面的過程當中咱們只分析了整個挖掘的過程,根據折線圖分析了部分產品的趨勢和銷售問題,其實還缺乏了最重要的一個步驟,那就是告訴我明年一年月份銷售的業績和銷售額度是多少,在咱們以數聽說話的時代,剛給咱們產生一個趨勢圖用處有限,畢竟市面上隨便找一款圖表軟件我都能搞的出來,甚至搞的比你這個更好看!

咱們後面的文章將解決這個問題,經過預測我能明確地預測出明年甚至後年每月份的銷售業績和銷售額度是多少!拿着這份報告你就能夠義正詞嚴的去找BOSS,剩下的事就是他去作了....

結語

結語...該寫什麼呢?咱們來總結下,數據挖掘的含義,其實整個流程都是在利用數據加上數學來推測和預知未知的事情,而當前的咱們所利用的數學已經能夠來產生預測,一樣隨着IT行業互聯網近乎十年的蓬勃發展所積累的數據也能夠知足數據要求,而且隨着數據存儲成本的下降,結構化和非結構化數據的轉變成本下降,咱們所身處的就是一個數據的海洋,而當前迫切須要轉變的是咱們,或者說是一個觀念的轉變,一個思惟進步的過程,這就是大數據時代的意義所在!

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

Microsoft決策樹分析算法總結

Microsoft聚類分析算法總結

Microsoft Naive Bayes 分析算法

Microsoft算法結果預測篇

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

相關文章
相關標籤/搜索