数据挖掘是一门手艺。它涉及大量科学与技术的应用,而如何恰当地应用这些科学与技术也是一门技术。但如同其他成熟的手艺一样,数据挖掘也有一套易于理解的流程,可以将问题解构,并保证合理的一致性、可重复性和客观性。跨行业数据挖掘标准流程(CRISP-DM;Shearer,2000)对该流程进行了整理,如图1所示,以下为本人手工绘制:
上图明确了这个事实:循环迭代是数据挖掘流程的常态。通常,循环迭代一轮没能解决问题并不意味着失败。整个数据挖掘流程往往是探索数据的过程。在第一轮迭代之后,数据科学团队会对数据更加了解,在下次迭代时会更有方向性。下面详细讨论这些步骤。
一、业务理解环节
在初始环节,理解要解决的问题至关重要。虽然这似乎显而易见,但是实际上商业项目很少会像数据挖掘问题那样清晰明确。因此,在探寻结果的过程中,需要反复重塑问题和设计解决方案。如图1所示,该过程不是一个简单的线性过程,而是一个嵌套在循环中的循环。因为最初的构想可能是不完整的或不是最优的,所以若要得到满意的解决方案,就需要进行多次循环。在业务理解环节,分析师需要发挥创造力。正如接下来将会讲到的,数据科学固然重要,但成功的关键往往是商业分析师如何发挥创造力,将商业问题分解成一个或多个数据科学问题。充分掌握基础知识有助于分析师构思新颖的方案。
在解决特定的数据挖掘问题时,有多种工具可供使用。通常在前期我们会依据这些工具各自的优势来设计解决方案,也就是说,把问题分解为若干个分类任务、回归任务和概率估计任务的建模问题。
在第一个环节,方案设计团队需要仔细考虑需要解决的问题及其应用场景。这是数据科学最重要的基本原则之一,我们究竟想做什么?如何做?应用场景的哪些部分可能包含数据挖掘模型?根据期望值来构建商业问题,有助于把问题系统地分解为多个数据挖掘任务。
二、数据理解环节
如果目标是解决商业问题,那么构成解决方案的原材料就应该包含在数据里。因为几乎没有一份数据能完全符合问题的需求,所以我们需要了解数据的优势和局限性。收集历史数据的原始目的往往与当前面对的商业问题无关,有些历史数据甚至根本没有明确的收集目的。另外,用户数据、交易数据和市场回馈数据包含不同的信息,其涵盖的交叉人群和数据的可靠程度也可能不同。数据的成本不一也是常见现象。有的数据几乎可以免费获取,有的却需要费点力气才能获得。有的数据可以买到,有的数据却根本不存在,而采集它们甚至需要一个辅助项目。数据理解环节的关键是估计每个数据源的成本和收益,从而决定是否有必要进一步投资。即使所有数据集都收集齐全时,也需要额外花力气对其进行核对。比如,众所周知,用户记录和产品识别码多变且杂乱,清洗数据并匹配用户记录,以确保用户和记录一一对应,这本身就是一个复杂的分析问题(Hernández&Stolfo,1995;Elmagarmid,Ipeirotis&Verykios,2007)。
三、数据准备环节
虽然我们可以运用的分析技术十分强大,但是它们对所使用的数据有一些特定要求。通常,因为它们要求的数据格式与数据产生时的原始格式不同,所以需要对数据进行转化。因此,数据准备环节往往紧跟着数据理解环节,而在此环节中,数据被处理转化成特定格式,以获得更好的结果。典型的数据准备的例子有:把数据转化为表格格式、删除或推断出缺失值,以及转换数据类型。有的数据挖掘方法适用于符号数据和分类数据,有的则适用于数值型数据。此外,数值往往需要归一化或调整比例,以便于进行比较。上述几种转换都有相应的标准技术和经验法则。
四、建模环节
建模环节所输出的就是能反映数据中的规律的模型或模式。建模环节是将数据挖掘技术应用于数据的主要阶段。你需要理解数据挖掘的基本概念,包括现有技术和算法的种类,因为科学和技术正是在数据挖掘的这个环节发挥了最大的作用。
五、评估环节
评估环节的目的是严格评估数据挖掘结果,以确保它们有效且可靠,能够用于下一步。只要仔细地探查一个数据集,总能从中发现各种模式。但在严格的审查下,这些模式却可能根本站不住脚。我们希望能确保从数据中提取出的模型和模式能体现真正的规律,而不是特殊情况或样本异常。你可以在数据挖掘结束后直接应用其结果,但我们不建议你这么做。
首先,由于对部署环境的访问受到限制,所以“生产中”的综合评估就变得非常困难。其次,已部署系统通常包含许多“活动部分”,因而对每个单独环节进行评估也很困难。鉴于这种情况,拥有成熟数据科学团队的公司会明智地搭建尽可能反映真实生产数据的实验环境,以便在部署模型前得到最真实的评估。尽管如此,在某些情况下,我们也想通过构建能进行随机化试验的实时系统等方法,在开发环节进行评估。在用户流失示例中,如确定数据挖掘产出的某个模型能使用户流失情况好转,那么我们下一步可能会进行“活体”评估,即实时系统将模型随机应用于某些用户,而将其他用户作为对照组。
六、部署环节
在部署环节,数据挖掘结果乃至数据挖掘技术本身正(越来越多地)付诸实际使用,以获取投资回报。最简明的一类示例涉及在某些信息系统或业务流程中实现预测模型。在用户流失示例中,可以将预测流失概率的模型接入用户流失管理系统,这样,管理系统就可以向那些极有可能离开公司的用户发送特殊优惠。我们还可以将新型欺诈检测模型嵌入到劳动力管理信息系统中,以监视用户账户并“挑出”可疑交易交予欺诈分析师进行人工检验。
将模型部署于生产系统时,往往需要根据生产环境对模型进行重新编码。这通常是为了提高速度或提高该模型与现存系统的兼容性。但这可能会造成高额费用或投入。在许多情况下,数据科学团队不仅需要开发出一个可运行的原型,还需要对其进行评估,然后再将其转交给开发团队进行编码实现。
不管部署环节是否成功,整个流程往往都会再回到商业理解环节。数据挖掘流程能够暴露出商业问题和其解决方案的难点,而通过第二次迭代,就能改进解决方案。单是思考业务、数据和绩效目标的过程,往往就有助于想出提升业绩的新思路,有时甚至还能开辟新的业务线或创造新的投资机会。
值得注意的是,不一定非要等到部署环节失败才能重启数据挖掘的大循环。在评估环节就可能发现评估结果并未达到部署标准,而此时就需要调整问题定义或获取其他数据。这个过程即图1中由评估环节指向商业理解环节的“捷径”。在实际中,每个环节都应有回到其之前环节的“捷径”,这是因为数据挖掘流程的每个环节都有一定的探索性,而当有新发现需要纳入考量时,我们就需要有足够的灵活性来退回到之前的各环节。
转载自公众号xdmhjsdt,如若侵权请联系我们进行删除!
合作咨询market@dtstack.com
总部地址杭州市余杭区五常街道阿里巴巴数字生态创新园4号楼袋鼠云