前言html
有段時間沒有進行咱們的微軟數據挖掘算法系列了,最近手頭有點忙,鑑於上一篇的神經網絡分析算法原理篇後,本篇將是一個實操篇,固然前面咱們總結了其它的微軟一系列算法,爲了方便你們閱讀,我特意整理了一篇目錄提綱篇:大數據時代:深刻淺出微軟數據挖掘算法總結連載,我打算將微軟商業智能中在DM這塊所用到的算法所有集中在這個系列中,每篇包含簡要算法原理、算法特色、應用場景以及具體的操做詳細步驟,基本能涵蓋大部分的商業數據挖掘的應用場景,有興趣的童鞋能夠點擊查閱。本篇咱們將要總結的算法爲:Microsoft 神經網絡分析算法,此算法微軟挖掘算法系列中最複雜也是應用場景最普遍的一個,簡單點講:就是模擬咱們的大腦從茫茫的數據海洋中思考出有用的信息,來達到數據挖掘的目的。原理能夠參考上篇。算法
應用場景介紹數據庫
關於Microsoft神經網絡算法的應用場景仍是蠻多的,在上一篇原理篇咱們就介紹過,其主要是應用在如下領域:網絡
根據歷史數據預測股票升降、匯率浮動或其餘頻繁變更的金融信息。函數
分析製造和工業流程。post
文本挖掘。大數據
分析多個輸入和相對較少的輸出之間的複雜關係的任何預測模型。ui
固然以上的應用場景說的很泛泛,而且沒有一個特定的應用場景,這個是能夠理解的,由於此算法爲模擬生物行型算法,也就是說在特定的環境中只要有足夠的」證據「支持,咱們人類本身能經過主觀判斷出結果的應用場景,Microsoft神經網絡算法就能應用,可是當咱們人腦思惟對於少許」證據「下能夠主觀的判斷,可是面對茫茫的」證據「海洋下咱們人類腦子想要理清頭緒,而後判斷出結果就比較吃力了,這樣的就是神經網絡應用場景了。人工智能
上面的幾種應用場景中,並非只有Microsoft神經網絡算法就能挖掘的,好比:營銷中評比郵件仍是電臺廣告這兩種方式那種更有效,其實這是Microsoft決策樹分析算法的最佳應用場景;歷史數據預測股票升降這個是Microsfot時序算法的典型應用場景;....可是全部的這些這些...是由於咱們能肯定下來前提或者說挖掘範圍:好比:營銷評比,咱們就比較郵件還有電臺廣告...可是出現一種特殊狀況:好比二者都不能促進營銷...反而是由於公司最近增強了銷售手段而提高的,或者說某種不肯定的因素形成的業績提高,對於這種狀況咱們利用Microsoft決策樹算法也是沒用的。而用Microsoft神經網絡算法就能夠分析出來。url
還有一種更特殊的應用場景:當咱們面對一堆的數據而要基於某種目的去數據挖掘時,感受到無從下手或者在DM中選擇不到合適的算法的時候,這時候就是Microsoft神經網絡分析算法的應用場景了。
技術準備
(1)微軟案例數據倉庫(AdventureWorksDW208R2),案例數據倉庫中的呼叫中心的數據表,一張事實表FactCallCenter,下面步驟中咱們會詳細介紹這張表裏面的數據。
(2)VS200八、SQL Server、 Analysis Services。
挖掘目的
在一些大的商業公司中都有本身的呼叫中心,好比:移動的10086,聯通的10000....等等,而這些呼叫中心中除了再聯繫完他們以後讓你選擇:滿意、不滿意、灰常不滿意來做爲他們的服務等級標準外,在行業中還有一個指標來評比,這個指標被稱做:掛斷率,用來反映客戶的失望度,就是在咱們接進他們的客服中心的之間,若是選擇人工服務,他讓你等待...你不爽,掛斷了,這就產生了一個掛斷事例,而經過掛斷事例總和在全部呼入人數的所佔比就是掛斷率指標了。掛斷率越高說明他們客服中心服務質量越差。
挖掘的目的就是找出影響「掛斷率」的因素有哪些,是客服MM太少?態度很差?聲音不甜美?服務不周到?.........從而提升呼叫中心的服務質量,增長營收。
操做步驟
(1)咱們這裏仍是利用上一期的解決方案,直接打開,添加數據源視圖,方法參照前幾篇,咱們直接看圖:
右鍵,來瀏覽下這個表中的數據明細:
參照微軟案例數據庫官方說明,咱們將這個事實表裏面數據明細列出來。下面是字段說明:
列名 |
包含內容 |
---|---|
FactCallCenterID |
數據導入到數據倉庫中時建立的一個任意鍵。 |
DateKey |
呼叫中心的運營日期。 因爲供應商爲每一個運營日中的每一個輪班時間都提供了一個單獨的報表,所以日期不是惟一的。 |
WageType |
指示當天是工做日、週末仍是節假日。 |
Shift |
指示爲其記錄呼叫的輪班時間。此呼叫中心將工做日劃分爲四個輪班時間:AM、PM一、PM2 和 Midnight。 |
LevelOneOperators |
指示值班的一級接線員的數量。呼叫中心員工從一級開始起步。 |
LevelTwoOperators |
指示值班的二級接線員的數量。員工必須達到必定數量的工做小時數後,纔有資格成爲二級接線員。 |
TotalOperators |
此輪班時間內存在的接線員的總數。 |
Calls |
此輪班時間內收到的呼叫數。 |
AutomaticResponses |
徹底經過自動呼叫處理(交互式語音應答,即 IVR)來處理的呼叫數。 |
Orders |
由呼叫產生的訂單數。 |
IssuesRaised |
由呼叫產生的須要後續操做的問題的數量。 |
AverageTimePerIssue |
應答一次來電所需的平均時間。 |
ServiceGrade |
指示此輪班時間的「掛斷率」。掛斷率是呼叫中心常用的一個指標。掛斷率越高,說明客戶的滿意度越差,所以丟失潛在訂單的可能性也就越大。掛斷率是按輪班時間計算的。 |
其實上面的表中已經列出了幾個關鍵字段,咱們來看,其中咱們上面提到的「掛斷率」:ServiceGrade字段了,前面的一些行就是記錄一些呼叫中心工做信息了,當咱們面對這些信息是無從下手的,由於咱們看不出來那些因素會影響到ServiceGrade指標值的大小的,固然這時候咱們就用Microsoft神經網絡分析算法採起誘探的方式進行挖掘分析了。
(2)新建挖掘結構
咱們來新建這個數據挖掘模型,簡單的步驟,具體內容可參照我以前的博客內容,看幾個關鍵步驟:
咱們點擊下一步,而後進行輸入和輸出的設置
這裏咱們不知道那些因素會影響到「掛斷率」這個指標,咱們就乖乖的全選得了,這叫作:寧濫勿缺!....我去....可是有兩個咱們仍是沒選,一個DateKey..這個是上班記錄日期,我基本能夠確定這個指標和那天上班沒有毛關係,固然你也能夠選擇,那處理時間更長一些,還有一個是FactCallCenterID,這個是鍵值,確定不選擇的,而後輸出咱們選擇了:ServiceGrade掛斷率、而後還有Orders(產生的訂單量),這個和績效有關,咱們順便看看那些因素會產生更多的訂單,選他的緣由你懂得!而後還有一個LevelOneOperators,這個是第一個崗位的數量,經過它咱們能夠分析出這種分兩種崗位級別會不會有用。
咱們點擊下一步:
這裏提示下,神經網絡分析算法是不容許鑽取的,這個是能夠理解的,由於它不是線性函數,也就是說你鑽取的是一個個「神經元」節點,而這些「神經元」一樣又依靠其它的「神經元」支撐,因此理論上你的下鑽是毫無心義的,不明白的能夠參考我上篇原理篇。
咱們來部署該挖掘模型,而後進行處理,過程簡單,不廢話介紹。
結果分析
不介紹,咱們直接上圖看結果
神經網絡的「模型查看器」很簡單,能夠看到只有一個面板,裏面分爲兩部分:輸入和輸出,下面的就是各個變量的屬性值,經過操做上面的輸入和輸出就能夠分析不一樣變量對輸出的影響了,這個相似於「聚類分析算法」的特徵分析面板。
輸入屬性很簡單,咱們能夠選擇上面咱們選擇的各類屬性:
能夠選擇值
這裏咱們能夠看到,上面咱們選擇了「自助應答」這個值,可是它顯示的值是一個分段的區間值,這裏咱們要說明一下神經網絡的特色,對於離散型屬性值,Microsoft神經網絡是採起採樣分段來進行區間值截斷,可是這個區間值並非嚴格意義的按照數學上的等比數列進行分組,好比:
咱們來看一下ServiceGrade這個離散值在vs中的分組方式:
ServiceGrade 屬性在理論上是介於 0.00(應答全部呼叫)和 1.00(掛斷全部呼叫)之間的數值,可是在神經網絡算法中是按照上面的圖進行分組的,會將分組成 0.0748051948 - 0.09716216215 這樣的範圍。儘管此分組在數學上很準確,但此類範圍可能對業務用戶並無太大意義。要以不一樣的方式對數值進行分組,能夠建立數值數據列的一個或多個副本,並指定數據挖掘算法應如何處理這些值。這樣更能順利的接近咱們的目標分析值。
咱們能夠看到,這個輸出也是一樣的方式:
下面咱們來分析上面的第一個挖掘目的:那些因素會影響(掛斷率)Service Grade.咱們選擇一個分組最高的,一個分數最低的
上圖總能夠看到,咱們選擇的輸出爲「掛斷率」:Service Grade 這裏選擇了兩個區間:0.030-0.072和0.126-0.210,0.210的概念就是有一百個客戶打來電話,人家不爽,給你掛斷的人數有21個,已是一個很高的值了,這個值越高說明服務質量越差,咱們來看一下變量,很明顯:影響「掛斷率」的第一個因素爲:Average Time Per Issue(應答花費的平均時間)。
「應答花費的平均時間」在44.000-70.597之間的更傾向於0.030-0.072這個低分值的應答率,說明啥?也就是說人家打來電話通常在這個時間給你解決掉的,人家都比較滿意,都不會掛斷你。
第二個因素「Orders」訂單數量,這個也是在321.940-539.000之間的,掛斷率更低,其實這個應該是由於掛斷率低而致使訂單數量增長
咱們來看第三個因素「應答花費的平均時間」在89.087-120.000之間的,掛斷率直接飆升到0.126-0.210.....納尼!!!這是爲毛?...客服應答的時間越久...掛斷率越高!
哦哦...我猜這部分通常是客服MM給人家解釋的不滿意,而後人家一直想問明白,丫的客服MM就是解釋不清楚,因而乎客戶果斷掛電話,再也不鳥你了。固然還存在一種狀況就是客戶打電話一直騷擾着客戶MM...而後...而後客服MM就給掛斷了...固然..這些就是猜想了...咱們不關心過程,只關心結果:在這個區間的掛斷率就是高,有圖有真相。
我好奇的比較下「應答花費的平均時間」的兩個區間的對比值,咱們來看:
嘿嘿....應答平均時間在區間44.000-70.597之間的「掛斷率」就是很低,並且評分在100分!看上圖,機率在53.48%,而成爲高「掛斷率」的機率才爲:6.18%。
下面的應答平均時間在區間89.087-120.000之間的「掛斷率」很高,評分在74.01,評分值的高低反映的就是這個判斷的可信度大小,而且當作爲高「掛斷率」的機率飆升爲:45.22%。
再往下看,咱們還發現了一個更可愛的狀況,截個圖看看:
這個Shift的值表明爲輪班時間,看上面的值顯示的是midnight....深夜...漆黑的夜晚...給客服MM打電話的掛斷率機率都挺低的....這是神馬緣由.....看來微軟給的案例數據庫數據仍是挺真實的!
其它的屬性我這裏就不分析了,方法同上。其實到這裏咱們已經利用Microsoft神經網絡分析算法已經分析出影響「掛斷率」最重要的因素爲:Average Time Per Issue(應答平均時間),下面咱們調整輸入,直接來分析這個因素:
在44.000-70.597之間的,清一色的低掛斷率,而且產生的訂單量最可能爲321.940-539.000,汗...你妹...上班期間最好仍是在深夜。下面接着看:
換了一個區間...結果基本沒變,緣由不解釋
下一個區間,狀況發生了變化,在這個區間裏,訂單爲50.000-181.677之間的已經展示出來高」掛斷率「的趨勢。
.....我去...到了這個區間...成了清一色的高」掛斷率」,而且上班時間成了(PM2)下午....訂單數減小至50.000-181.677....看來下午客服中心應該都放假,所有改爲「深夜」上班...嘿嘿...
爲此我經過數據源視圖瀏覽數據,經過透視表來驗證一下咱們的推斷是否正確,看看下面的圖就知道了:
是吧...平均應答時間越久,應答率分數越高,說明掛斷率越高。
咱們也能夠藉助Microsoft神經網絡算法的特性,對上面我們推斷的結論進行反向驗證,咱們將輸出改爲Average Time Per Issue 「應答平均時間」,而後仍是選擇兩個區間值來看看,影響這個屬性的變量值有哪些
看到了嘛...很高的掛斷率在0.126-0.210之間的應答平均時間更傾向於89.087-120.000,一樣低「掛斷率」的就趨向於44.000-79.597了。
我們屬性值就分析到這裏,有興趣的童鞋能夠繼續分析其它的。
結語
本篇文章到此結束了...關於Microsoft神經網絡算法的應用場景很是的普遍,其實這幾年漸漸興起的語音識別、人工智能、文本挖掘等領域背後的最重要的支撐算法就是神經網絡算法了,有關基礎原理能夠參照我上一篇文章,本篇就不作深刻介紹了,後續文章繼續分析其它問題。
文章的最後咱們給出前幾篇算法的文章鏈接:
若是您看了本篇博客,以爲對您有所收穫,請不要吝嗇您的「推薦」。