怎样利用历史数据进行商业预测
现在是大数据时代,数据中蕴含的价值也越来越受到重视,只要积累了足够的数据就可以利用 AI 技术手段来发掘数据里的价值。今天我们就来看下如何使用历史数据来进行商业预测。
1. 准备历史数据
历史数据通常是一张我们俗称的宽表。比如下图这样的 Excel 表格:通过用户的一些基本信息来预测其是否会发生违约行为
首先,宽表中一定要包括我们想预测的事情,通常称作预测目标,上图中的预测目标就是历史用户的违约行为,也就是图中 y 那一列,yes 表示违约,no 表示不违约。预测目标还可以是一个数值,比如产品的销量、售价……,或者是预测属于什么种类,比如预测产品质量是优、良、合格还是差。有时目标在原始数据里就有,可以直接使用,有时目标还需要人工标注。
除了预测目标外,这里还需要很多信息,如表中的用户年龄、工作,房产,贷款情况……,这里的每一列称为变量,也就是和贷款人将来是否违约可能会相关的信息,原则上能收集到的变量越多越好。例如预测客户是否会购买产品,可以搜集客户的行为信息,购物偏好,以及产品的特征信息,促销力度等;预测汽车保险理赔风险,需要保单数据,车辆信息、车主交通习惯以及历史理赔情况等等,如果是预测健康险还需要一些被保人的生活习惯,身体状况,就医看病的信息;预测商场超市的销售情况,需要历史的销售订单,客户信息,商品信息;预测不良产品,需要生产的工艺参数,环境,原料情况等数据。总之,收集到的相关信息越多,预测效果也会越好。
采集数据时,通常会截取某一段时期的历史数据来制作宽表,比如我们想预测 7 月份用户的违约情况,可以采集 1-6 月份的数据来建立模型。数据采集的时间范围并不是固定的,可以灵活操作,例如也可以是近 1 年或者近 3 个月等等。
准备好的宽表可以是 Excel 格式或 csv 格式,第一行是标题,后面每一行都是一条历史记录。
如果企业有建设好的信息系统,那可以找 IT 部门要这些数据,很多企业的 BI 系统中可以直接导出这种数据。
2. 建立模型并预测
(1) 运行易明建模软件,导入数据(可以去润乾公司官网下载。下面例子截图是英文版的,下载版本有中文版,功能一样)。
点击“New model” 按钮,导入数据(也就是整理好的宽表),数据导入的过程中建模工具会自动检测数据类型,并自动计算各种统计量。
(2) 配置预测目标
导入数据后,配置预测目标,称为目标变量,也就是宽表中的 y。
(3) 建立模型
配置好目标变量,点击”Modeling” 按钮,就可以了。整个数据预处理和建模过程都是自动进行的不需要手工操作。
大概几分钟到几十分钟(有时会更短,看数据量)就能完成模型建立。建模完成后,界面会返回每个变量的重要度,重要度越大表示该变量越能影响预测目标。使用该功能可以帮我们做一些业务分析,比如预测目标是销量时,可以找到影响销量的一些重要因素。
模型建好后,工具会写出.pcf 后缀的模型文件,用来做预测。
(4) 预测
点击工具界面左上方的 Scoring”按钮,打开上一步生成的 pcf 模型文件,导入要预测的数据集(这些数据还是用 Excel 或 csv 格式,和建模用的变量(Excel 中的列)必须一样,但是没有预测目标)进行预测,比如下图两张表,区别就是一个有 y,一个没有 y。
导入后,点击界面右上方的“Scoring”按钮进行预测,完成即可得下面的界面,最左侧的一列就是预测结果。例如,在本例中百分数表示客户违约的概率,概率越大的客户违约的风险越高。我们可以按超过预测的违约概率超过某个阈值就认为高风险客户(具体用什么阈值,要根据业务经验来定,缺乏经验时也可以先简单粗暴地用 50% 来算)。
这个结果还可以导出成 csv,xls 等多种格式的结果文件。
到这一步,我们的预测就完成了,整个过程可以说是非常简单。
3. 模型表现
既然是预测,那么结果就不可能 100% 准确,但总得有个准确度吧,我们怎么知道呢?
在模型建好以后,点击“Model Performance”按钮,可以看到关于这个模型的一些信息,称为模型表现,如下图。
我们通常看这个叫 AUC 的指标,取值范围为(0.5-1),原则上越大越好,表示这个模型越准确。比如这个模型的 AUC 是 0.89,算是不错的模型,用这个模型去做预测的可信度是很好的。不过,这个 0.89 并不是指准确度是 89%(具体的预测准确度和前面说的那个阈值有关,在确定阈值之前是没法算出来的),AUC 的具体含义比较复杂,感兴趣的同学可以去参考数据挖掘的书籍(润乾论坛上也有免费的数据挖掘课程)。
如果 AUC 很高,接近于 1,是不是说明这个模型特别好?也不一定,这可能会发生所谓的“过拟合”现象。这时,虽然 AUC 指标非常好,但真正拿来预测时可能准确率反而会非常差。至于为什么发生过滤以及如何识别和避免它,也可以参考上述的书籍。
总结:
最后我们再来总结下使用历史数据做商业预测的流程:
-
将历史数据和待预测的数据都整理成宽表,历史数据中必须要有目标变量,待预测数据则没有。
-
将历史数据导入易明工具,建立模型,生成.pcf 后缀的模型文件
-
打开 pcf 模型文件,导入待预测数据,完成预测,生成结果,然后就可以根据预测出来的结果(比如违约概率)去决定商业行动了。