美文网首页IT课程分享大数据玩转大数据
用大数据预测银行客户是否会存款

用大数据预测银行客户是否会存款

作者: 蓝桥云课 | 来源:发表于2018-01-15 14:31 被阅读132次

文章所有内容均截选自用户“李登峰”发布在实验楼上的项目教程【Spark机器学习--运用逻辑回归分析银行营销数据】,感兴趣的可以点击课程进行学习,未经允许,禁止转载;

存款营销是银行吸收存款的主要经营模式,作为程序员我们可以通过现有数据建立模型来判断客户是否订阅存款业务,从而帮助商业银行更好的分配人力资源,提高业务量,以满足现阶段营销活动对提高营销成功率的期望。

该项目会使用spark机器学习中的逻辑回归算法,分析银行营销数据,按照机器学习开发步骤,建立逻辑回归模型,预测客户是否会存款,并评估预测模型的精确度。

实验将采用如下步骤进行回归机器学习算法开发:

此处输入图片的描述

实验知识点

  • Spark机器学习开发的常规步骤
  • Spark框架提供的特征转换算法--StringIndex
  • Spark框架提供的特征转换算法--OneHotEncoder
  • Spark提供的API对预测结果准确度进行评估
  • Spark SQL在Spark机器学习中的用法

理论学习

1 逻辑回归(Logistic Regression)

机器学习算法分为监督学习算法和无监督学习算法,在监督学习算法中,算法有目标变量(即预测值)和特征变量等两种变量,根据目标变量的值是离散值还是连续数值,分为分类算法(目标变量的值为离散值,如 是/否、0/1)和回归算法(目标变量为连续值)。

逻辑回归是一个分类算法而不是回归算法。通常是利用已知的特征变量来预测一个离散型目标变量的值(如0/1,是/否,真/假)。通过拟合一个逻辑函数来预测一个事件发生的概率,预测值是一个概率值(0-100%),根据概率值的大小,映射为目标变量的分类值,如:概率值大于等于 50%,映射目标变量分类值为 1,概率值小于 50%,映射目标变量分类值为 0。

2 逻辑回归与线性回归

为了更好理解逻辑回归算法,可以与线性回归算法做个对比。线性回归对多维空间中存在的样本点,用特征的线性组合去拟合多维空间中点的分布和轨迹。线性回归的公式如下:


此处输入图片的描述

对于逻辑回归来说,其思想也是基于线性回归。其公式如下:


此处输入图片的描述
其中,
此处输入图片的描述

被称作sigmoid函数,Logistic Regression算法将线性函数的结果映射到了sigmoid函数中。sigmoid的函数图形如下:


此处输入图片的描述
sigmoid的函数输出是介于(0,1)之间的,中间值是0.5,之前的公式 hθ(x)输出是介于(0,1)之间,表明某一样本数据属于某一类别的概率,例如:
hθ(x)<0.5 则说明当前样本数据属于A类; 
hθ(x)>0.5 则说明当前样本数据属于B类。

所以可以将sigmoid函数看成样本数据的概率函数。Spark提供的逻辑回归算法,对样本数据的预测结果中,有一列存储了概率值。本实验中将此概率值进行了输出。

3 特征工程

特征工程是最大限度地从原始数据中提取特征以供算法和模型使用的过程。特征工程包括特征提取、特征转换、降维等操作。
Spark提供了多种特征工程算法,详细内容可查看官方文档

本实验中,我们使用 StringIndex 和 OneHotEncoder 两种特征转换算法。

1) StringIndex

StringIndexer 是指把一组字符型标签编码成一组数值型标签索引,索引的范围为 0 到标签数量,索引构建的顺序为标签的频率,优先编码频率较大的标签,所以出现频率最高的标签为 0 号。如果输入的是数值型的,会转成字符型,再对其进行编码。

Spark官方实例:
下列数据,包括id和category两列:

 id | category
----|----------
 0  | a
 1  | b
 2  | c
 3  | a
 4  | a
 5  | c

使用StringIndexer特征转换算法,对上述数据category列进行特征转换,设置生成新列名为categoryIndex,结果为:

 id | category | categoryIndex
----|----------|---------------
 0  | a        | 0.0
 1  | b        | 2.0
 2  | c        | 1.0
 3  | a        | 0.0
 4  | a        | 0.0
 5  | c        | 1.0

上述结果中,由于 a 出现了 3 次,c 出现了 2 次,b 出现了 1 次,按照出现频率由高到低,从 0 开始编码,所以 a 的编码为 0.0,c 的编码为1.0,b 的编码为2.0。

2) OneHotEncoder

OneHot编码将已经转换为数值型的类别特征,映射为一个稀疏向量对象,对于某一个类别映射的向量中只有一位有效,即只有一位数字是 1,其他数字位都是 0。如下面的例子,有如下两个特征属性:

  • 婚姻状况:["已婚","单身","离异","未知"]
  • 有无房贷:["有房贷","无房贷"]

对于某一个样本,如["已婚","无房贷"],因为机器学习算法不接收字符型的特征值,我们需要将这个分类值的特征数字化,最直接的方法,可以采用序列化的方式:[0,1]。但是这样的特征处理并不能直接放入机器学习算法中。对于这个问题,婚姻状况是4维的,有无房贷是2维的,这样,我们可以采用One-Hot编码的方式对上述的样本["已婚","无房贷"]编码,"已婚"对应[1,0,0,0],"无房贷"对应[0,1],则完整的特征数字化的结果为:[1,0,0,0,0,1],这样做结果就是数据会变得连续,但也会非常的稀疏,所以在Spark中,使用了稀疏向量来表示这个结果。

逻辑回归算法的分类器需要连续数值作为特征输入。

实验步骤

主要包括如下步骤:

  • 获取银行营销数据
  • 分析营销数据结构
  • 概要分析数据字段内容
  • 对数据使用特征工程
  • 建立逻辑回归模型并预测

除了上述步骤,有时根据数据情况和具体场景,需要对数据进行清洗。数据清洗的方式有删除法、均值法等。

需要注意的是:在具体项目中,如果算法工程师拿到的数据已经是数值型内容,或者已经进行了特征化,那么此时,可以省略相应步骤,直接建立相应的算法模型,进行预测。

最后

如果你想完整学习该项目,点击 【Spark机器学习--运用逻辑回归分析银行营销数据】即可;

相关文章

  • 用大数据预测银行客户是否会存款

    文章所有内容均截选自用户“李登峰”发布在实验楼上的项目教程【Spark机器学习--运用逻辑回归分析银行营销数据】,...

  • 新市支行2020普及金融知识万里行

    一、银行存款vs银行理财 银行存款:将钱存进银行,银行支付客户利息。 银行理财:银行理财,是指客户把钱委托给银行,...

  • 平民理财小点子

    通过在银行工作这一阶段大葱发展很多来银行存款的客户已经不满足于活期存款,甚至是定期存款,都愿意买银行短期理财或...

  • 商业银行和金融市场

    商业银行又称为存款货币银行,以经营工商业存款、放款为主要业务,并为客户提供多种金融服务。商业银行是金融企业,承担着...

  • 了解存款的种类——确定储蓄目标

    了解存款的种类——确定储蓄目标 银行为了满足客户存款需求,提供了多种多样的存款方式,具体来说,存款种类分为以下几种...

  • 最可怕的罪恶是什么?

    1. 前eBay公司的首席数据官拉丁斯基是个大美女,也是个用大数据搞预测的专家。她的团队曾经成功地用大数据预测了古...

  • 从特朗普当选,说到市场营销中的数据分析

    特朗普赢了,世界震惊了,各种大数据预测又被打脸了。 从英国脱欧,到美国大选,大数据预测貌似不那么靠谱? 小曹以为,...

  • 逻辑回归那些事儿(附模板代码)

    逻辑回归(logistic regression)被广泛用于分类预测,例如:银行通过客户的用户行为判断客户是否会流...

  • 记录

    用银行存款购入原材料 1000元 原材料对了 借方 银行存款少了 贷方 票据20000万到期没钱支付,变应付欠着 ...

  • 智能预测

    网约车的AI调度,可能是测试大数据预测应用最好的场景了。 个性化需求,是否总是能汇聚为市场需求? 平台调度,是否真...

网友评论

    本文标题:用大数据预测银行客户是否会存款

    本文链接:https://www.haomeiwen.com/subject/ihzroxtx.html