前言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神经网络算法的应用场景很是的普遍,其实这几年渐渐兴起的语音识别、人工智能、文本挖掘等领域背后的最重要的支撑算法就是神经网络算法了,有关基础原理能够参照我上一篇文章,本篇就不作深刻介绍了,后续文章继续分析其它问题。
文章的最后咱们给出前几篇算法的文章链接:
若是您看了本篇博客,以为对您有所收获,请不要吝啬您的“推荐”。