【IT168 专稿】本文根据【2016第七届中国数据库大会】(微信搜索DTCC2014,关注中国数据库技术大会公众号)现场演讲嘉宾尹海宁老师分享内容整理而成。录音及文字编辑@田晓旭@老鱼。
讲师简介:
SAP全球预测分析专家团队成员,HANA高级方案专家。拥有15年以上数据仓库与商务预测分析解决方案经验。目前主要负责将SAP全球预测分析解决方案进行整合和优化,以满足中国客户的需求。
正文:
最近工业4.0频繁的被人们提起,那么到底什么是工业4.0呢?有的人说是集成,是创新,也有人认为是万物互联。但是我认为工业4.0最核心的内容就是数据价值的高效挖掘。
数据革命有两个查询关键词,一个是BI(商业智能),还有一个是数据科学。从图中可以很明显的发现2013年以后,这两条查询曲线有一个逐渐交汇的过程,查询数据科学的人越来越多,商业智能的查询量相对减少。其实,BI和Data mining永远是一个闭环,Data mining是指通过海量数据分析,找到数据规律继而预测未来。BI和Data mining的关系就像汽车驾驶,如果你只能通过BI看历史数据的话,那就相当于你驾驶时只能看后视镜,这样是无法驾驶的。但是如果反过来,你只有前窗可以看出去,没有后视镜,同样还是无法驾驶,所以BI和Data Science是相辅相成、互相依存的。
随着数据容量越来越多、数据变化速度越来越快,大家如果想要在数据中获得更多价值,那么最好的方式就是采用高级分析方法。
讲到高级分析,很多企业首先想到的就是聘用一些数据科学家组成一个预测团队。但是现代数据科学家需要具备很多技能,不仅是要有数学、统计学方面的知识,还需要掌握 Python、R语言等,更重要的是要知道怎么使用Hadoop或SAP HANA让数据流转运算的更快。
如今据科学家是一个非常fashion的职业,薪酬非常高,但是相对的,它的技能要求也很高,比如刚才说的数据与统计的要求,我问过一个专门搞SaaS的博士,他说要学好SaaS至少得五年时间。在座的各位可能搞数据库基本也都是五到十年,甚至十年以上了,但是你还愿不愿意再花五年时间去研究基础数学呢?
现在我们面临的一个很大的问题就是数据科学家的供需矛盾。从传统的交易数据,到现在社交网络的数据,再包括machine to machine的数据,我们可以从各种渠道获得海量的数据,但是如何在这些数据中进行准确高效的价值挖掘呢?
因为数据科学家要求的技能多,所以从业人数一定是少量的。这么少量的人怎么去完成这么爆炸性的工作呢,这边就存在一个高级分析师的缺口。根据麦肯锡预计,2018年美国对高级分析人才的需求量比预计的供应量高50%到60%。对此,SAP提出了一个解决方案,虽然数据科学家是少量的,但是业务专家有很多,可以让这些人快速的去学习预测分析。
接下来和大家分享一个实际案例。Aviva是全球排名第五的保险公司,很迫切的需要做数字化转型,而同时保险公司最关注的是财务的稳健性。目前,Aviva主要面临两大问题,一个是业务营销,因为之前没有一个很好的系统去支持它的业务,所以导致它在对客户推销时千人一面,实际业务的成交量也很低。第二个就是知识库积累,经验丰富的销售员可以轻易的找到潜在客户,但是很多普通销售员可能打很多电话才能找到一两个客户,也就是说销售经验是存在销售员的脑子里的,一旦他们离开公司,那么这些经验也就会被带走。
SAP提供了一个普及化的产品——SAP PA,它分为两大部分,一部分是自动模型,另一部分是专家模型。专家模型可以理解为以前传统的建模软件,是需要手动建模的。自动模式是专门针对业务用户和传统的IT从业人员。SAP几乎每个月都会在一线城市或者二线城市办免费培训,告诉学员怎样可以快速的去创建一个分类回归模型,聚类模型,时序模型或者关联模型等等。实际上,一般的大数据预测分析场景也就涵盖上这几大类模型。
自动建模软件支持IOT大数据平台原生类库,支持库内学习,支持非常大的数据量,支持Native Spark Modeling,支持流处理语言。图中提到的SAP PA支持五十万以上的变量,这五十万指的并不是五十万行,而是五十万列。大家对Oracle都很熟,可以想一想Oracle最多可以支持多少列?在我的印象中基本上也就是一千列左右。那么五十万列怎么去做,通常来说HANA是可以超过几千列去做的,但是真正到五十万这种级别的话,可能就要放到hadoop或者Spark上面去跑了。
其实,基于几十万列的数据挖掘如今也是常见的场景,比如制造企业生产线上的一些采样传感器将流水线全部串起来之后然后再做一些转化,或者是在音频分析的时候也有可能面临几十万列以上的特征值,所以说支持50万以上的变量是一个非常重要的功能。
SaaS也有一些缺省参数可以构建模型,那么自动模型和这个有什么区别呢?自动模型不仅仅可以配置缺省参数,它还可以会自动迭代算出一个质量较好的模型。
我们一般通过两点来对模型的质量进行评估,第一点是准确率,即模型对于规则挖掘的精准性,第二点就是稳定性。如果一味追求准确率,那么就会出现过拟合问题,如左上图所示,图上红颜色的点是学习数据,蓝线是函数或模型,从数学的角度来看,只要你的模型够复杂,一定可以将所有的红点串联起来,但是新数据进来,这个模型的准确率就不是那么高了,这种现象就是过拟合。还有一种情况是欠拟合,如右上图所示,它的整个函数或模型是准确率较低,新数据进来不准确,旧数据进来也不准确,但是它非常稳定的。以上这两种模型都不是最好的,非常好的模型应该是介于两者之间,既有一定的模型复杂度,稳定度又很好。
怎么样才能做到非常好的模型? SAP采用了一个俄罗斯的数学家发明的SRM原则,通过这个原则来保证最终模型是一个水准之上的非常好的模型。SRM原则通过内部迭代,不断的增加模型复杂度来判断是否为非常好的模型。一旦发现模型复杂度增加之后,历史数据和新数据的误差在扩大,那么之前的那个点就是非常好的模型。
非常好的模型产生之后还需要几个客观模型指标来测试,一个是准确性指标(KI),一个是稳定性指标(KR)。这些指标是客观的,可以和基尼系数或者ROC等等常规指标做转化的,所以SAP自动模型并不是空口无凭,它是可以通过客观指标来和其他模型作比较的。
之前讲到自动建模只需要选择一些建模大类例如分类回归、时序分析等等,无需细分到算法,但是这只是数据建模的一小部分,建模过程中很重要的一点就是数据准备。数据准备是相当耗费时间的,例如要选择怎样的采样方式、缺省值或异常值怎样处理。针对这些问题,SAP也推出了一个自动化预处理的功能,缺省值、异常值都可以自动去处理。
SAP PA将建模流程中的算法和统计学的层次进行了封装,使得更多的人可以使用大数据平台。如果你是业务专家,你可以更关注你的商业问题,如果你是DBA,你可以更关注采样数据以及如何让它流转的更高效。通过这个平台,大家可以关注自己最为关注的部分。
如今,预测性维护这个话题非常热门,很多企业或工厂都会要求在流水线和机器上加传感器做到预测性维护。那么什么是预测性维护?预测性维护是和反应性维护相对应的一种更高效的维护方式。反应性维护通常是指在机器或者流水线已经出现了噪音或高热等直接可以感受到的情况时进行的维护。一般这时机器各方面已经出现问题了,维修成本会比较高。预测性维护是通过早期预警来降低维修成本。
预测性维护可以带来很多好处,比如设备制造商通过做预测性维护改变了原先的运维方式,之前出问题了,需要现场的工作人员打电话到售后客户,然后上传一些错误日志,接着售后工程师再分析是什么问题,确定是什么元件,再去做配件调拨和派工,是一个很耗时的流程。现在通过预测性维护甚至可以在现场的人员还没有发现异常的情况下,就把配件准备好,指派专业维修工去现场进行维修了。这一举措对于设备运营商来说,可以降低维护成本、提高维修效率,提高最终客户的满意度。
将油压、引擎、转速等等数据收集完成以后交给预测分析,自动生成时间窗口,找到数据规律从而预测未来机器是否会出现问题,问题的原因是什么。
传感器的数据可能有几百几千个甚至可以达到上万个,通过自动分类模型,就可以立刻显示出和这个故障相关的变量贡献。
很多客户要求在做预测性维护的时候不仅要预测到哪台机器可能出现故障,还要精确到哪个元件出现故障,故障的根源是什么。图中的每一行数据其实都是一条预测故障,每一列是可能导致故障的原因,比如说引擎转速比较高或油压比较高,或者是温度比较高等等。从图中大家可以看到,前几行的故障可能是一个元件导致的,另外几行可能是某两个元件导致的,通过数值高低来判定故障原因,哪个元件的数值高那么哪个元件产生故障的概率就大。
上图所示是SAP预测分析软件的界面,SAP是一个软件提供商,他最终交付给客户的是3D的或者是和VR,AR集成起来的交互界面。3D视图是在BI平台上构建出一个运维区域的大致状态,颜色浅代表这台设备正常,颜色深代表这个设备有部分的问题。界面右侧是温度,气压、抖动三个指标的实时变化,例如当温度慢慢增加时,气压随之增加,而抖动的幅度也会慢慢增加。如果这几个指标加在一起,满足了预测分析的规则就会发一个命令到后台,设备的颜色就会慢慢加深,然后会自动发出一个工单。
讲到这里,可能很多专门做预测分析或者做数据挖掘的人会有疑问,这款软件主要是给非专业人士使用的,对于专业人士来说它的价值在哪里?实际SAP PA也是一款模型生产力工具,可以帮助专业人士在单位时间创建更多的模型。从图中大家可以看到,使用传统的方式做一个模型可能需要两周到四周的时间,如果使用自动建模的话,基本上几天甚至一天以内就可以完成。如果我们需要在完成一个模型之后再去做扩展时,则可以使用PA的模型工厂进行批量建模。
接下来给大家介绍一个去年我们做过的案例。某集团有一个大数据科学家团队在他们的一个科学论坛上发表了一篇文章,他们用R语言做了一个回归模型来预测一个区域某个产品的下季销量,准确率可以达到90%以上。因为这是一个跨国企业,按区域来划分的话至少需要几百个这样的销量预测模型,但是他只做了一个模型,如果用R语言继续去开发的话,工作量会非常巨大。这时,我们就向他们推荐了SAP自动分析软件,客户同意给我们5天时间来验证。首先,我们把R语言回归模型在PA里面使用自动建模做一个转换。学习数据大概是两年半的数据,测试数据大概是半年的数据,特征值的变量大概有两百多个,通过PA最终找出来下季销量主要和五个变量相关。我们按两年半的数据学习,半年的数据去做测试,误差基本上都是在5%以内,平均误差是3.8%,中位数误差是3.1%。就单独一个模型来看,完全可以满足客户的需求。
但是真正要解决的问题是怎么做一个模型的扩展。我认为数据挖掘的趋势一定是从粗放型模型往精细化发展的,很多零售企业都希望做到SKU级别的预测,这个时候模型就不是几百几千的概念了,而是上万的概念了,这是一定要使用自动化工具的。
怎么去做一个自动化的模型呢?,我们可以输出一个自动化模型的脚本,这个脚本里面会有一些参数,通过修改这些参数就可以自动的创建几百个模型。模型和产品一样,都是有生命周期的,刚开始运行的时候可能比较准一点,但是慢慢的随着企业业务的变化,数据分布的变化等等,就可能出现偏差了,准确度会有所降低。这时候,我们可以把这几百个模型导到模型工厂里面,通过模型工厂自动的定期的去排程,刷新这个模型。
另外,模型工厂也可以定制一个任务去检查数据偏差,继而设置一个触发器,当发现数据偏差超过阈值时,我们就让它触发一个重新学习的动作。这个就是模型管理工厂里面的自动模型管理。
如今,SAP一直在强调企业的数字化转型,通过数字化核心去推动供应链、客户全渠道营销体验、大数据与物联网等应用的发展,实际上这些客户应用背后都离不开SAP商业预测分析。释放大数据的力量,改变就从现在开始!