博客 数据挖掘流程详细解析

数据挖掘流程详细解析

   数栈君   发表于 2024-05-23 11:49  625  0

数据挖掘是一门手艺。它涉及大量科学与技术的应用,而如何恰当地应用这些科学与技术也是一门技术。但如同其他成熟的手艺一样,数据挖掘也有一套易于理解的流程,可以将问题解构,并保证合理的一致性、可重复性和客观性。跨行业数据挖掘标准流程(CRISP-DM; Shearer, 2000)对该流程进行了整理,如图1所示,以下为本人手工绘制:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/78b637e5af4be83fa9d792ac0201c99d..jpg

上图明确了这个事实:循环迭代是数据挖掘流程的常态。通常,循环迭代一轮没能解 决问题并不意味着失败。整个数据挖掘流程往往是探索数据的过程。在第一轮迭代之后, 数据科学团队会对数据更加了解,在下次迭代时会更有方向性。下面详细讨论这些步骤。

一、 业务理解环节 

在初始环节,理解要解决的问题至关重要。虽然这似乎显而易见,但是实际上商业项目很 少会像数据挖掘问题那样清晰明确。因此,在探寻结果的过程中,需要反复重塑问题和设计解决方案。如图1 所示,该过程不是一个简单的线性过程,而是一个嵌套在循环中的 循环。因为最初的构想可能是不完整的或不是最优的,所以若要得到满意的解决方案,就 需要进行多次循环。在业务理解环节,分析师需要发挥创造力。正如接下来将会讲到的,数据科学固然重要,但成功的关键往往是商业分析师如何发挥创造力,将商业问题分解成一个或多个数据科学问题。充分掌握基础知识有助于分析师构思新颖的方案。

在解决特定的数据挖掘问题时,有多种工具可供使用。通常在前期我们会依 据这些工具各自的优势来设计解决方案,也就是说,把问题分解为若干个分类任务、回归 任务和概率估计任务的建模问题。

在第一个环节,方案设计团队需要仔细考虑需要解决的问题及其应用场景。这是数据科学 最重要的基本原则之一,我们究竟想做 什么?如何做?应用场景的哪些部分可能包含数据挖掘模型?根据期望值来构建商业问题,有助于把问题系统地分解为多个数据挖掘任务。

二、数据理解环节 

    如果目标是解决商业问题,那么构成解决方案的原材料就应该包含在数据里。因为几乎没 有一份数据能完全符合问题的需求,所以我们需要了解数据的优势和局限性。收集历史数据的原始目的往往与当前面对的商业问题无关,有些历史数据甚至根本没有明确的收集目 的。另外,用户数据、交易数据和市场回馈数据包含不同的信息,其涵盖的交叉人群和数 据的可靠程度也可能不同。数据的成本不一也是常见现象。有的数据几乎可以免费获取,有的却需要费点力气才能获 得。有的数据可以买到,有的数据却根本不存在,而采集它们甚至需要一个辅助项目。数据 理解环节的关键是估计每个数据源的成本和收益,从而决定是否有必要进一步投资。即使所 有数据集都收集齐全时,也需要额外花力气对其进行核对。比如,众所周知,用户记录和产 品识别码多变且杂乱,清洗数据并匹配用户记录,以确保用户和记录一一对应,这本身就 是一个复杂的分析问题(Hernández & Stolfo, 1995; Elmagarmid, Ipeirotis & Verykios, 2007)。 

随着数据理解环节的深入,问题解决路径的方向可能会随之改变,而数据团队的工作甚至 有可能产生分支。以欺诈检测为例。数据挖掘技术被广泛地应用于欺诈检测,而许多欺诈 检测问题都涉及经典的有监督型数据挖掘工作。请思考一个信用卡反欺诈示例。因为消费 记录会呈现在每个用户的账户里,所以盗刷行为很容易被发现——要么一开始被信用卡公 司发现,要么事后在查看账户记录时被顾客发现。因为合法用户和欺诈罪犯是目的完全相 反的、截然不同的人,所以可以假设几乎所有的欺诈行为都被识别并合理标注了。因此信 用卡交易就有了可靠的、能作为有监督型数据挖掘的目标变量的标签(欺诈和合法)。现在请思考另一个相关问题:反医保欺诈。这个问题在美国每年都会耗费数十亿美元。尽 管它看上去很像一个传统的欺诈检测问题,但只要思考一下这个问题与数据的关系,就能 意识到,这两个问题其实迥然不同。这个问题中的欺诈者——提出虚假保险赔付申请的医 疗机构或患者——也是医保系统中的合法医疗机构和合法用户。因为欺诈者是合法用户的 一部分,所以并不存在一个客观公正的中立方来告诉我们“正确”的收费价格应是多少。其结果就是,医保费用数据没有可靠的、能标注欺诈行为的目标变量,因此,适用于信用 卡欺诈的有监督学习方法也就不适用了。这样的问题通常需要用无监督方法,如画像分 析、聚类、异常检测和共现分组来解决。

三、数据准备环节 

虽然我们可以运用的分析技术十分强大,但是它们对所使用的数据有一些特定要求。通 常,因为它们要求的数据格式与数据产生时的原始格式不同,所以需要对数据进行转化。因此,数据准备环节往往紧跟着数据理解环节,而在此环节中,数据被处理转化成特定格 式,以获得更好的结果。典型的数据准备的例子有:把数据转化为表格格式、删除或推断出缺失值,以及转换数据 类型。有的数据挖掘方法适用于符号数据和分类数据,有的则适用于数值型数据。此外, 数值往往需要归一化或调整比例,以便于进行比较。上述几种转换都有相应的标准技术和 经验法则。

在数据准备环节,有一个非常常见且重要的问题需要注意,这就是“漏洞”(Kaufman 等 , 2012)。漏洞是指,虽然历史数据中的一个变量会提供有关目标变量的信息,但这些信息 在需要进行决策时尚不存在。举个例子。“一个网络会话中的网页访问总数”这个变量可 以用来预测某个上网者在某个特定时间点是会结束浏览该网站,还是会继续访问网站的其 他页面。但该变量的值在该会话结束前是未知的;而在会话结束后,就可以直接得到目标 值,而不需要通过预测来推断它了(Kohavi 等 , 2000)。再举一个例子。对于预测顾客是 否是一名“土豪”而言,其所购商品的种类(或退而求其次,支付的税额)非常有用,可 是在预测时是不可能知道该变量的值的(Kohavi & Parekh, 2003)。在数据准备环节,必须 慎重考虑漏洞问题,因为数据准备往往是基于已发生的事实(即历史数据)的。

四、建模环节 

建模环节所 输出的就是能反映数据中的规律的模型或模式。建模环节是将数据挖掘技术应用于数据的主要阶段。你需要理解数据挖掘的基本概念,包 括现有技术和算法的种类,因为科学和技术正是在数据挖掘的这个环节发挥了最大的作用。

五、评估环节 

评估环节的目的是严格评估数据挖掘结果,以确保它们有效且可靠,能够用于下一步。只 要仔细地探查一个数据集,总能从中发现各种模式。但在严格的审查下,这些模式却可能 根本站不住脚。我们希望能确保从数据中提取出的模型和模式能体现真正的规律,而不是 特殊情况或样本异常。你可以在数据挖掘结束后直接应用其结果,但我们不建议你这么 做。

通常,在应用某个模型之前,先在可控的实验室环境下对其进行测试,才是更加简 单、廉价、快速和安全的做法。同样重要的是,评估环节还能确保模型满足最初的商业目的。要记得,商业中数据科学的 首要目标是辅助决策,而且从开始应用数据挖掘起,我们就聚焦于想要解决的商业问题。通常,数据挖掘给出的解决方案只是一个大方案的一部分,它同样需要评估。即使模型在 “实验室”里经受住了严格的评估,也可能会因某些其他外部因素而失效。比如,检测解 决方案(如欺诈检测、垃圾邮件检测和入侵监测)的通病就是误报太多。同一个模型,在 实验室标准下可能极其准确(>99%),而在实际商业背景下却可能由于出现过多误报,以 致成本太高而无法使用。(处理所有误报信息的成本是多少?而安抚客户不满情 绪的成本又是多少?) 数据挖掘结果的评估环节包含定量评估和定性评估。企业的各种利益相关者都关心数据挖 掘输出的最终模型做出或者辅助做出的商业决策。

在许多情况下,模型的应用需要得到他 们的“同意”,而他们同意的前提是对模型决策的质量感到满意。上述情境会因应用而异, 但利益相关者们往往想知道应用这个模型是否利大于弊,尤其是该模型会不会出现致命错 误。 为了促成这种定性评估,数据科学家必须要考虑模型对于企业利益相关者(而不仅 仅是数据科学家)而言的可理解性。如果模型本身就令人费解(比如有许多复杂的数学公 式),那数据科学家又怎么能让模型的表现易于理解呢?最后,具备一个综合评估框架是非常重要的。这是因为,从一个已经部署的模型中获取其 表现的详细信息是十分困难的,有时这甚至是不可能的。

首先,由于对部署环境的访问受 到限制,所以“生产中”的综合评估就变得非常困难。其次,已部署系统通常包含许多 “活动部分”,因而对每个单独环节进行评估也很困难。鉴于这种情况,拥有成熟数据科学 团队的公司会明智地搭建尽可能反映真实生产数据的实验环境,以便在部署模型前得到最 真实的评估。尽管如此,在某些情况下,我们也想通过构建能进行随机化试验的实时系统等方法,在开 发环节进行评估。在用户流失示例中,如确定数据挖掘产出的某个模型能使用户流失情况 好转,那么我们下一步可能会进行“活体”评估,即实时系统将模型随机应用于某些用 户,而将其他用户作为对照组。

六、部署环节 

在部署环节,数据挖掘结果乃至数据挖掘技术本身正(越来越多地)付诸实际使用,以获 取投资回报。最简明的一类示例涉及在某些信息系统或业务流程中实现预测模型。在用户 流失示例中,可以将预测流失概率的模型接入用户流失管理系统,这样,管理系统就可以 向那些极有可能离开公司的用户发送特殊优惠。我们还可以将新 型欺诈检测模型嵌入到劳动力管理信息系统中,以监视用户账户并“挑出”可疑交易交予 欺诈分析师进行人工检验。 

数据挖掘技术本身越来越多地被直接部署。比如,在精准投放线上广告时,我们会选择部 署能在新广告宣传活动出现时,能自动批量构建(并测试)模型的系统。之所以部署数据 挖掘系统而非其产出的模型,主要原因有二:一是诸如欺诈检测和入侵监测一类的技术变 化太快,数据科学团队难以招架;二是一个企业要构建的商业模型太多,数据科学团队无 法对每个模型都进行精心的手工构建。因此,在生产中最好直接部署数据挖掘技术。如此 一来,其关键就是构建预警系统,以将异常情况及时告知数据科学团队并提供失效保护操 作(Raeder 等 , 2012)

将模型部署于生产系统时,往往需要根据生产环境对模型进行重新编码。这通常是为了提 高速度或提高该模型与现存系统的兼容性。但这可能会造成高额费用或投入。在许多情况 下,数据科学团队不仅需要开发出一个可运行的原型,还需要对其进行评估,然后再将其 转交给开发团队进行编码实现。

不管部署环节是否成功,整个流程往往都会再回到商业理解环节。数据挖掘流程能够暴露 出商业问题和其解决方案的难点,而通过第二次迭代,就能改进解决方案。单是思考业 务、数据和绩效目标的过程,往往就有助于想出提升业绩的新思路,有时甚至还能开辟新 的业务线或创造新的投资机会。 

值得注意的是,不一定非要等到部署环节失败才能重启数据挖掘的大循环。在评估环节就 可能发现评估结果并未达到部署标准,而此时就需要调整问题定义或获取其他数据。这个 过程即图 1中由评估环节指向商业理解环节的“捷径”。在实际中,每个环节都应有回到 其之前环节的“捷径”,这是因为数据挖掘流程的每个环节都有一定的探索性,而当有新 发现需要纳入考量时,我们就需要有足够的灵活性来退回到之前的各环节。


本文系转载,版权归原作者所有,

转载自公众号 xdmhjsdt ,如若侵权请联系我们进行删除!  


《行业指标体系白皮书》下载地址:


《数据治理行业实践白皮书》下载地址:


《数栈V6.0产品白皮书》下载地址:


想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:


同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack

0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群