基于LightGBM的智慧家庭产品潜在客户挖掘应用及Spark ML算法实践

2020-06-24 10:54段智华
锦绣·中旬刊 2020年3期
关键词:大数据

摘 要:本文对中国电信上海公司基于大数据的智慧产品潜在客户挖掘内部竞赛的案例进行了研究。基于大数据工作台的海量数据,利用机器学习、大数据分析技术,采用LightGBM算法,PySpark机器学习算法,预测客户是否购买全屋wifi产品,为客户精准营销注入人工智能、大数据能力,促进公司智慧产品的发展。

关键词:LightGBM模型;Spark;大数据;客户挖掘

1 背景

本论文是中国电信上海公司基于大数据的智慧产品潜在客户挖掘内部竞赛的案例,基于客户标识及客户话单数据,预测客户是否购买中国电信全屋wifi产品,1表示购买,0表示不买。

案例由上海公司大数据工作台提供竞赛数据,此次数据集的难点在于:1.训练数据量大:包括客户标识数据(约250万条记录,129个字段)、客户话单数据(约13亿条记录,86个字段)、训练集(8万条记录)、测试集(5万条记录)。2.数据稀疏性:一些特征没有取值,部分关联记录数较少。3.一些特征与训练集具有强相关性,导致出现过拟合。

本文对LightGBM算法进行了应用,同时使用PySpark机器学习算法对客户是否购买全屋wifi产品进行预测,提交最优的预测结果。研究的主要内容如下:机器学习数据预处理、数据探索、相关性分析、LightGBM模型分析、特征衍生、模型优化;使用PySpark研究基于分布式集群的朴素贝叶斯、决策树、随机森林、逻辑回归等算法模型。

2 机器学习LightGBM算法应用

LightGBM是美国微软公司开源提供的一个基于树学习算法的梯度增强框架。LightGBM具有以下优点:训练速度快,效率高、内存使用率低、预测较精确、支持并行和GPU学习、能够处理大规模数据。LightGBM被广泛地应用于Kaggle各类机器学习竞赛中。

本案例采用竞赛中常用的数据预处理、数据探索、相关性分析、模型分析、特征衍生、模型优化等特征工程技术,使用LightGBM算法作为基线模型代码实现全屋wifi产品预测,对机器学习经典的二分类问题进行实践探索。

2.1 数据预处理

客户标识数据、客户话单数据、训练集、测试集各数据集放置于内部大数据工作台,基于Hadoop大数据平台存放数据,采用Hive工具进行统计分析。如直接将客户标识数据、客户话单数据、训练集三张表关联,由于数据量较大,MapReduce运行时可能会卡住,因此,可以先将客户标识表按设备号聚合以后导入新建的客户标识表(约13万条记录),将客户话单数据按设备号聚合导入新建的客户话单数据表(约2300万条记录),然后再分别与训练集、测试集进行左关联,导出数据保存为新的训练集(8万条记录)、测试集(5万条记录)。

2.2 数据探索

关联以后的新训练集、测试集包括资产状态名称、套餐名称、销售策略名称、上网(兴趣)偏好、注智-偏好终端品牌、月均ARPU、客户副卡数、终端型号、地址客户月均ARPU、入网时间(本省)、应用名称、应用访问次数、访问URL信息等字段,通过可视化、计算统计值探索训练集、测试集的整体分布信息,查找数据记录可能的异常值,进一步熟悉业务数据。

本案例中对各字段的值进行分布统计;对业务时间进行转换,从入网时间、客户生日、协议约束到期日期、开通日期时间中抽取年、月、日、周、季度等信息,对客户的应用访问次数进行求和、求平均、異常值处理;分析数据集每一个字段的类型(字符串类型、数字类型);指定类别特征,对于是否购买wifi产品,不同类别分布差异的可视化;采用均值,极值和标准差等相关描述统计指标分析;进行EDA可视化数据探索,对于地址客户月均ARPU这个特征,基于数据集的样本量,训练集与测试集分布差异不大。

2.3 相关性分析

本案例数据集特征数量较大,相关性分析是基于全量数据研究两个或两个以上特征之间的相关关系,如果两个特征存在较多缺失值,那么计算的相关性偏差很大。因此,先进行空值搜索,统计具有相同空值行记录数的字段组,将缺失值完全相同的特征放在一组,观察数据分布;然后,使用相关性热力图进行可视化,协议约束日期字段抽取的“年、月、日、星期几、一年的某天、一年的某周、季度”字段信息具有相同的缺失记录,将相关性高(r>0.97)的特征分为一组,按0.97阈值卡时间特征,然后选择每一组中具有较多不同数据值的列来代替这一组,剔除冗余的列,这组选出的特征为“年、日、星期几、一年的某天、一年的某周”。依此类推,计算各组特征的相关性,获取需要的特征集。

2.4 构建LightGBM基线模型及模型分析

根据相关性计算,从训练集及测试集选择需要的特征列,设置LightGBM超参数,构建LightGBM基线模型进行训练及预测,预测结果发现基线模型出现过拟合现象。过拟合是因为训练集、测试集数据分布的差异性,本案例使用对抗法验证数据集的分布偏移,将训练集的标签设置为1,测试集的标签设置为0,训练一个LightGBM模型,通过AUC判断训练集、测试集数据分布的差异程度,并且通过特征重要性的计算,判断哪些特征带来了较大的特征偏移。发现DEV_BUREAU_NAME(区局名称)特征与训练集具有强关联性,删掉区局名称特性,使用LightGBM基线模型进行交叉验证,预测评分提升较显著。

使用对抗性验证法能找到过拟合的部分特征,但是将重要性特征榜单排名靠前的特征逐一去掉以后,发现预测评估分数又大大下降,因此不能完全依赖于对抗性验证法,案例同时采用Kris验证法对每一个特征单独进行交叉验证,如果这个特征对训练集AUC贡献较小,对验证集AUC贡献度小于0.5,就去掉这个特征,在此基础上继续做特征重要性分析,微调选择的特征集,预测评分又有所提升。

2.5  特征衍生与模型优化

特征衍生是基于现有的特征进行组合,生成新的具有含义的特征。本案例中选择重要类别的特征,如月均ARPU、地址客户资产结构、地址客户月均ARPU等特征,将各重要类别进行值分布编码,以及重要类别进行两两合并,两个类别组成一个新特征,或者三三合并,将三个类别特征组成一个新特征,训练LightGBM模型进行预测,评分上升千3左右。

在此基础上进行模型优化,根据特征重要性进行特征交叉,将类别与连续值之间进行GroupBy聚合操作,又新产生180个新特征,再次按照之前的特征选择步骤,选择需要的特征,然后训练LightGBM模型及预测,预测评分上升千5左右。

3 基于分布式PySpark的机器学习算法

Spark中提供了Ml、MLlib机器学习库,使分布式机器学习变得可扩展和容易。在较高层次上,Spark提供了以下工具,ML算法:常见的学习算法,如分类、回归、聚类和协作过滤;特征化:特征提取、转换、降维和选择;管道:构建、评估和调整ML管道的工具;持久性:保存和加载算法、模型和管道;实用程序:线性代数、统计学、数据处理等。

本案例基于Spark大数据集群进行分布式机器学习实战,从PySpark机器学习特征工程库 pyspark.ml.feature导入HashingTF、IDF,其中词频TF代表一个词语出现的次数,逆词频IDF代表一个词语的重要程度,利用TF/IDF工具对客户访问应用名称、客户访问的主机URL构建文本特征,采用Pyspark的VectorAssembler工具将文本特征、数值特征、类别特征、时间特征集成为特征向量,使用Pyspark机器学习模型(朴素贝叶斯、决策树、随机森林、逻辑回归)进行训练与预测,预测客户是否购买全屋wifi产品。

4 模型预测结果

构建LightGBM、朴素贝叶斯、决策树、随机森林、逻辑回归模型,分别对测试集按指定的設备顺序生成预测结果,提交官网平台进行评分,此次竞赛采用F1作为评分标准,各模型评分如下:

表1 各模型评分

算法模型 评分

LightGBM模型 350559.4

朴素贝叶斯 329393.22

决策树 318355.36

随机森林 343471.21

逻辑回归 339417.16

OneVsRest 339417.16

5 结论及展望

本文对基于大数据的智慧产品潜在客户挖掘内部竞赛的案例进行了研究,对数据集的文本特征向量进行了探索。在未来,自然语言处理NLP将成为人工智能一个重要的发展领域,对自然语言处理的研究将充满机遇和挑战。

6 致谢

感谢中国电信上海公司组织“翼码当先”软件人才竞赛活动,基于内部大数据工作台提供海量数据,利用大数据工作台的工具和能力进行数据预处理和建模开发,各参赛者基于在线编程环境顺利完成比赛。

参考文献

[1]《Spark大数据商业实战三部曲》第二版:清华大学出版社,王家林、段智华

[2]王家林 五节课内从零起步(无需数学和Python基础)编码实现AI人工智能框架电子书

猜你喜欢
大数据
基于在线教育的大数据研究
“互联网+”农产品物流业的大数据策略研究
大数据时代新闻的新变化探究
浅谈大数据在出版业的应用
“互联网+”对传统图书出版的影响和推动作用
大数据环境下基于移动客户端的传统媒体转型思路
基于大数据背景下的智慧城市建设研究
数据+舆情:南方报业创新转型提高服务能力的探索