5.4 嵌入式评分
当建立分析沙箱并实施企业分析数据集后,企业可以更快、更高一致性地开发分析流程和模型。分析流程的扩展性也得到了提高。下一步是什么?这些新的分析流程带来的价值如何把企业带到一个更高的层次?一种方式是通过嵌入式评分过程实现分析结果的广泛应用。
嵌入式评分能在数据库内定期地执行评分过程,让用户更加高效、更加方便地使用模型。一个成功的嵌入式评分,不仅包含部署每一个独立的评分过程,还包括建立一个机制来管理和监控这些评分过程。请注意,“评分结果”可以来自于一个预测模型,也可以是分析模型其他类型的输出。
回顾一下之前谈到的内容,分析流程会最终产生新的信息。例如,客户购买某一种产品的概率,某个产品的最优价格,或者在促销活动中能带来销量提升的区域。把开发好的分析模型应用于最新数据,这就是评分。例如,在决定给哪些用户发电子邮件前,需要使用最新的数据对客户有多大的可能性参加这次活动进行评分。把评分过程嵌入在数据库环境中能带来一系列的好处,接下来我们逐个讨论这些好处。
首先,批处理形式的评分过程可以根据需求运行。当按计划完成了对一系列评分结果的更新后,用户想使用数据时,就可以直接使用这些数据。例如,邮件列表一旦创建完成,系统就会自动开始对列表内的客户进行评分。
其次,嵌入式评分可以用于实时评分。这对于某些场景特别重要,如网页推荐。如果某人登录了这个网页,系统必须立刻基于现有的信息,例如他在这个网页上做了什么等,对他进行评分,然后在他浏览下一个网页时,为他提供最合适的促销方案。类似地,当客户通过电话与呼叫中心的客服人员进行交流时,客服人员会将刚刚了解到的一些客户信息输入系统,系统利用这些信息立刻完成对客户的评分,这样,客户服人员才知道下一步要跟客户说什么。
再次,嵌入式评分为用户屏蔽了模型的复杂度。不管是用户还是应用,都可以轻易得到评分结果。系统会处理这些复杂运算,因此嵌入式评分使得技术背景不强的用户更容易理解评分结果。
最后,嵌入式评分把模型集中到了一个地方。模型列表和评分结果通过一个模型管理流程来进行集中管理,监控跟踪这些模型的创建过程就更方便了。分析专家不再需要在企业的不同地方保存并执行这些自己创建的模型了。相反地,为了扩大使用范围,这些模型将被集中地管理和部署。
5.4.1 嵌入式评分集成
当嵌入式评分过程部署完成了,生成的评分结果就可以被各个用户与应用使用了。例如,CRM应用选择了一个客户分类,就可以获得客户倾向的评分结果。CRM用户要做的事情是,简单地单击CRM工具获得客户评分。运营类应用也可以使用这些评分结果。例如,模型根据历史销售情况预测某些商品可能要断货脱销,一旦发现这种高风险现象,系统立刻给本地经理发出提醒。类似的例子是航空公司建立对天气状况的评分模型来预测航班的延误概率。预测结果会根据航班定期更新,并发送给监控和处理延误任务的应用。任何用户都可以通过即席查询(ad hoc)来直接获取评分结果。
分析结果必须用来创造价值
要从分析中获得价值,企业就必须使用分析成果。如果不能方便地使用分析成果,企业将无法从分析中获得应有的价值。嵌入式评分过程对于提高易用性极为重要,它使得更大范围的用户和应用可以使用这些评分结果。
在第4章中,我们讨论过多种并行数据库系统的应用方案。同样的理念也适用于嵌入式评分过程。
■ SQL,作为最广泛使用的数据库语言,是第一种方案。这种方案特别适合决策树、线性回归、逻辑回归等模型。甚至使用SQL手动编写一个评分程序来执行这些模型也是非常简单的。
■ 用户自定义函数(UDF)让事情更有趣了,它把定期评分过程嵌入到数据库中,作为数据库的自由函数执行。
■ 预测建模标记语言(PMML)可以在一个系统内开发模型,然后把模型部署到另外一个系统。PMML传输的信息可以确保接收模型的新系统自动地生成评分结果。
■ 最后,嵌入式过程让分析工具直接在数据库内运行程序,不需要把分析工具的语言转换为其他语言。
读者可以回顾第4章来了解这4种方案的详细内容。在这里进行强调的目的是,所有这些应用方案同样适用于嵌入式评分过程。
5.4.2 模型与评分管理
要管理完成开发的模型与分析流程,企业需要管理4个主要组件,如图5-9所示,包括输入分析数据集、模型定义、模型验证与报表制作、模型评分输出。一些商业化的可用工具可以用于模型和评分的管理,也可以开发客户化的解决方案来满足企业的特定需求。我们来说明一下这4个组件。
图5-9 模型与评分管理组件
1.输入分析数据集
有必要监控那些用于分析流程的分析数据集和EADS,监控的信息包括数据集的各类细节信息,以及创建与保存数据集的技术细节。模型与评分管理系统的这个组件会管理分析数据集本身的信息。请注意,这些数据集可以是企业分析数据集,也可以是个性化的数据集,或者两者的组合。监控的具体信息包括以下几项。
■ 提供数据给用户的各类数据集的名称,包括SQL脚本、数据存储脚本、UDF、嵌入式过程、表格、视图等。
■ 运行这些数据处理任务的参数。例如,某个分析也许只针对某一时间范围或有限的几类产品。
■ 数据处理过程中创建的输出表或者视图,以及这些输出包含的信息。
■ 分析数据集与分析流程之间的关系。一个分析数据集可以被多个分析流程使用,而一个分析流程可以使用多个分析数据集。
2.模型定义
有必要监控每一个模型和分析流程的描述信息。请注意,这里的模型可以是一个预测模型,也可以是一个分析流程,如客户按销售收入从高到低的排序,这些模型需要定期更新并被广泛使用。模型或分析流程在创建时需要到模型管理系统进行注册。监控的具体信息包括以下几项。
■ 模型的使用目的。模型解决的业务问题是什么?使用模型的业务场景是什么?
■ 模型的历史。什么时候创建的?谁创建的?模型经历了几个版本?
■ 模型的状态。它是处于开发阶段么?正在生产环境下使用,还是已经退出了?
■ 模型的类型。模型使用了什么算法?开发方案是什么?
■ 模型的评分功能。那些能给出评分结果的程序名称是什么?包括SQL脚本、存储过程、UDF、嵌入式过程。请注意,假设这里的评分功能可以获得所需的任何数据集。
■ 模型的输入变量信息。输入的分析数据集里,哪些变量被模型使用了?模型使用了一个还是多个分析数据集?
3.模型验证与报表制作
通常还需要建立一套模型验证与报表来帮助管理模型和分析流程。这些报表覆盖了很多主题和目标。监控的具体信息包括以下几项。
■ 评分过程的特定执行过程与开发原则的比较报表。
■ 特定的统计分析或验证报告,例如,每一次模型运行完后,都要研究提升率和收益图。
■ 模型的比较以及变量分布的总结。
报表可以在评分完成后自动生成,也可以在有需要时生成。这些报表通常是对模型评分效率进行持续监控的关键步骤。随着时间推移与业务环境的变化,所有模型的评分效率都会下降。这些报表可以帮助人们选择什么时候重新开发模型。
不要失去控制!
如果不对模型和分析流程进行监控管理,企业就有可能错误地使用模型,甚至完全忘记了某个模型的存在。模型与评分管理系统可以保证这种情况不会发生。有了这个系统,当某一个分析流程更新后,就能很容易地发现那些会受到影响的其他分析流程。
4.模型评分输出
最后一个组件是模型与分析流程的输出,即评分结果。这些输出结果可以描述任何一类实体,如客户、区域或者产品。监控的信息包括以下几项。
■ 评分是多少?保存在哪里?评分的实体,如客户或产品,其范围是什么?
■ 获得这个评分的时间戳。
■ 如果有必要,除了当前评分,还可以保存历史评分。某些企业会保留一段时间内的历史评分,有一些则不会。你需要决定你的企业使用哪一种方式更合理。