spark机器学习实战:银行信用卡客户流失预测、垃圾邮件判断

本文探讨了银行信用卡市场中客户流失预测的方法,通过大数据分析和特征工程选择关键指标,利用逻辑回归等算法进行模型训练。同时介绍了垃圾邮件判断的机器学习策略,包括tfidf特征提取和逻辑回归模型的参数优化。
摘要由CSDN通过智能技术生成

源码及文件地址:https://download.csdn.net/download/lijunhcn/88463136

一、银行信用卡客户流失预测

1.业务挑战

随着外资银行逐步进入竞争激烈的国内金融业,信用卡持卡客户的个性化要求越来越高等原因,使得中国信用卡市场的竞争日益白热化,而较高的客户流失率也逐渐成为各大银行不得不面对的一个现实问题。

在大量客户的基础上,如何根据现有的大数据,控制客户的流失并防止风险?

2.价值体现

通过客户信息提前预测到客户流失的可能性,可对用户做相应的客户回访,或其他产品推荐,已达到挽留客户降低用户流失率的目的。

3.解决方法概要

通过信用卡用户的相关信息分析,通过特征工程,选择出与客户流失直接或者间接的客户特征,把相关特征用于训练分类算法,然后用训练好的算法模型,预估现有用户的流失性。

4. 数据文件介绍

1>Churn_Rate.csv

有四列数据,分别为年份,第几季度,某年第几季度,用户流失率

数据内容截图如下:

2>CUST_SUM.csv

从左往右数,每列内容依次为:

信用卡用户ID、性别(string)、年龄、教育程度(Int)、一年内投资的费用、收入、社区活动、是否流失(Int)、累计交易额、日均交易笔数、一年总交易笔数、平均每笔交易金额、在社交平台上对银行所做的评价量、所在地区(string)、教育程度(string)、Twitter账户、是否流失(bool)

注:教育程度分Int和string,  是同样的意思。是否流失分bool和Int类型,也是同样的意思。

 

 

3>CUST_SUM_CHINA.csv

从左往右数,每列内容依次为:

信用卡用户ID、性别(string)、年龄、教育程度(Int)、一年内投资的费用、收入、社区活动、是否流失(Int)、累计交易额、日均交易笔数、一年总交易笔数、平均每笔交易金额、在社交平台上对银行所做的评价量、省份(拼音),省份(简写汉字,如豫),省份(汉字全拼,如河南),省份(全拼拼音,同provice列),省份(带音调的拼音),所在地区(string)、教育程度(string)、Twitter账户、是否流失(bool)

注:教育程度分Int和string,  是同样的意思。是否流失分bool和Int类型,也是同样的意思。

 

5. 详细步骤

1>添加画图的包

 

2>从DB2中加载数据,也可以把本地文件上传到ML for z上,再加载进来。

3>以年为横坐标,以流失率为纵坐标画图,可视化分析流失率的逐年变化。1Q14代表14年第一季度

 

4.以客户所在地区为横坐标,收入为纵坐标画图。分析客户收入与地区的关系。1.5的是从地图的角度来看客户收入与地区的关系,从label来看,颜色越红的地区,收入越高。从地图中明显可以看出TX>NY>CA>WA>其他美国的州

 

5.同理,画柱状图分析客户年龄、平均交易额,平均交易量和收入与客户是否流失的关系,从图中可以看出随着横坐标的变化,流失率有变化,说明这些特征与客户流失是相关的。

 

6.同理,画柱状图分析客户性别、社区活动和教育程度是否流失的关系,从图中可以看出随着横坐标的变化,流失率有变化,说明这些特征与客户流失是相关的。

 

7.从地图的角度分析客户流失是否跟地区有关系,由图可知,并不是收入最高的州流失率越大,跟客户所在地区有一定关系。

 

8>导入模型训练相应的库,比如说逻辑回归算法,pipeline,交叉验证,以及参数设置的包和二分类算法评估包

9>将数据切分成两部分,测试集与训练集占比0.8,0.2. 为了便于用算法进行训练,将相应string类型的数据变成从1-n的数字类型。

并选取年龄、社区活动、教育层次、在社交网站的负面评论、收入、性别、所在地区作为特征,用于以下训练算法。’

 

10>选取逻辑回归算法,并设置参数。构建pipeline、交叉验证模型。pipeline便于调参,将把string类型的特征变整形、选取特征、构建LR算法进行流水线操作。将lr的regparam参数固定在(1e-3,1e-2)之间,将lr的elasticNetParam参数固定在(0.25,0)之间变化。然后取三折十字交叉验证防止过拟合。

11>评价模型,并画出ROC curve

 

二、垃圾邮件判断

1.业务挑战

    

        随着大数据时代的来临,人们面临着越来越多的数据,其中有很多对他们并没有用,比如说邮箱里的垃圾邮件,我们应该怎么对这部分数据实现过滤?

2.价值体现

通过机器学习算法使计算机学会分辨出邮件是否为垃圾邮件,通过对来往邮件进行检测,实现自动过滤的功能。

3.解决方法概要

通过有监督学习,找到垃圾邮件与其特征的对应关系,通过tfidf算法,得到特征向量,利用逻辑回归算法,再结合是否为垃圾邮件的标签值,学习出对垃圾邮件的辨别能力。

4. 数据文件介绍

Parquet文件

文件名截图如下:

 

文件内容分为三列,邮件id号,邮件内容,是否为垃圾邮件的标签

5. 代码详细步骤

  1> 从DB2中读取数据,显示出前五行,并计算共有多少行数据

 

2>将数据切分为两部分,80%用于训练算法,20%用于测试

 

3>添加所需要的函数库,构造tfidf算法和算法流水线pipeline,将tokenizer、countvectorizer和idf串联起来。

 

3>构建交叉验证算法,使算法的LR算法的正则化参数regparam范围为0.001,0.01两个数之间变化,使LR算法的elasticNetparam参数在0.25和0之间变化,使countvectorizer算法的vocabsize的参数在10000,50000之间变化,使idf算法的最小文档频率mindocFreq参数在0和3之间变化。

 

 

5.把预测结果的label列强制转换为double类型,并将数据格从dataframe类型转换为RDD类型,使用MLlib库中的BinaryClassificationMetrics方法对结果结果进行统计,然后构建dataframe用于画roc曲线。

添加brunel包,画出roc曲线

6> 对所有的数据进行预测,并将预测结果与原有的标签做对比。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辣椒种子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值