首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第二章 建立问题

对于任何一个预测性分析模型来说,最为重要的地方就是最开始的部分,也就是预测性模型进行定义的时候。建立一个预测性分析模型是一件非常困难的事情,因为所需要的技能非常庞杂,需要同时具有商业领域、数据库领域或是数据基础领域、预测性算法和技术领域的知识。很少有人能够同时具有所有这些技能,因此构建一个预测性分析模型通常情况下都是一个团队性的工作。

本章介绍了建立预测性模型的原则。这一阶段在整个预测性分析项目中的地位非常重要,因为如果没有对分析的基本单元、目标变量和模型筛选标准的定义,那么最终的模型很可能就是无效的。

预测性模型建立步骤:CRISP-DM

跨行业标准的数据挖掘模型建立过程(CRISP-DM)所描述的是数据挖掘中的六个步骤。自从这一概念在1990年初被提出以后,它就成为了最常用的数据挖掘模型构建方式。目前最为常见的CRISP-DM的替代步骤是每个机构或是组织自己提出的建模方式,不过如果仔细观察的话就会发现,那些方法的关键步骤和CRISP-DM仍然是相同的。

CRISP-DM的受众包括模型的管理者和参与者。对于项目的管理者来说,CRISP-DM从项目的角度描述了模型建立的过程,揭示了模型完成时他们需要经历的步骤。其中每一个步骤都需要计算所需的投入,且需要进行跟进以确保整个项目能够顺利按时间计划进行推进。CRISP-DM的最后一个步骤大多数情况下都需要给出一份决策报告,并讲明进行决策的理由。这一刻可能是项目管理者最为愉悦的时候。

对于模型的参与者来说,按部就班的过程为分析提供了可供依据的结构,而非只是提供了分析所需的简单步骤,而且还同时满足了将分析结果进行文件化和报告化的过程,这对于一个新入行的建模师来说非常重要。即使是对于一个经验丰富的建模师来说,CRISP-DM所描述的过程也十分简明且具有逻辑。 有很多模型的参与者可能会对模型的线性化和按部就班的条目具有抗拒心理,因为数据和模型本身的原因,项目总是很难按照原计划进行推进,意外几乎会出现在所有的项目中。然而,有一个好的基本计划仍然是非常具有价值的,尤其是当参与者在向他们的管理者汇报他们的工作以及他们这么做的理由的时候。CRISP=DM为模型构建的每个步骤都提供了正当的理由。

图2.1展示了CRISP-DM中的六个步骤:商务理解,数据理解、数据准备、建模、评估和展示。这些步骤以及它们之间的相互关系都在图中进行了很好的诠释,这都是在一个项目中最为基本的步骤。表2.1是对它们最为简短的描述。

请注意图中的闭合回路,在经典的分析过程中常见的指标定义都是基于项目挖掘的结果。例如,如果商业目标是在商业理解的过程中被定义的,那么你就可能会发现在数据理解环节曾经进行过数据检查的一些内容或许在数量以及质量上已经无法满足预测性分析的需要。在这一案例中,必须利用现有数据对商业目标进行重新定义,这一工作必须在数据准备和建模之前完成。或者也可以考虑首先建立一个缺乏准确性的模型,然后再通过创造的新的衍生变量对模型进行提升。

商业理解

每一个预测性分析模型都需要一个目标。每一个领域中负责决策、警报、预测或是提供价值报告的专家都必须学会定义这些目标。分析师自己有时候自己会具有这种专业性,然而在大多数情况下,管理者或是直接主管对于模型对组织工作的影响具有更为前瞻性的理解。如果没有领域内的专家,对模型的定义以及评价工作或许可能会因为缺乏核心的商业聚焦变得失败。

三脚凳

理解预测性模型成功的关键结构的方法是想象一个三脚凳。三脚凳的每一个腿对于维持稳定及满足凳子的需求都至关重要。在预测性分析模型中,凳子的三个脚是(1)领域内专家,(2)数据或是数据库专家和(3)预测性建模师。领域内专家需要依据组织价值搭建问题所需的框架。数据或是数据库专家需要定义预测性分析模型需要哪些数据以及如何评估归化这些数据。预测性建模师需要建立能够满足商业目标的模型。

试想一下如果三脚凳缺失了一个腿或者多个腿会发生什么吧。试想一下如果问题没有很好地被定义,只有数据管理员和建模师去完成这个工作,那么分析师或许能够将模型构建得极为准确,但是如果模型无法满足实际的需求,那么依旧是无用的。或者也可以从另一个维度来看,或许建模师能够预测出正确类型的决策,但是建模师不会了解到在商业中真正重要的是什么,即使是一个很优秀的模型如果采用了错误的标准,那依旧不是一个正确的模型。

如果数据库专家没有参与,那么数据问题很可能会接踵而至。首先,大多数人可能并不会明白数据库中表格的布局以最好的存放各领域所需的内容。其次,大多数人可能并不会对数据表现形式具有足够的理解,即使有些标签字段或许看上去仅仅是凭直觉甚至是有些神秘,你或许都不会在数据词典中找到对应的内容。第三,许可不够充分可能会使数据很难融入到预测性模型中。第四,数据源或许无法实现预测性建模师对于数据本身的期待。第五,由预测性模型团队所预想出的模型展示方式或许无法获得机构的支持。

如果在CISPR-DM的商业理解步骤没有预测性建模师的参与,那么在本章中的过程中就会首先遇到问题。首先,管理者将会不了解预测性模型能够做什么,或许在预测性模型不负责任的宣传下,将会使得管理人对预测性模型提出的需求不符合实际。其次,对预测性模型的目标变量的定义工作可能根本无法展开,即使展开的话,也可能会定义得很模糊,使得预测性模型本身的效果大打折扣。第三,如果没有预测性建模师对预测性模型所需要的数据进行设计,那么模型表格可能无法定义或是缺少模型所需的关键性字段。

商业目标

设想一下在CRISP-DM的商业理解阶段,组成三脚凳的三类人都已经聚齐。那么在这些个人或者组织进行参与的数小时或是数天的会议中,权衡和折衷可能会重复上演,由此才可以建立坚实的商业或是预测性模型目标。

在商业理解阶段有六个问题是需要清楚定义的:

·预测性模型需要解决的核心商业目标

·商业目标应该如何被量化

·有哪些可得到的数据能够被用于对商业目标进行量化

·有哪些模型能够被调用用以对商业目标进行描述和预测

·如何对商业目标的模型拟合优度进行量化以便确认模型评分具有商业意义

·预测性模型应该如何展示

通常情况下,在讨论中预期能够达到的结果在大多数的组织中是在不完美环境下的产物。例如,你想要用于预测性模型的数据可能并不具有时间模式行为。能够直接表现商业目标的目标变量可能根本就不存在或是无法被量化。计算机得到的结果可能无法满足分析师构建模型的预期。或者可能不存在在规定时间内能够完成项目的雇员数量。或许只有很少一部分预想的问题能够被揭示。项目管理者需要清楚哪些商业目标能够在时限内完成以及合理的预算范围。

预测性模型能够被用于很多的商业项目。其实商业项目本身就是对预测性模型的一种限制,这一模型能够被解决很多传统商业企业无法解决的问题。如下是预测性模型的一个短列表,我个人曾经建立过,或是帮助我的客户建立过这些模型。

虽然有很多的模型是被用于预测人或事物的行为,但并不是所有。有一些模型就是被用于更好的理解人、事物或是过程的行为。例如,杂草的抗逆性模型被建立的初衷就是为了验证杂草对某种农药的耐药性增强的假设。这个模型定义了成功或失败除掉杂草的驱动性因素,这个观点本身就很具有洞见性。在客户几天内购买某种产品的模型中,理解客户为什么会产生购买的行为本身比做出客户促销方式选择本身更具有价值。但是如果一个客户留存模型做得过于准确,或许能够匹配出带来利润增长的那部分客户,但这对于客服中心或许并不是一个很好的参考。

为预测性模型定义数据

预测性模型的数据必须是二维的,同时包含有行和列,其中每一行都是一个分析单元。对于客户分析来说,它就是一个顾客。对于欺诈分析来说,它就是一项交易。对于客服中心来说,它就是一个客户电话。对于调查分析来说,它就是一项调查。分析的单元具有项目专属性,因此是预测性分析建模时商业理解阶段工作的一部分。

如果模型的数据是从文件加载来的,那么数据的真实形式很可能会不匹配,因为大多数数据支持的软件包都具有不同的形式:

·带有分隔符的文件,通常情况下都用逗号(.CSV文件),退格键,或是其它的特征键进行划分,从而对不同特征的部分进行指定。

·宽度恒定的文件具有限定数目的特征字段。这种文件中不需要分隔符,但是在数据加载前每种数据的具体形式必须被准确获知。

·其他的客户型文件

·二维文件,包括对应软件包的特殊格式文件,如SPSS文件(.sav)、SAS文件(.sas7bdat)和Matlab文件(.mat)。

大多数软件包也通过本地或是ODBC为其他数据库提供了接口,这样有助于相应字段在软件中的直接获取。一些软件也允许简单的书写甚至是在数据获取中的复杂本地查询,这些操作的便利之处在于:

·所需的数据不必被保存到硬盘上,到预测性模型上进行加载,这对于大数据的处理是一个非常缓慢的过程。

·数据能够被保存在数据库中而无需为文件提供额外的操控脚本。

·分析师获得了对数据更强的操控力和更复杂的处理能力,从而使数据能够得到更好地应用。

然而你必须知道的是数据的获取并没有改变数据本身,且有可能在发生错误的时候不会出现警报。如果分析师无法控制数据的转换,那么模型本身也可能会变得令人费解。

定义列为度量值

表格中的列也被称为属性、描述词、变量、领域、特征或是列。这本书中所采用的这些标签均是可交互的。变量是对数据相关性或是历史记录的度量。对于客户分析来说,这一度量值可能是客户ID,客户年龄,客户住址等。数据中属性的数量受限于分析单元的特殊性,属性的可利用价值以及数据库或是预测性模型的处理能力。

数据中的列就是分析单元的测量尺度,对于预测性算法来说,列的数量和形式必须进行逐条的定义。用于描述此类数据的另一种方式是矩阵。除此之外,度量值的意义必须是一致的。如果你是基于客户行为进行建模的,那么你可能就会立刻面对一个进退两难的困境:应该如何对在不同时间拜访多次的客户信息信息进行处理,从而使得数据保持矩阵的形式。

表2.2表示的是连锁酒店的两个客户的拜访信息,其中有一个人拜访了三次而另一个人只拜访了一次。在下列的表格中,标记为“Date of Vusut1”的表格客户第一次拜访的时间。客户100001只拜访了一次,因此在visit 2和visit 3列中没有对应的值。这些位置被标记为“Null”或仅仅是空白。然而如果这些特征没有被定义的话,那么就有可能在算法或是一些模型中产生错误,使得分析师无法客观还原造访多次客户的实际情况。这一问题会在第4章被重复提及。

然而在这份表格中其实还隐藏着另一个问题。度量值“Date of Visit1”是第一次拜访。那么这一行为模式是否和客户最近的行为模式相关呢?对于客户100001来说,最近的一次拜访行为就是“Date of Visit 1”,然而对于客户100002来说,最近的拜访行为是度量值“Date of Visit3”。预测性模型算法将每一列都视为不同的算法单元,因此,如果这一行为模式与最近的拜访行为关联性较强,那么这种数据展现方式无法满足要求。如果想要满足这一需求,那么需要将数据的展示方式调整到以下模式。

在这份数据中,Visit 1不再是第一次拜访时间,而是最近的拜访时间,Visit2是大上次的拜访时间,Visit 3是大大上次的拜访时间。选择的数据展示方式取决于对你需要进行预测问题的价值。

对于客户数据的整理还有第三种方式,那就是去掉现成的数据并利用一致性的方式对客户的访问情况进行统计。表2.4就是类似这种展示的方式:利用两名顾客最近的拜访情况、第一次拜访情况以及进行拜访的次数进行描述。

最终可以将展示所得到的问题总结成表2.3、2.4和2.5,在这种情况下表格就不仅仅是二维的,而是三维的。这种时间维度就通过数据的列进行了展示,通常这种情况都是通过对时间维度的特征进行统计分析得到的。

定义分析单元

预测性模型算法假定每一条记录都是一个独立的观察值。其中的独立性仅指算法并不直接涉及两条记录之间的直接关系。例如,如果记录1和记录2的顾客是夫妻,经常一起进行消费,在算法中对这两个人的记录处理并不会和其他两个人有什么区别,算法并不能判断他们之间的关系。

如果行并非是相互独立的,而是相互之间具有某种联系。数据本身并无法对这种行为模式进行展示,但是我们可以在之后通过建模来诠释这些联系。

假设在酒店分析中,每条记录代表对旗下连锁酒店进行拜访的顾客。假设每个记录都是独立的,即每个顾客的行为都具有完全自主性。虽然有时候这看起来似乎是成立的,但是在商业社交和商务会议中经常会发生例外。

如果建模数据的分析数据并不是相互独立的,且模型的建立目的是为了和连锁酒店具有业务联系的独立决策那么会发生什么?如果这家公司恰好有一个旅游项目,房间预定保持不变,访客的入住完全是为了商业目的。那么这些记录相互之间就具有一定的联系,也就是所谓的机构项目。那么基于这些记录所建立的模型就必然发生偏移,因为这些数据全都出自同一个机构。那么由此数据所得到的模型就会鉴别出这些数据和机构项目相关而和散客行为无关。

在分析过程中并不总是能够清楚应该使用哪个单元进行分析。即使是为了同一个连锁酒店构建模型,而模型的商业目的是为了定义客户行为以便能够更好的迎合顾客进行市场拓展。也或许这一模型的商业目的是为了在下一季度增加更多的客户拜访量。

在第一个目标下分析的单元很明显是一个人:一名顾客。在这种场景下,每条记录代表一个独立的客户,而列描述的是客户的行为,包括他们的人口统计资料和他们在酒店中的行为。如果客户在多种场合下都光顾过酒店,其拜访历史只能在同一条记录中进行展示。其中还可能包括的一些变量有最近的拜访、客户拜访的频率、客户每一次的停留时间、用餐时间、以及在酒店中发生的其他值得注意的事情。

但是在这种统计方式下与每次独立拜访相关的细节就会变得模糊。如果一个客户拜访的花费有增高或是降低的趋势,将这些信息都整合到一条记录中有可能会使这些信息变得模糊。为了捕捉这些细节的变化,你必须创造额外的衍生变量。

分析的另外一种单元形式是拜访记录:每条拜访记录都包含每次独立的访问信息以及在拜访中客户的行为。如果客户拜访了10次,那么数据中将会存在十条记录,这些记录将会被认为是独立事件,彼此之间没有联系;模型不会知道有一个顾客曾经拜访过多次,算法也不会知道这些访问之间的联系。一个独立的客户拜访多次的效果就在于:利用客户拜访的次数对客户进行度量,使得这种模式在该算法中变得更为明显。从拜访记录的角度来说确实如此,但从客户记录的角度来看可能并不是如此。

有一种沟通访问量和客户信息的方式是将衍生变量的信息与拜访的历史信息相对应。衍生的变量包含拜访的次数,在过去的三次拜访中平均的花费情况,从最后一次拜访结束到现在的天数。你必须注意避免在拜访记录中遗漏掉进一步的衍生信息。如果你创造了一个衍生变量用来统计客户拜访过的次数,那么未来的的拜访信息就很难融入数据库,记录中只有上次拜访结束的时间信息。这就妨碍了根据简单的数据进行新变量衍生的操作,例如根据地点字段进行变量衍生。总之,被选取用来进行商业建模的分析单元是由商业目标和模型操作的自由度所决定的。模型打分所依据的决策是基于交易吗?他们的产生是依据于单一客户的行为吗?他们的产生是依据于单一的拜访,或是多个交易的渐进性行为或是一段时间的拜访行为?有一些机构甚至基于相同的数据通过不同的分析单元构建了多个模型,这些分析单元能够驱动模型决策的产生。

定义目标变量

对于建立一个预估或是预测特定值的模型来说,其中有一个重要的步骤就是进行商业理解以便对于一个或是多个需要进行预测的目标变量进行定义。在模型数据中,一个目标变量就是一列,其中包括需要按照商业目标定义进行估计或是预测的值。目标变量可以是数值,也可以是类别范畴,这取决于建立模型的种类。

本章之前部分的表2.5项目列表的“Business Objectives”显示了与一些项目相关的目标变量。

在该表格中的前两个条目是经典的预测性模型问题:第一个是一个分类问题,第二个是一个预估问题。以上这些都将在第8章中进行定义。在第三个条目中的避免商业欺诈的部分中,目标变量可以定义为一个二进制变量(1是欺诈,是非欺诈),也可以用五个级别进行代替:其中四个级别表示欺诈,一个级别代表非欺诈。这不仅为区分商业欺诈提供了一个好的指标,也对欺诈的类型进行了定义以便使机构能够采取相应的应对措施。

值得注意的是表格中最后的两个条目。这两个目标变量的建立都是为了解决同一个问题,即用来预测下一次消费的时间。然而两者采用了不同的处理方式。第一个条目是对真实数值最为直接的预测,然而一些机构基于多种理由更为期望的可能是将这一回购的窗口期压缩至7天。首先,他们可能不会在乎顾客是否会在第30天或是60天后会再次进行消费,因为这有可能已经超出了他们项目所具有的影响窗口。其次,二进制的分类问题通常可能是更容易准确解决的问题。这些模型没有必要区分出某些人是在14天后产生回购行为还是20天后产生回购行为:在二进制的目标变量模式下(同时赋值为),这些行为是相同的。预测性模型对二进制的目标变量的预测比之全分布类型的结果更为准确。

对目标变量进行定义在预测性模型的搭建过程中非常重要,因为这是建模师和项目管理者渴望知道的、模型算法需要去诠释的唯一信息。算法本身并没有常量,也并不会像是建模师或是项目管理者一样为问题提供背景信息。因此模型目标变量的定义必须能够对商业目标本身进行描述和定量。

目标变量的时间维度

对于大多数用于预测未来行为的模型来说,对时间线进行细心考量是必要的。预测性模型数据,也就是所谓的全量数据,是历史性数据,这也就意味着数据的采集行为发生在过去。为了从历史数据中构建模型对所谓的未来行为进行预测,那么就需要将时间线本身转换成数据。

表2.2展示了用于目标变量定义的概念性时间线。所有被用于建模、转化成数据的时间线都必须位于最右侧的垂线——“Data pull timestamp”之前。对timestamp的定义必须位于所有输入的已知值之后,而构建的用于建立模型时间线的数据必须位于timestamp的左边。

图2.2定义目标变量的时间线

图中“Time Needed to Affect Decision”时间线对于模型建立非常重要,能够使时间处理的方式变得成熟。例如,如果你构建了一个用于预测客户波动的模型,那么预测客户发生变动的最早时间以适时推出客户留存项目就变得非常重要。因此,你可能想要知道的是客户波动是否会在未来的30-60天内发生,那么在这一案例中就必须存在一段大约是30天的时间段用来分割最近输入的时间线和客户发生波动的时间线。

图中“Timeframe for Model Inputs”的时间范围具有两个节点。其中“Input Variable Timestamp Max”由目标变量所定义并会对目标决策产生影响。而时间的最小值仅由商业目标和实际经验决定。有时候维持一个较长的时间线是非常困难和代价高昂的。而在其它的一些情况中,领域内专家的一些观点可能都基于数年前的信息,通常非常固化,且在目标变量的预测中并不见得就具有价值。

图中右侧的时间段“Additional Date for testing”有时可能在模型评估中非常重要,对于模型评估来说最好的变量数据就是那些还未被模型算法获知的并能够还原模型所需预测的目标模式。在目标变量节点随后所搜集的数据就是很好的留存数据。

定义预测性模型成功的方法

判断一个模型的好坏基于机构特定的利益以及商业成功标准的特征。只有将商业成功的目标转化成为预测性模型的标准,建模师才能够去选择适合的模型。

如果模型的目标是提供高精确性的预测或是商业决策,那么就需要测量精确性的方法。如果对商业的解释与利益的契合点非常高,那么就不需要精度测量的方法;相反如果主观地测量最大值反而可能是最为理想的。在一些项目中可能会同时结合两种方法,因此最为精确的模型不会为了易懂性而牺牲精确性。

有关模型进行分类以及预测的成功标准的细节将会在第9章中进行讨论。

分类成功的标准

对于分类的问题来说,最常见的评价精确度的指标是Percent Correct Classification(PCC)。PCC度量法是对整体的精确性进行测量,这与错误的种类无关,每一种错误都会进行相同尺度的测量。另一种分类精确度的测量方式为混淆矩阵,对每一种错误类型进行枚举,例如错误警报或是漏检。PCC和混合矩阵在对总体进行打分或是或是决策辅助的时候是恰当的。例如,如果想要基于呵护在浏览网页时的模式行为对其推送定制化的内容,那么就需要对每个访问者进行打分并基于打分对其进行进行相应的操作。

如果你的目标是服务一系列的人群,需要根据模型评分区分不同种类的人群,并仅针对具有某种特征的人群采取某一行动,那么你就可以借助于Lift、Gain、ROC以及Area under the Curve(AUC)这些标准完成。这在建模进行客户分析区分不同亚群以便与市场管理人联系或是在商业欺诈分析中为进一步调查区分好的候选交易信息中非常流行。

预估成功的标准

对于持续性的输出值评估问题,被用来进行模型评估的标准通常是R2、平均误差、均方误差(MSE),中位数误差、平均绝对误以及中位数绝对误差。在每一项的标准中,你首先需要计算一个预估的误差出来,然后利用真实值减去预估值,,随后基于这些误差值进行统计学计算。随后将这些误差值汇总到每条记录中。

平均误差在计算模型是否发生了正向或是负向偏移方面非常有用。平均绝对误差在计算误差的幅度方面非常有效(与正向误差或是负向误差没有关系)。分析师通常情况下不仅会评估模型整体的成功程度,也需要创建实际值的散点图与预测值的散点图进行对比、或是利用实际目标值的散点图和误差的散点图进行对比用来对预测值的全范围进行检查。

通常情况下,你也可以选用诸如Gain或是AUC这样的候选等级指标对成功的标准进行预测,即使他们通常并不被包含在用于预估问题的预测性分析软件中。在这些情况下,你需要创建一个定制化的成功评价指标。

其它的定制化指标

有时候没有任何类型的成功指标能够足够评估预测性模型,因为他们与商业目标不符。试想一下在前面提到的商业欺诈的例子。让我们试想一下该该模型的目的是每个月从上千的发票样本中得到100个欺诈案例。如果分析师构建了模型并选取了PCC最大的那个,或许在这个愚蠢的分析师眼中,PPC是评价模型好坏的指标,但其实前100个参数都不是该标准的标准候选参数。那么这是为什么呢?因为假设如果每个月要处理100,000个商业案件,而你的目的是只需要得到其中的0.1%。而该模型或许对99.9的数据都非常有效但偏偏会漏掉那0.1%。

在机构对构建模型具有特殊需求的时候,最好的办法是根据成本自定义函数。在商业欺诈的案例中,你需要得到的是对客户最有用的100个样本。对于研究者来说更为糟糕的情况是对错误警报的追求,在上例中这是个彻头彻尾具有欺骗性的指标,因为上例中的模型只需要进行排序。那么应该用什么样的指标评价上例中的模型呢?其实没有任何一个标准能够用来评价上述模型,虽然ROC曲线或许看起来与目标最为契合。或许你可以选择ROC曲线下面积最大的那个模型。然而,在该方法中将真阳性和假阴性视为等同,其中的一个解决方法是赋予假阳性较之真阳性更高的权重,你可以赋予假阳性较之真阳性高十倍的权重。实际的花费值具有领域特殊性,这或许是由经验总结而来,也可能是由领域内专家裁定。

对于个性化模型的另一种候选评分方式是投资回报模型或是利润模型,这其中需要对客户或是交易进行复杂的可变的成本计算(这是数据记录中的一部分),并会根据客户反馈的偏好生成一个综合性的、可变的返回值。例如,如果你正在构建一个获客模型,经典的成本是与电子邮件以及个人通话相关的综合成本,返回值就是获得客户的预估值。对于欺诈鉴别来说,成本与消费发票和个人声明有关,返回值与成功追回的款项相关。

值得注意的是对很多个性化的成功标准来说,实际的评估值或许没有评估值的排名重要。如果你将累计净收入作为定制化的成本功能写入模型,那么最终的收益值或许不会出现在报告中,除非这一指标的平均值可作为人群划分的临界值。

非标准化预测性模型的建立

虽然CRISP-DM是一种预测性模型可以参考的非常实用的指南,但是有些时候在建模工作中,为了快速获得对模型的认知跳过按部就班的结构化分析往往更具有优势。其中一种方法是在模型完成之前首先进行搭建和模型展示。

首先进行模型搭建

预测性模型相对于其它建模方式来说最大的优势在于其可在多种算法实现的自动操作。自动化的操作可以允许你在模型中输入更多的候选变量。其中尤其是作为候选算法之一的决策树算法,相较于其它算法来说需要更少程度的数据准备过程。

模型的搭建能够在数据准备过程之前完成,有时甚至可以先于数据理解实现,这一步通常也是问题最多的一步。然而,在建模过程中也存在一些优势,你也可以将之理解为数据理解中的额外部分。

首先,预测性模型能够提供给建模师对于好的预测参数的一种预判。一些在个人理解中或许不是好的预测指标的内容有时候可能会是一个好指标。其次,早期模型的建立能够告诉建模师最终模型的精准程度以及所需要花费的成本和基准线。

第三,也可能是早期模型建立最为具有优势的地方在于能够判断出模型执行程度的好快。如果模型的执行力度能够超出预期,那就说明输入变量包含了目标变量所需的更多信息甚至是包含了目标变量本身。有些时候这一现象非常明显,例如如果需要进行处理的客户信息只有在客户回复邮件后才可知道,那么其中客户的状态也是一个需要输入的指标,其初始状态是Null的就是那些没有回复邮件的客户。但是很多的时候情况可能更为微妙,需要建模师尝试去理解为何一个变量能够成为重要预测的关键。

早期模型的展示

对于一个组织来说,模型的展示有可能要花费很大的精力,其中可能会涉及到案例的多个方面。如果这一模型的展示定位是一种实时的交易系统,那么就需要与实时更新的数据流进行整合。

CRISP-DM的模型存在很多的重复部分,或许需要几个月才能完成。然而即使在这一过程的早期,建模师通常就已经知道了哪些变量对最终的结果贡献最大,以及对这些变量进行处理整合到模型中的方法。在了解了这些特征信息后,模型早期版本的展示团队就能够帮助在模型建立之初就帮忙找到展示中的障碍。

案例研究:恢复失效的捐献者

这一案例研究为本章中如何采取有效的商业理解用于特定的问题提供了案例。这一特殊的案例以及此案例所涉及的数据,都将贯穿整本书。

商业目标

这一商业项目的目标是要恢复已经失效的捐献者。如果捐献者在过去一年内(0-12个月之内)曾经有过捐献行为,他们就会被认定为活跃的捐献者。如果他们的捐献行为仅发生于过去的13-24个月之间,那么他们就会被认定为失效的捐献者。在已经失效的捐献者中,你是否能够根据非营利组织提供的有关他们的历史行为模式鉴别出不同亚群的特征吗?如果能够鉴别出会进行重复捐献的失效捐献者而忽略掉那些不会再次进行捐献的群体,那么就能够增加组织的利润。

目前已经完成的测试用邮件为失效的捐献者提供了大量重要的已知信息。捐献者每次进行捐献行为所提供的价值为0.79美元,而每次电子邮件联络所需要花费的成本是0.68美元。因此无差别的对每个人进行联络仍然是有利可图的,对十万个失效捐献者进行联络后得到的回报大约为1.1万。

但是这一收益能够继续提高吗?如果预测性模型能够对更具有继续捐献倾向的捐献者赋予较高的评分,那么就能够对所有捐献者进行排序并找到那些捐献行为良好的人,从而得到收益较高的一组。

数据适配

最为原始的数据处理方法就是随机向已失效的捐献者发送邮件(一共有191779人)。他们中近5.1%的人会回复邮件。如果将分析单元设定为一个捐献者,那么其属性应该包括人口统计学信息及其对非营利性组织进行捐赠的行为模式。在这份数据中应该还包括衍生变量,如对其给予行为进行统计处理后的度量值(最近、最小规模、最大规模以及平均捐赠规模),在进行联系前对客户进行RFM分析和社会经济学状态分析等。

目标变量

在建模过程中会用到两个目标变量:TARGET_B和TARGET_D。如果目标捐献者回复了邮件,那么会将TARGET_B赋值为1;如果捐献者没有回复邮件,那么可以就将TARGET_B赋值为。TARGET_D的赋值情况取决于回复的邮件中,进行捐赠的数额的大小。如果没有捐赠行为发生,那么TARGET_D被赋值为。

由此,至少可以构建两个模型。如果将TARGET_B作为目标变量,那么将建成一个二进制模型,这个模型可用于预测一个失效的捐献者能够被一封邮件重新激活的可能性有多大。如果将TARGET_D作为目标变量。那么这一模型将会预测一个失效客户在被某公司激活后,将会与该公司进行交易的价格。

模型目标

商业理解的下一步就是将商业目标——最大净收入,转化为模型目标,这一步骤非常关键,因为在通常情况下,商业目标很难或是进行转化或是进行量化评估。

要建立什么类型的模型?这取决于采用两个候选变量的哪一个作为目标变量。其中,TARGET_B是回复指标:1代表捐献者回复了邮件,而代表捐献者没有回复邮件。其次,TARGET_D代表回复者进行捐献的数额。如果TARGET_D的数值为0$则代表捐献者没有回复邮件。

如果以TARGET_B为目标变量建立模型,那么输出值(评分)就是捐献者进行回复的可能性。这一模型的问题就在于数字,因为这一指标并不直接涉及捐赠的额度。实际上,在这个指标中,每一个捐献人都被平等对待(无论捐献额度为多少,他们均被赋值为1),而通常情况下捐献额度和捐献意愿很可能是负相关的。这些模型很可能会偏向于低消费、最低净收入群体。

从另一方面来看,以TARGET_D为目标变量就能很好地解决如上问题:它能够对捐献的额度进行预测,并能够根据预测值及相关净收入对客户进行排名(这一模型的成立是基于获客的成本相同)。但是以TARGET_D为目标变量的模型面临着另一个问题,那就是你仅知道那些捐献者给出的数额。但实际情况很可能是大多数失效捐献者并未进行再次捐献,其赋值为0$。这一模型的数字分布会非常特殊,在的区域存在大量变量,而具有数值的区域又会发生非常大的偏移。通常情况下为了解决类似的问题,你可能需要针对捐献者重新再建立一个模型,这一模型中元素的TARGET_B为1或是TARGET_D值大于。

那么这一处理方式就会引发第二个问题了,该模型的建立仅以已捐献者为基础,而模型的对象却是所有的失效捐献者,那么你能够确定你得到的预测值对于那些未捐献者是有效的吗?这一模型只能够预测到那些发生过捐献行为的人所能提供的捐献数额。

因此这一问题也是经典的删失回归问题,即两个变量TARGET_B和TARGET_D均需要纳入到模型中,由此才能够得到预期的回报数额。

其中的一个解决办法,也可能并不是唯一的解决办法,那就是同时建立TARGET_B和TARGET_D的模型,并最终将它们的值相乘以得到最终数值。TARGET_B代表捐献者进行捐献的可能性,TARGET_D代表捐献者进行捐献的数额。如果捐献者进行捐献的可能性较高且很有可能提供较大数额的捐献,那么就会在模型中非常靠前。那么捐献者在目标变量前就是平等的,例如如果有一组人的捐献意愿为0,1而预测额度为10,那么就与捐献可能性为0.05而捐献额度为20的人等同。

Score = P(TARGET_B = 1) * Estimated TARGET_D

模型选择与评估标准

如果你分别构建了以TARGET_B和TARGET_D为标准的模型,那么你将会如何评判哪一模型是最好的呢?这一解决方案就在于采用与商业目标尽可能相近的评价标准。建立模型最初的商业目标是为了最大化累计净收入。如果你建立了以TARGET_B为预测性目标的模型,那么对于分类的计算是精确的,但是它并不是最终商业目标的达成并不匹配。虽然可以通过计算gain或是lift来提升相关性,但仍是距离商业目标有些远。但是如果你直接计算累计净收入,即商业目标本身,并最大化这一指标,你会依据商业目标得到最好的模型。

建模的过程如下:

1.利用乘法对所有记录进行评分,即用TARGET_B的预测值与TARGET_D的预测值相乘。

2.按照从大到小的顺序将评分排序。

3.为每一个捐献者计算净收入,即将每个得到的TARGET_D值减去0.68$。

4.将列表得到的净收入值进行排序。

5.根据累计最大净收入的定义,将净收入的值已经最大化。

6.跟据模型计算得到最高评分那些累计净收入的那些记录就是接下来应该进行联系的客户。

值得注意的是你一旦基于模型预测对每条记录进行了评分,那么这些评分本身应该是没有被用于累计净收入的计算的。

模型展示

在随后的电子邮件中挑选失效客户进行重新激活,你需要做的只有产生模型评分并将模型评分的阈值与之前的评价标准进行比较。

案例研究:欺诈鉴别

这一案例的学习将会为你解答本章中所提到的商业理解步骤是如何运用到发票欺诈的鉴别中去。这是一个真实的项目,但是应项目方要求其真实名称已被隐藏,其中有关组织的一些具体细节也被隐藏了。

总览

组织经常要对服务付款所产生的发票进行评估。其中有一些发票可能是欺诈性的。由于精力有限,组织只能对少部分的欺诈发票细节进行甄别。而预测性模型能够被用于帮助解决这一问题。

商业目标

在这一发票欺诈案例中,对欺诈问题的定义本身在建模过程中非常重要。在欺诈鉴别中有两个细节经常被提及。其中有一个细节非常严苛也十分精准,即这一服务项目本身受到了起诉或是发票的付款人已经被判有罪。而另一个评判标准相对宽松,那就是有一个或是多个管理者或是中介机构凭主观判断这一项目具有可疑之处。

值得注意的是这两种评判方式均存在优点和缺点。第一种评判方式的优点是明白,因为所有被打上欺诈标签的发票都已经得到了证实。然而,缺点也十分明显。首先,有一些发票可能确实存在欺诈问题,但并未达到能够被成功起诉的标准。其中有一些可能会技术性丢失。其它的一些或许达到了被起诉的标注,但内容过于复杂以至于很难进行起诉。还有一些发票或许具有被调查的价值,但是中介机构没有足够的资源完成这些调查。

然而从另一方面说,如果你采用了第二种评判方式,很多被标注为欺诈的案例可能并不是欺诈,即使可能乍看上去他们确实有可疑之处。换句话来说,“欺诈”的标签在这一方法之下可能会被滥用,或许随着事件的推进,案例的所有可疑之处都会得到合理的解释。

因此在这一案例中,我们达成的最终决议是采用相对严格的定义方式。

项目数据

在建模过程中我们搜集了成百上千的发票,其数量远远超过了建模需要。然而由于相对严苛的评判标准的存在,很少有内容被标注为“欺诈”。然而,一个发票即使没有被标注为欺诈也并不能够断定这一发票不存在欺诈行为。毫无疑问的是,有一些真实具有欺诈行为的发票并未被标注为欺诈。然而目前的模型算法还无法解决这一问题。

如果我们将发票的欺诈率暂定为1%,那就意味着每100个发票中存在一起的欺诈行为。让我们再进一步假设如果这其中有一半的欺诈被成功起诉并被真实标注,那么还存在一半的欺诈案例并未被标注。因此假设需要进行鉴别的发票有10万,那么存在500个发票能够被有效甄别出来,我们将这500个发票记录赋值为“”。而模型无法甄别的500个案例会使模型的鉴别有效性降低,因为这些具有欺诈特征的记录未被成功标注。

建模师在项目的商业理解阶段,就已经决定了对非欺诈人群进行抽样调查,以保证错漏的发票能够大幅度减少。

目标变量

最显而易见的目标变量就是发票是欺诈性的(1)还是非欺诈性的()。然而组织决定通过对六种不同类型的欺诈进行定义的方法来提升这一模型的准确性,而定义的这六种欺诈分别都具有独有的行为模式。通过最开始的对欺诈类型的分析,最终发现有两类欺诈类型与其它四种发生了重叠,因此模型中所用到的欺诈类型只有四种。最终的模型变量是一个五级分类变量。

模型目标

这一项目的模型由此便成了一个具有多分类值的模型,包括四种诈骗类型和一种非诈骗类型。当错误地将非欺诈性项目当成了欺诈性项目时,就会产生错误分类成本。然而,如果是将一种诈骗模式错认为另一种诈骗模式则不会产生出错成本。

模型选择和评估标准

被选中的模型需要能够在每个月完成至少对100个高风险发票的鉴别。其中非常关键的一点就在于由模型所产生的工作量对调查者来说必须是具有效率的,这也就意味着必须减少假警报的数量以确保调查人的精力不会被过度消耗。因此,设计了一项个性化的成本功能以更好地突出真警报,减少假警报。因此假警报出现的概率仅为真警报的四分之一。因此所挑选的模型必须能够最好的呈现排名在前100的发票。得到积分的过程如下:

1.为每一个发票进行评分,并取出发票在四种可行性评分中最高的那个进行标记。

2.将所得到的评分从高到低进行排列。

3.挑选前100个评分。

4.如果主观认为记录中的发票被认为是欺诈,那么就赋值+1,如果没有欺诈行为,就赋值为-4。

5.将1和-4代入到模型中,得分最高者获胜。

因为在模型设计时,真警报和假警报的理论比为4:1。如果在现实中,确实在排名靠前的100个发票中发现了80个真警报,那么就将模型评估值赋值为。然而这一数值所表示的并不是模型预测欺诈行为的准确性,但是通过这一模型你可以发现每种不同的欺诈类型所发生的小概率以及对于记录本身来讲,发生这一事件的概率。

模型展示

这一模型的展示非常简单。每个月,针对于不同的欺诈类型模型都会进行评分。其中排名在前100的各类型发票数据会返回给调查者以便进行进一步的确认,如果欺诈确实发生,那么他们就可以进一步进行起诉。

总结

为预测性模型提出具有建设意义的问题需要具备与商业目标相关的知识,与数据构建相关的知识,模型目标与商业目标进行匹配关联的知识等。建模师应该成为提出问题的一员,以确保数据和模型评价标准具有现实意义。最终,不要惧怕在项目进行过程中对商业目标或是模型目标的重新定义及修改;在模型的建立过程中有可能会通过数据发现意想不到的问题,并为优化决策提供新的可能。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190216G0MIFS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券