基于MLP算法的通信运营商客户流失分析与预测

(整期优先)网络出版时间:2023-08-22
/ 2

基于MLP算法的通信运营商客户流失分析与预测

袁爽

210102198004015618

摘  要

随着经济的发展,生活条件的改善,通信业务迅速发展,移动业务市场的竞争越来越激烈。电信企业把注意力放在如何最大程度地挽留长期消费的老用户和吸取新的客户方面。流失会对电信企业产生诸多的麻烦,比如说利润减少和运营成本增加。许多运营好,口碑好的电信企业多是与已有客户有着长时间联系和交流,这些企业可以把精力放在优化服务上,对长期客户的需求更加了解,新客户的流失率较高,一家企业如果经常有客户发生流失,这些流失的客户的意见,就会影响其他人的看法和做法,会使可能成为新客户的人减少,有效挽留客户和争取新的客户,已经成为当下电信企业非常重要的一项任务。

关键词:客户流失预测模型; Python

一、相关技术

(一)Python

Python在面向对象编程中具有简单的操作和出色的性能,提供了高效的高级数据结构。Python解释语言的特点、语法和动态类型使其成为一种广泛使用的编程语言,用于在许多平台上开发各种应用程序和编写脚本。随着版本更新和新语言功能的增加,它正逐渐被用于许多独立的大型项目的开发。因此,Python是一种在世界范围内广泛使用的高级通用编程语言。

在本文中介绍如何用Python来构建通信运营商的客户流失预测分析模型,会引入Pandas,Scikit-learn等库来实现众多的编程功能,完成特征工程独热编码,合并预处理后的数据集,划分数据集,数据标准化,构建模型,进行模型评价等过程。独热编码是来状态使用状态寄存器进行编码。原始的数据不适合用来构建模型,所以需要经过独热编码来将原始数据转化成为适合构建模型的形式。

(二)Pandas

Pandas是基于Numpy的一种工具,Pandas创建的目的是用来进行数据分析,解决需要进行数据分析的任务。Pandas 包含了许多标准的数据模型和大量的库并且提供了完成操作大型数据集任务所应该要使用的工具。Pandas还提供了许多能使我们快速便捷地处理数据的函数。因此,Pandas是使Python成为强大且高效的数据分析环境的重要因素之一。

在本文中需要在特征工程中使用Pandas库,在Python中引入Pandas库来为手机品牌和操作系统中的非数值型数据进行独热编码。独热编码是来状态使用状态寄存器进行编码。原始的数据不适合用来构建模型,所以需要经过独热编码来将原始数据转化成为适合构建模型的形式。手机品牌和操作系统中的数据都是不利于构建模型的非数值型数据,但是构建算法模型要求输入的特征为数值型数据。因此,需要对手机品牌和操作系统中的非数值型的数据进行独热编码。

(三)Scikit-learn

Scikit-learn是一个用于Python编程语言的机器学习库。它有各种分类、回归和聚类算法,包括支持向量机、随机森林、梯度提升、k-means和DBSCAN。

在本文中Scikit-learn会在数据集划分和数据标准化,构建客户流失预测模型和模型评价中使用。将数据集划分成训练集和测试集,然后按照训练集中的数据,使用神经网络算法中的MLP算法来构建客户流失的预测模型;对构建好的模型使用测试集进行评价,按照评价结果来判断模型的性能。函数train_test_split()⽤于将数组划分成测试集与训练集。StandardScaler类用来将数据进行标准化处理。在数据集data_preprocessed 和data_target中随机抽取80%的数据为训练集,20%的建模数据集为测试集,对data_preprocessed划分成的训练集和测试集中的数据进行标准化处理。使用MLPClassifier算法来构建MLP模型,输入层是用户基本信息和呼叫信息的指标变量,有两个隐藏层,第一层17个神经元,第二层10个神经元,输出层是用户在 3个月内是否流失的指标。classification_report()是python在机器学习中常用的输出模型评估报告的方法,使用建构的模型对测试集进行预测。使用精确率、召回率和F1值对模型预测结果进行评价,并绘制 ROC曲线。

三、需求分析

用户的流失有可能对通信运营商造成严重的损失,运营商希望通过分析用户的使用记录,得出流失用户存在哪些特征,并能够预测出哪部分用户可能会流失。

(一)通信运营商现状与需求

随着生活条件的改善,通信业务迅速发展、移动业务市场的竞争越来越激烈。企业把注意力放在如何最大程度地挽留在网用户和吸取新的客户方面。流失会对电信企业产生诸多麻烦,比如说利润减少和运营成本增加。有效挽留客户和争取用户,已经成为当下运营商企业非常重要的一项任务。

如今,机器学习技术得到大力发展和广泛的应用,电信企业希望能够通过使用机器学习中的算法来知到流失发生在何时并且流失会发生在哪些客户身上。建立客户流失预测的模型来预测未来的状况,就可以达到电信企业的要求,完成电信企业的任务。

(二)通信运营商数据分析的步骤

  1. 导入原始数据,删除重复数据。
  2. 删除与预测不太相关的特征,降低维数。
  3. 整理后的数据集进行清洗,查找异常值缺失值,对数据存在缺失的数据按照某种规则进行赋值,异常数据进行删除
  4. 划分数据集,数据标准化。函数train_test_split()⽤于将数组划分成测试集与训练集。StandardScaler类用来将数据进行标准化处理。在数据集data_preprocessed 和data_target中随机抽取80%的数据为训练集,20%的建模数据集为测试集,对data_preprocessed划分成的训练集和测试集中的数据进行标准化处理。
  5. 构建客户流失预测模型。使用MLPClassifier算法来构建MLP模型,输入层是用户基本信息和呼叫信息的指标变量,有两个隐藏层,第一层17个神经元,第二层10个神经元,输出层是用户在 3个月内是否流失的指标。
  6. 将模型应用在测试集上,评价预测结果。classification_report()是python在机器学习中常用的输出模型评估报告的方法,使用建构的模型对测试集进行预测。使用精确率、召回率和F1值对模型预测结果进行评价,并绘制 ROC曲线。

总结

本文主要对基于MLP算法的通信运营商客户流失预测进行研究,并通过实验对所提出算法的有效性进行验证。分析需求部分介绍了通信运营商的现状、分析需求、数据的基本状况和分析的步骤与流程;数据准备部分对原始数据进行了去重和降维,并对数据中的缺失值和异常值进行了处理。

参考文献

[1]Amin A, Anwar S, Adnan A, et al. Customer churn prediction in the telecommunication sector using a rough set approach [J]. Neurocomputing, 2017, 237: 242-254.

[2]叶进, 程泽凯, 林世敏. 基于贝叶斯网络的电信客户流失预测分析 [J]. 计算机工程与应用, 2005, 14: 212-214.

1