数据挖掘(Data Mining)在理论与实践的差异
随着大数据发展的浪潮,越来越多的在校生都开始涉猎这一块的知识,关注度比较高的或许就是大数据挖掘。相对于学生而言,既有数学建模的经历,也有应用数据的专业,只要踏实学下去,就业优势比较大。但很多朋友在从业以后,会遇到不少头痛的问题,其中就发现Data Mining在理论与实践中存在着很大差异。
1.获取和清洗数据的方式
『理论』
在我以前参加的数学建模比赛和学术论文撰写过程中,涉及的数据很大一部分都来源于《中国统计年鉴》,有人口、经济、交通运输和教育等方面的数据。还有一部分数据来源于有限的抽样问卷调查,少数数据来源于其他学术论文。
可以看得出这些数据有显著的特点:基本不需要数据清洗、结构化数据、数据量小。
很多时候数据的清洗是借助Excel和SPSS,可以轻松得到模型的特征向量数据,所以这大部分工作时间都花在了构建数学模型上。
『实践』
在企业工作中,所有涉及大数据挖掘的业务场景,数据获取涉及的面会全得多,有平台业务数据、用户信息、埋点日志数据、爬虫数据、第三方授权数据和黑产数据,等等。其中有结构化数据,更多的是非结构化数据。数据类型除了数值型,文本、字符串、图片、视频和语音也都称为数据(广义)。
因此,在大数据挖掘的过程中,很多工作量都会体现在数据的ETL过程中。每天几十GB、几百GB,甚至到TB级别的数据量已经不能用传统的分析工具来清洗了。这样自然而然的大家普遍就会使用很多大数据生态圈的技术,如用Hive做数据查询和加工工作、用Spark做复杂数据的解析和迭代计算。
所以在数据获取和清洗的方式上,数据获取和清洗方式已经和以往的理论研究存在着很大差异了。
2.解决业务问题的建模思路上
『理论』
在学术研究中,对于解决应用问题的建模思路上,重点会围绕模型本身思考:“属于哪一类的模型?使用哪一种算法?找多少参考文献?做哪方面的参数优化?”
在一些参赛选手和文献作者的眼中,模型的难度、复杂度和优化程度会是获奖和审核发表的关键。而模型具体能够解决什么实际问题,不是他们关心的重点,也就是说关心模型的实用性程度不够高。
『实践』
对于一名合格的大数据挖掘工程师而言,在面对一个新的业务场景需求构建模型前。一定会花很多时间在熟悉业务和分析用户上。在他们看来,有经验的业务运营人员和分析师就是他们的“参考文献”。
这种实际运营的经验,对用户细节的洞察度,才是做好这个业务场景的关键,是构建业务场景模型的重中之重。相反,在模型的使用上,他们会倾向于选择自己更擅长使用的模型,熟悉一个模型的来龙去脉,解决实际问题,这才是建模的初衷。所以,在解决业务问题的建模思路上理论与实践有很大差异。
3.算法和模型的认知上
『理论』
在学术上所解决的应用场景,很多时候都是针对具体类型的算法去构建模型,可能只是做一个预测股票的价格、分析季节与旅游人数的相关性、评估食品抽样方案的好与坏、寻找城市交通调度方案的最优解等。
也就是说,面对的建模场景并不是很复杂,算法在有些时候可以看作一个模型,熟悉一种算法的应用就可以解决一类场景的问题。
『实践』
而在企业工作中,每一次遇到的业务场景都融合了很多细分的场景,每一个细分点都需要单独构建一个算法,最终才能整合成一个完整的模型。
就拿分析电商平台用户的性别来说,满足这样的业务需求,就需要针对性地细分用户的具体类型(新用户、老用户和潜在用户)。每一种类型的用户群体在电商平台的行为路径和购买偏好都存在很大差异,如果仅仅用一个分类算法和特征向量解决业务问题,效果肯定会极差。
对于理财平台用户的投资分析,也需要区分场景,例如未投资前、首次投资、二次投资和多次投资,每一种场景的用户数据有很大差异,比如活跃度、投资额、偏好产品等。
还是这句话:“好的模型是由多个算法结合起来,再考虑实际的业务规则做一定的调整”。所以,在算法和模型的认知上理论与实践存在着很大差异。
4.效果检验的流程上
『理论』
在学术上,对于模型好坏的判断,都有严谨的衡量指标,具体会根据损失函数的最优策略评估。损失函数有平方损失函数、绝对损失函数、对数似然损失函数等。
在训练测试的流程中,同样也会有严谨的交叉验证,通过数学方法,提前预防抽样不稳定情况的发生。对于数据的分布,不管是离散型,还是连续型,具体的算法模型都会有对应的特征选择和分布类型。而通过这些评估流程要达到的目的只有一个,就是保证应用模型的线下效果好。而对于实际好与坏的判断,没人知道,也没多少人关心。
『实践』
在企业工作中,所有优秀的业务场景模型都经历了线下评估、线上测试和效果跟踪与模型优化。
也就是说,即使线下评估数据足够优秀,也并不能代表什么,更不能定义这是一个好模型,唯一起到的作用只能是为上线测试做数据支撑。同样,对于一个线下数据表现不是足够好的模型,也不一定立刻否决它线上测试的效果。一个好模型,不是一次就能够做出来的。更多时候对于线上的测试和后期效果的跟踪依赖性很大。
就拿分析用户逾期风险模型来说,判断其好与坏还需要经历很多个用户借款流程的完整周期,甚至是逾期时间在90天以上的评估,或许是需要很多年才可以调整出一个优秀的用户逾期模型。
所以,在效果检验的流程上,如何定义一个好模型也存在着很大差异。
5.对待结果的责任上
『理论』
一些人只关心参加比赛能不能获得好名次,能不能在一个核心期刊发表文章。对于模型效果则不会关心,即使很差的模型,也没有人完成实际的验证。
这些人会认为做这件事的过程和得到的反馈比实际解决问题的效果重要得多。
『实践』
在企业工作中,做业务场景的模型往往需要有敬畏之心,构建模型的人应该对自己的模型负责。
就拿做一个用户风险的分析模型来说,如果将很多正常的用户,甚至是优质的用户,错误地评估他们为高风险用户,拒绝给他们发放活动奖励,甚至拒绝用户余额提现。这个模型所造成的后果,可能是大批用户的投诉申告。贴吧、社交网站的各种舆论负面消息接踵而来。
所以,成为一个数据挖掘工程师,做一个业务场景模型,敬畏之心宁可有,不可无,这也是负责任的态度。在对待结果的责任上,对模型结果负责的态度理论与实践有很大差异。
综上所述,在Data Mining的道路上,学术研究的理论很多时候与企业实践存在着很大的差异性。望每个做大数据挖掘的朋友们都能铭记于心。