马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
该案例的工作流如下:
1、商业目标业务理解:该案例所用的数据是一份关于电信客户流失的数据,如下:
表1:数据视图
其中,该数据表中一共有42个字段,而流失是记录的用户是否已经流失。
业务目标:建立交互式存量维系营销系统,系统会定期输出流失风险较大的用户名单以及这批用户的特征,为用户的维系提供决策支持。
数据挖掘目标:建立现存用户的流失风险评估模型,该模型以用户的信息指标为输入,以流失为目标,建立预测评估模型,该模型可以根据输入指标的值,计算预测值(流失)及流失概率。
2、数据准备这里主要介绍如何优化输入。
第一步,使用CSV导入节点读取数据。配置如下:
第二步,筛选缺失字段。
首先,使用统计节点分析字段缺失情况,配置如下:
其次,使用列过滤节点过滤统计输出表中不相关的字段,配置如下:
再次,使用Java代码段(简单)节点生成缺失比例字段,配置如下:
再使用排序节点对缺失比例字段降序排列,配置如下:
进而使用行过滤节点过滤缺失较严重的字段,配置如下:
使用列过滤节点对字段过滤,仅保留一个,配置如下:
预览数据如下:
最后,使用转置节点,将上表转置如下:
第三步,筛选不相关或者相关性较弱的字段。
首先,使用线性相关节点分析字段相关性,配置如下:
其次,使用列过滤节点,只保留流失字段。配置如下:
再次,使用行过滤节点,只保留相关性在-0.2~0.2之间的记录。
数据预览如下:
再使用转置节点,将上表转置如下表所示,表中为要过滤的相关性较弱的字段:
第四步,优化输入。
首先,使用参考列过滤节点从原表中过滤与目标变量(流失)相关性弱的字段。参考列过滤节点第一个输入端口连接原始数据(42个变量),第二个输入端口连接要过滤的相关性弱的表(26个变量)。过滤之后原表中的数据剩余16列。
其次,使用参考列过滤节点从刚刚过滤后剩余表过滤缺失较严重的字段。参考列过滤节点第一个输入端口连接刚刚过滤剩余数据表(16个变量),第二个输入端口连接要过滤的缺失较严重的表(4个变量)。参考列过滤节点配置如下图所示:
过滤之后原表中的数据剩余12列。如下所示:
第五步,使用超节点管理工作流。超节点即将众多连接的节点打包到一起。选中要封装的节点(注意节点必须是连续的)。打包成超节点后工作流如下所示:
可以通过双击超节点打开子工作流。如下所示:
3、建模这一部分的目标是见一个可靠的预测模型。该模型可以评估客户流失的概率。
第一步,使用数值到字符串节点将流失字段从浮点型转化为字符型。节点配置如下:
第二步,使用分区节点建立训练集和测试集。节点配置如下:
第三步,以流失字段为目标变量,使用逻辑回归节点训练模型。配置如下:
第四步,使用逻辑回归(预测)节点和分类评估节点评估模型。为了界面清晰,您也可以把所有的评估节点打包成超节点,评估超节点内容如下:
整体评估结果如下表所示,整体准确率为81%。在商业中,这样的准确度已经很不错了。
对保持用户预测能力评估如下表所示,准确率91.176%,高于整体的准确率。
对流失用户预测能力评估如下表所示,准确率只有59.375%,远低于整体准确率,而实际中更关注模型对流失用户的预测能力,因此,从这里看该模型效果并不很满意。
综上所述,该模型并不十分理想。在实际中,一定要再做优化,此处就不再做优化了。
4、生成用户名单
如果为了挽留流失用户,则要生成流失用户名单。如果是为了奖励忠诚用户,则要生成忠诚用户名单。
首先,使用列重命名节点对 、 两个字段重命名。如下所示:
其次,使用Java代码段(简单)节点分别生成流失得分字段和忠诚度得分字段。节点配置分别如下:
接下来分别生成流失用户名单和忠诚用户名单。
第一步,生成流失用户名单。
连续使用排序节点对流失得分降序排列,使用行过滤节点筛选出得分70以上的用户。节点配置如下:
再使用交互表格节点查询名单,预览如下:
第二步,生成忠诚用户名单。
连续使用排序节点对忠诚得分降序排列,使用行过滤节点筛选出得分80以上的用户。节点配置如下:
再使用交互表格节点查询名单,预览如下:
5、小结通过该案例,首先,我们掌握建立客户流失模型的方法,以及如何输出高流失风险的客户名单。其次,我们掌握了在输入变量较多的情况下,应该如何去筛选出重要的变量,以保证模型的效果。最后,我们还从该案例中体会到评估模型的预测能力,并不只看模型的总体的准确度,有时我们更关注模型对目标变量中某个类别的预测能力,比如在该案例中我们更关注的是模型对流失客户的预测能力,这种情况下我们就不能只关注模型整体的准确度,更关心模型对流失客户的预测准确度。
本文源自:http://wiki.smartbi.com.cn/pages/viewpage.action?pageId=13599823
|