- 预测概率值按降序方式存储为有序列表
- 把这个有序列表划分为10段(分组)
- 计算每组中的实际命中数(actual hits,实际的响应数)
- 计算每个分组的随机期望值(random expectation),该期望值等于实际响应总数除以10。也就是说,在每个分组中我们期望会有实际响应总数的10%会响应。
如果命中率超过了随机期望值,就意味着模型为该分组带来了提升
表1: 提升表
译者注:
Decile-分组序号;Hits-命中数,即每组内包含的实际响应数,等于TP+FN;
TP-正确肯定;FN-错误否定;TN-正确否定;FP-错误肯定;
(TP和FN对应于实际的响应,TN和FP对应于实际的非响应)
Random Hits-随机命中数,即随机期望值,等于SUM(TP+FN)/10;
% of Total-召回率,等于Hits/SUM(Hits)*100;
Cum % of Total-累积召回率,是% of Total的累积值。
一共划分了10个分组,实际的总响应数为SUM(Hits)=275,因此每组的随机期望值为275/10=27.5。第一组的命中数为81,明显超过了随机期望值,其召回率=81/275=29.45%。第二组的命中数为43,也超过了随机期望值,其召回率为43/275=15.64%,累积召回率等于第二组的召回率加上前面所有组(即第一组)的召回率,等于15.64%+29.45%=45.09%。
从上表中可以看出,该模型划分肯定和否定的阈值应该是在第二个分组中,这样才出现了第一组都被预测为肯定,但其中有81个是正确的肯定(TP),而735个是错误的肯定(FP);第二组中则同时包含了TP、FN、TN和FP;从第三组之后则都被预测为否定(因为位于阈值之下),因此包含了FN和TN。
正确肯定(True-Positives,TP): 实际的响应中,被正确预测为响应的个数
错误否定(False-Negatives,FN): 实际的响应中,被错误预测为非响应的个数
正确否定(True-Negatives,TN): 实际的非响应中,被正确预测为非响应的个数
错误肯定(False-Positives,FP): 实际的非响应中,被错误预测为响应的个数
通过对提升表的分析可以看到,在第四个分段之后,增量提升(incremental lift,第8列中的”% of Total”)下降到随机期望(每个分段为10%)之下,而前四个分段包含了超过70%的响应。
从下面的增量提升曲线(图1)中可以明显看出增量提升和随机期望的交叉点。
图1: 增量提升图示例
在增量提升曲线中标示了各个分段的命中数。 在图1中可以看到,增量提升曲线在第4个分段后和随机期望线(275个响应的10%,即平均每个分段27.5个响应)交叉。
不管营销经理怎么去看,上述的表格和图形都可以把必要的信息传递给他们。 营销人员可以借助模型评估工具,来设定要给多少个客户发邮件。 以表1为例,营销人员可以向前四个分段的客户(占整个评分名单的40%)发邮件,并预期可以命中70%的潜在响应客户。
我们现在已经了解该如何评估数据挖掘模型,接下来就可以深入分析和调整业务流程,借助模型的结果来提高企业的盈利。 业务流程包括:
- 数据挖掘过程
- 知识发现过程
- 业务流程管理(BPM)软件
- 知识管理系统
- 商业生态系统管理
数据挖掘过程
Eric King在“如何在数据挖掘上投资:避免预测型分析中昂贵的项目陷阱的框架”一文(发表于2005年10月的“DM Review”)中主张数据挖掘是一段旅程,而非终点。他把这段旅程定义为数据挖掘过程。
该过程包含如下要素:
- 一个发现过程
- 具有灵活的框架
- 按照清晰定义的策略进行
- 包含多个检查点
- 多次定期的评估
- 允许在反馈环路中对函数进行调整
- 组织为叠代式的架构
过程模型
很多数据挖掘工具的厂商都对这个过程进行了简化,使之更加清晰。 SAS将数据挖掘过程划分为五个阶段: 抽样(Sample),解释(Explain),处理(Manipulate),建模(Model),评估(Assess)。
过去人们常用循环式的饮水器来比喻数据挖掘过程。 水(数据)首先涌上第一层(分析阶段),形成漩涡(精炼和反馈),等到聚积了足够多“已经处理过”的水之后,就溢出来流到下一个更低的层中。
不断地进行这种“处理”,直到水流到最低层。在那里它被抽回顶层,开始新一轮的“处理”。 数据挖掘和这种层次式的叠代过程非常相像。 甚至在很多数据挖掘算法的内部处理也是如此,比如神经网络算法,就是在数据集上多次运行(epochs),直至发现最优解。
Insightful Miner已经在其用户界面中内建了简单过程模型。 这种集成可以帮助用户把必要的数据挖掘任务组织起来,让任务能够按照正确的顺序来处理。
但使用饮水器来比喻数据挖掘过程还不算恰当,因为它没有反映出反馈环路,而反馈环路在数据挖掘过程中是很常见的。 例如,通过数据评估可以发现异常的数据,从而要求从源系统中抽取更多的数据。
或者,在建模之后,会发现需要更多的记录才能反映总体的分布。
在CRISP过程模型中进行了解决这个问题的尝试,该模型是由Daimler-Benz、ISL (Clementine的开发者)和NCR共同制定的。
CRISP同时也被集成到Clementine挖掘工具(现在属于SPSS公司)的设计中。 CRISP几乎反映了完整的数据挖掘环境。
图2: CRISP图例
使用数据建模其实和做陶土模型或者大理石模型差不多。 艺术家首先从一大堆材料开始着手,经过许多次的加工和检查,才诞生了最终的艺术品。很多人在建模过程中常常没有充分理解建模的本质,由此带来了一系列问题,使得建模变得很复杂。
Eric King发现数据挖掘是一个循环的过程(就象上图中的CRISP流程图),而非线性的过程。 这种循环式的数据挖掘过程会让您想起Wankel转式汽车发动机。
这种发动机是一圈一圈旋转的(而非上下运动),不断输出动能来驱动汽车。 与之相似,数据挖掘过程也是不断循环,产生信息来帮助我们完成商业目标。
信息就是推动商业的“能量”。 在挖掘过程中会有很多对前一个阶段的反馈(例如,在完成初步建模之后可能需要获取更多的数据)。
不过,在CRISP流程中还是遗漏了一个要素——那就是对数据仓库或源系统的反馈。 前一次CRM营销活动的结果应该导入数据仓库,为后续的建模提供指导,并能跟踪营销活动间的变化趋势。
我在CRISP流程图中加入了这些反馈,以红线表示(见图2)。
通过数据挖掘过程的结构,我们可以得知数据挖掘工具必需能完成那些任务,但是工具常常会缺少对部分功能的支持。 当产生了挖掘结果时,你会怎么使用这些结果呢?
此外,针对挖掘结果所采取的这些行动又将如何影响后续的挖掘? 数据挖掘工具应该具备的一些功能包括:
- 将模型导出到多种数据库结构中
- 模型的导出格式,适合于决策支持和商业行动的应用
- 挖掘算法的输出数据,可以为另外的算法所用
- 能够比较不同算法的结果
IT专家网