Python数据科学应用从入门到精通
上QQ阅读APP看书,第一时间看更新

1.7 数据挖掘与建模的注意事项

数据挖掘与建模过程中,有以下7点注意事项。

1.数据挖掘与建模是为了解决具体的问题

数据挖掘与建模是为了解决具体的问题。这一问题既可以是理论学术研究,也可以是具体的商业应用。大到研究商业银行经营效率与股权集中度之间的关系,小到研究美容行业小型企业对目标客户的选择与营销策略的制定,进行数据挖掘与建模、开展定量分析都是为了研究并解决企业生产经营过程中遇到的市场营销、产品调研、客户选择与维护策略制度等方方面面的问题,进而据此提高经营的效率和效果。

因此,虽然我们提到的概念是数据挖掘与建模技术,但是从解决问题的角度来说,数据挖掘与建模并不仅仅是一种技术,而是一种过程,一种面向具体业务目标解决问题的过程。我们在选择并应用数据挖掘与建模过程时也必须坚持这一点,要以解决实际问题为导向选择恰当的数据挖掘与建模技术,合适的模型并不一定是复杂的,而是能够解释和预测相关问题的,所以一定不能以模型统计分析方法的复杂性来评判模型的优劣,而是要以模型解决问题的能力来进行评判。比如在预测客户违约行为时,我们可以选择神经网络、决策树等更复杂、更前沿和更流行的数据挖掘与建模技术,也可以选择Logistic回归、线性回归等传统的数据挖掘与建模技术,但是不能笼统地说神经网络、决策树等前沿数据挖掘与建模技术就一定比Logistic回归、线性回归等传统数据挖掘与建模技术好,而是要看它们解决问题的效率和效果,如果我们使用Logistic回归建立的模型预测的准确性更高,那么显然Logistic回归在解决这一具体问题方面是要优于其他建模技术的。

2.数据挖掘与建模有效的前提是具备问题领域的专业知识

数据挖掘与建模有效的前提是具备问题领域的专业知识。数据挖掘与建模的本质是用一系列数据挖掘算法来创建模型,同时解释模型和业务目标的特点。

我们在建模时有时候考虑的是因果关系,比如研究客户行为特征对他产生购买行为的影响,我们把响应变量设定为客户的购买行为,把特征变量设定为客户的性别、年龄、学历、年收入水平、可支配收入、边际消费倾向等。之所以选取这些特征变量,是基于我们在问题领域的专业知识,或者说是基于我们的经济学理论或者商业运营经验,可以相对比较清晰地知道哪些因素可能会影响消费者的购买行为,所以才能够顺利地建立一个合适的模型。

我们在建模的时候有时考虑的是相关关系,比如某商业银行发现做完住房按揭贷款的客户在业务办理后半年到一年时间里大概率会有办理小额消费贷款的需求,那么做完住房按揭贷款和办理小额消费贷款需求之间有没有因果关系呢,如果有因果关系又是怎么具体传导的?有的银行客户经理解释为客户做完住房按揭贷款之后通常有装修的需求;有的解释为客户有购买家电家具的需求;有的解释为住房按揭贷款的按月还款会在一定程度上使得消费者原来的收入无法支持现有消费;需要借助银行消费贷款来维持,那么究竟哪种解释、哪种传导机制是真实的、正确的?这时候我们通常很难而且也没有必要去深入分析研究,只需要知道做完住房按揭贷款和办理小额消费贷款需求之间具有强烈的相关关系就可以了。我们可以据此制定有针对性的营销策略,开展相应的客户营销,精准地满足客户需求。在这一过程中,我们依据的就是商业运营经验,通过数据的积累和经营的分析找到了这两者之间的关联关系,从而才可以有针对性地进行建模。

因此,数据和实践之间是有差距的,数据只是实践的一部分反映,关于实践的更多信息则需要我们通过问题领域的专业知识来弥补,只有将数据和专业知识充分融合,才能够更加全面完整地解释商业历史行为,更加准确有效地预测商业未来表现。

3.数据挖掘与建模之前必须进行数据的准备

数据挖掘与建模之前必须进行数据的准备。获得足够的、高质量的数据是模型建立的根本前提。如果没有数据,就不可能完成建模过程;如果数据的质量不高或者样本量明显不足,那么大概率就形成不了真正有效的能够解释和指导商业实践行为的模型。数据准备包括搜集数据、整理数据、设定变量。

(1)搜集数据。为了达到研究目的,必须收集相应的数据信息或者说是有价值的研究结论,这些必须建立在真实丰富的数据事实基础之上。有些企业可能已经具备了研究所需要的数据信息,可以直接使用,但是在很多情况下,企业需要通过社会调查或者统计整理等方式去获取所需要的数据信息。

(2)整理数据。数据搜集完后,这些数据可能是没法直接使用的,或者说是相对粗糙的,尤其是当搜集得到的数据集包含成百上千的字段,那么浏览分析这些数据将是一件非常耗时的事情。在这时,我们非常有必要选择一个具有好的界面和强大功能的工具软件,使用合适的编程语言或统计分析软件(如Python编程语言、SPSS软件、Stata软件等)对获取的数据信息进行必要的整理,让粗糙的数据信息转化为标准化的数据信息,使得数据分析环境或数据分析软件能够有效识别、存储和运行这些数据。

(3)设定变量。在数据挖掘过程中,最终研究结论的形成往往是通过设定模型、求解模型、分析预测来实现的,而所有的模型都是通过变量来实现,或者说模型本身就是变量之间关系的反映。而从数据端出发,由于数据信息是纷繁芜杂的,因此为了提炼出共同性的、系统性的、规律性的信息,数据信息必须通过变量来进行承载。设定变量的常见操作包括直接选择变量、创建全新变量、对变量进行计算转换等。

4.最终模型的生成在多数情况下并不是一步到位的

最终模型的生成在多数情况下并不是一步到位的。在构建的最终模型中,我们需要确定响应变量、特征变量以及所使用的数据集。但是在实践中,我们很难在研究的一开始就能够非常精准地确定所有合适的响应变量和特征变量,也无法保证搜集整理的数据都是正确、完整和充分的。事实上,如果我们一开始就很完美地确定好这些内容,那么从另外一个角度来讲,也就局限住了思路,放弃了通过模型过程可能获得的新认知。

需要说明和强调的是,虽然在前面提出数据建模要服务于业务目标,但是此处所提及的业务目标是一个大范围的概念,更加具体和精细的业务目标也有可能是在建模过程中增加或完善的。比如我们一开始制定的业务目标是研究客户满意度,结果发现具有部分客户行为特征的客户满意度往往比较低,那么从对企业价值贡献的角度来讲,这些客户的价值贡献是否也相对较低甚至没有贡献?如果是这样,我们的业务目标是不是改为研究高价值贡献客户的满意度更为合适?也许我们就需要修改一些业务目标,然后重新建立恰当的模型,重新界定数据收集整理的范围,重新开展分析研究。

在具体建模方法的选择上,很多时候也需要进行对比和优化。比如针对同一个商业问题,可能有多种建模解决方案,例如构建神经网络径向基函数模型或者决策树模型可能都能达到目的,但是究竟哪种质量更好、效率更高,我们可能需要进行多种尝试,并且将基于不同建模技术得到的结果进行比较,然后得出最优选择,找到最为合适的解决方案。

针对具体的特征变量,在模型中也是需要持续完善优化的。比如有的特征变量在模型中的显著性水平非常低,说明特征变量与响应变量之间的关联程度可能不高,对于解释和预测响应变量的贡献比较低,我们可以考虑去掉这些特征变量。再比如模型整体的拟合优度、可决系数偏低,或者说模型的解释能力不够,那么可能是因为遗漏了对于响应变量有重要影响的关键特征变量,需要我们根据实际情况选择加入特征变量进行完善。

此外,在很多时候还要根据数据的变化对模型进行优化,比如对某集团公司的客户满意度影响因素进行调研,发现不同区域的客户或者不同类型客户在评价满意度方面考虑的变量是不一样的,普通客户可能对产品价格考虑更多,VIP客户可能对增值服务考虑更多,那么我们最好是针对不同区域、不同类型的客户分别建立模型,进行拟合和预测。

5.模型要能够用来预测,但预测并不仅含直接预测

模型要能够用来预测,但预测并不仅含直接预测。我们建立的各种模型,包括神经网络径向基函数、神经网络多层感知器、决策树、时间序列预测、回归分析预测等,都能在一定程度上对生产经营行为进行预测,比如预测贷款申请客户的违约概率,预测具有什么行为特征的客户群体能够大概率发生购买行为,预测特定市场明年的销售量,等等,这些都是直接预测。

还有一些建模技术,虽然并不能直接预测,但是它能够帮助用户更加深刻地理解市场需求和客户行为特征,从而可以为下一步的生产经营管理提供重要的智力成果和决策参考,有助于未来商业价值的提升,因此这些模型事实上也具有广义上的预测的价值。比如我们研究手机游戏玩家体验的重要关注因素,研究不同学历、不同收入水平的网购消费者对于网购的整体信任度是否不同,进行新产品上市之前的调查研究,把具有相似行为特征的样本进行归类,归纳绩效考核的关键影响因子等,都可以通过数据建模来实现数据挖掘,进而获得有价值的信息并用于商业实践。

此外,还有一类预测是以打分的方式实现的。比如银行与通信公司进行业务合作为客户提供信用贷款,通信公司基于对客户信息隐私保护的考虑,不可能直接为银行提供客户的具体个人信息,但是可以出具一个对于客户综合信用评价的打分提供给商业银行作为参考。这个打分其实也是一种广义上的预测,银行可以据此设定相应的准入门槛,比如50分以下的客户不予准入,60分以下的客户贷款额度不得超过10万元,等等。

需要特别强调的是,预测仅仅是一种概率,而且这种概率有可能是基于不完全信息产生的结果,所以预测大概率产生违约的客户最后也有可能不产生违约,预测小概率违约的客户最后也有可能产生违约。

因此,在实际商业经营实践中,通常采用“模型+人工”组合的方式进行决策,针对模型通过或者不通过的情形,再增加一道必要的人工复核环节,减少犯两类错误的风险(H0为真但判别为拒绝,此类错误被称为“弃真”错误,即将真的当成假的,也称为第一类错误;H0为假并被接受,此类错误被称为“取伪”错误,即将假的当成真的,也称为第二类错误)。

6.对模型的评价方面要坚持结果导向和价值导向

在对模型的评价方面要坚持结果导向和价值导向。传统意义上对于模型质量的评价通常是模型的准确性和稳定性。准确性指的是模型对于历史数据的拟合效果,以及对未来数据的预测情况,如果模型尽可能多地拟合了历史数据信息,拟合优度很高,损失的信息量很小,而且对于未来的预测都很接近真实的实际发生值,那么该模型一般被认为是质量较高的。稳定性指的是模型的敏感度,当数据样本被改变时,模型的预测效果不应出现较大波动。比如一个集团公司基于A分公司建立的客户分级营销策略模型能够稳定无偏地用于B分公司,而不会导致基于A分公司建立的模型对B公司应用的预测结果与B公司的实际结果之间有着较大的差距。

然而,上述传统的认知是存在不足的。一个简单的例子是基于客户行为画像建立一个客户流失度模型,该模型的预测准确度比较高,如果我们的业务目标导向是要尽可能留住老客户,那么该模型的质量还是不错的,通过预测可以做出有前瞻性的安排,比如提供优惠政策、增值服务等;但是如果我们的业务目标是要获取更多的利润,而这些流失的客户在很大程度上对于公司的利润贡献很低甚至是负值(获取收入不能弥补维系成本),那么构建的模型可能是价值比较低的,我们更应该构建一个包括客户流失度和客户利润贡献度双目标变量的预测模型。

因此,从商业经营实践的维度去看,我们更应该关注模型的价值增值导向,要紧密围绕业务目标、改善商业表现去关注模型的准确度和稳定性,或者说,我们要通过建模过程来达成业务目标,进一步优化商业行为,提升经营的效率和效果,而不应该仅停留在对目前经营现状的解释上,固步自封地制定计划。

具体来说,模型的价值增值方式有两个渠道:一是引用模型的预测结果,针对预测结果前瞻性地做出部署和有针对性的安排,体现出远见卓识;二是通过模型获得新知识,改变传统的认知。例如在小额快贷的大数据审批过程中,我们在模型中引入的特征变量通常包括客户的收入状况、信用状况、学历状况、家庭情况等传统认识中与客户履约情况具有强相关关系的变量,但是如果我们在特征变量中加入一个用户申请贷款时间的变量,可能会发现它与客户的履约情况也是一种强相关关系,比如深夜凌晨申请贷款的违约率要显著高于白天工作时间申请贷款的违约率,那么我们在下一步的审批策略和产品开发时就要予以高度关注,这一信息就是我们通过模型学到的新知识,也是我们建模的重要价值。

7.建立的模型应该是持续动态优化完善的

建立的模型应该是持续动态优化完善的,而非静态一成不变。我们建立的模型都是基于历史数据和对当前商业模式、经营模式的考虑,但是一个令人不容忽视的事实就是,外面的世界一直在发展变化,例如客户消费习惯在变化、市场容量和特征在变化、竞争对手行为在变化以及整个经济形势在变化,等等。创新层出不穷,技术的进步、商业模式的变革都会对现有商业模式形成冲击甚至是颠覆性的改变,如果我们一直基于历史和当前的信息去预测未来的世界,而不是根据形势变化做出应有的改变,那么几乎可以确定,我们建立的模型大概率不能够适应新商业模式的要求,所有预测得到的结论可能跟现实之间有着较大的差距。

举一个简单的例子,一个住宅小区的订奶量一直保持较为匀速的合理增长,然后牛奶生产销售配送商对小区的订单量进行合理预测并做出有针对性的生产、销售、配送安排,但是在某一年该小区突然进驻了多家其他牛奶经营商,而且奶的质量更高,价格更为便宜,折扣力度更大,配套服务更到位,那么这显然会对该牛奶生产销售配送商的经营形成巨大冲击,原先建立的模型、依据模型建立的预测很可能就不再适用了。

再比如,商业银行作为一种经营风险较高的行业,通常都会采取措施监控员工异常行为,监控方式往往是建立相应的模型观察员工账户的资金流出,比如是否与供应商发生不合理的资金往来、与授信客户发生不恰当的资金往来、参与民间借贷、实施银行卡大额套现等。但是当模型执行一段时间后,银行内部员工往往就会掌握或者推断出模型规则,然后在行为中针对这些规则展开一定的规避,从而导致模型不再如先前一样有效,不再能够有效监控员工异常行为。

因此,只要商业模式是持续的,我们建立的模型就应该随着商业环境的不断变化而定期进行更新,这样才能保持模型的长期有效性。