PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享(上)

简介: PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享

原文链接:http://tecdat.cn/?p=26219 


银行数据集


我们的数据集描述


该数据查看文末了解数据获取方式与银行机构的直接营销活动相关,营销活动基于电话。通常,需要与同一客户的多个联系人联系,以便访问产品(银行定期存款)是否会(“是”)或不会(“否”)订阅。

y - 客户是否订阅了定期存款?(二进制:'是','否')


我们的目标是选择最好的回归模型来让客户订阅或不订阅定期存款。我们将使用如下算法:

  • 线性回归
  • 随机森林回归
  • KNN近邻
  • 决策树
  • 高斯朴素贝叶斯
  • 支持向量机

选择最佳模型的决定将基于:

  • 准确性
  • 过采样


数据准备


在本节中,我们加载数据。我们的数据有 45211 个变量。

输入变量:

银行客户数据

1 - 年龄(数字)

2 - 工作:工作类型(分类:'行政'、'蓝领'、'企业家'、'女佣'、'管理'、'退休'、'自雇'、'服务'、'学生'、'技术员'、'失业'、'未知')

3 - 婚姻:婚姻状况(分类:'离婚'、'已婚'、'单身'、'不详';注:'离婚'指离婚或丧偶)。

4 - 教育(分类:'基础4年'、'基础6年'、'基础9年'、'高中'、'文盲'、'专业课程'、'大学学位'、'未知')

5 - 违约:是否有违约的信贷?(分类: '没有', '有', '未知')

6-住房:是否有住房贷款?(分类: '否', '是', '未知')

7 - 贷款:有个人贷款吗?

8 - contact: 联系通信类型(分类:'手机', '电话')。

9 - 月:最后一次联系的年份月份(分类:'一月', '二月', '三月', ..., '十一月', '十二月')

10 - day\_of\_week:最后一次联系的星期(分类:'mon', 'tue', 'wed', 'thu', 'fri')

11 - 持续时间:最后一次联系的持续时间,以秒为单位(数字)。

12 - 活动:在这个活动期间为这个客户进行的接触次数(数字,包括最后一次接触)。

13 - pdays: 在上次活动中最后一次与客户联系后的天数(数字,999表示之前没有与客户联系)。

14 - 以前:在这次活动之前,为这个客户进行的接触次数(数字)。

15 - 结果:上次营销活动的结果(分类:"失败"、"不存在"、"成功")。

社会和经济背景属性

16 - emp.var.rate:就业变化率--季度指标(数值)。

17 - cons.price.idx:消费者价格指数--月度指标(数值)。

18 - cons.conf.idx:消费者信心指数--月度指标(数字)。

19 - euribor3m:银行3个月利率--每日指标(数值)

20 - nr.employed: 雇员人数 - 季度指标(数字)

输出变量(所需目标):

  • y -  客户是否认购了定期存款?(二进制: '是', '否')
data.head(5)

我们的下一步是查看变量的形式以及是否存在缺失值的问题。

df1 = data.dtypes
df1

df2 = data.isnull().sum() 
df2

我们的下一步是计算所有变量的值。

data\['y'\].value_counts()

data\['job'\].value_counts()

data\['marital'\].value_counts()

data\['education'\].value_counts()

data\['housing'\].value_counts()

data\['loan'\].value_counts()

data\['contact'\].value_counts()

data\['month'\].value_counts()

data\['poutcome'\].value_counts()


描述性统计


数值总结

data.head(5)

改变因变量 y 的值。代替 no - 0 和代替 yes - 1。

data\['y'\] = data\['y'\].map({'no': 0, 'yes': 1})
data.columns

对于我们的每个变量,我们绘制一个箱线图来查看是否有任何可见的异常值。

plt.figure(figsize=\[10,25\])
ax = plt.subplot(611)
sns.boxplot(data\['age'\],orient="v")

我们可以看到许多可见的异常值,尤其是在 balance 、 campaign 、 pdays 的情况下。在 pdays ,我们可以看到很多变量都在分位数范围之外。这个变量是一个特例,它被解码为 -1,这就是我们的图看起来像这样的原因。在表示变量之前的箱线图的情况下,它表示在此活动之前执行的联系数量,在这种情况下,我们还可以注意到许多超出分位数范围的值。


直方图


我们的下一步是查看连续变量的分布和直方图

我们可以看到没有一个变量具有正态分布。

plt.figure(figsize=\[10,20\])
plt.subplot(611)
g = sns.distplot(data\["age"\], color="r")

我们的下一步是查看因变量 y 与每个变量或连续变量之间的关系。

g = sns.FacetGrid(data, col='y',size=4)
g.map

从这些变量中我们可以得到的最有趣的观察是,大多数说不的人年龄在20-40岁之间,在月底的第20天,大多数人也拒绝了这个提议。


分类总结


我们制作仅包含分类变量的数据子集,以便更轻松地绘制箱线图

data_categorical = data\[\['job',
 'marital',
 'education',
 'default', 'housing',
 'loan','month', 'y'\]\]

我们还查看了分类变量,看看是否有一些有趣的特征

从上面的条形图中可以看出,最有趣的结果来自变量:婚姻状况、教育和工作。

从代表婚姻状况的图表来看,大多数人都已婚。

正如我们在代表教育的图表上看到的那样 - 最大的是接受过中等教育的人数。

在约伯的情况下,我们可以看到大多数人都有蓝领和管理工作。

我们还想在马赛克图上查看我们的分类变量与 y 变量之间的关系。

plt.rcParams\['font.size'\] = 16.0

正如我们所见,大多数人都拒绝了该提议。就地位而言,已婚的人说“不”最多。

在可变违约的情况下,大多数没有违约信用的人也拒绝了该提案。

大多数有住房贷款的人也拒绝了该提议。

大多数没有贷款的人拒绝了这个提议。


点击标题查阅往期内容


用PyTorch机器学习神经网络分类预测银行客户流失模型


01

02

03

04


数据挖掘


data.head(5)

我们想更深入地研究我们的变量,看看我们是否可以用它们做更多的事情。

我们的下一步是使用 WOE 分析。

finv, IV = datars(data,data.y)
IV


PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享(下):https://developer.aliyun.com/article/1492259

相关文章
|
11天前
|
数据采集 JSON 测试技术
如何在Python中高效实现CSV到JSON的数据转换
在实际项目中,数据格式转换是常见问题,尤其从CSV到JSON的转换。本文深入探讨了多种转换方法,涵盖Python基础实现、数据预处理、错误处理、性能优化及调试验证技巧。通过分块处理、并行处理等手段提升大文件转换效率,并介绍如何封装为命令行工具或Web API,实现自动化批量处理。关键点包括基础实现、数据清洗、异常捕获、性能优化和单元测试,确保转换流程稳定高效。
127 83
|
4天前
|
数据采集 供应链 API
实战指南:通过1688开放平台API获取商品详情数据(附Python代码及避坑指南)
1688作为国内最大的B2B供应链平台,其API为企业提供合法合规的JSON数据源,直接获取批发价、SKU库存等核心数据。相比爬虫方案,官方API避免了反爬严格、数据缺失和法律风险等问题。企业接入1688商品API需完成资质认证、创建应用、签名机制解析及调用接口四步。应用场景包括智能采购系统、供应商评估模型和跨境选品分析。提供高频问题解决方案及安全合规实践,确保数据安全与合法使用。立即访问1688开放平台,解锁B2B数据宝藏!
|
11天前
|
数据采集 存储 前端开发
用Python抓取亚马逊动态加载数据,一文读懂
用Python抓取亚马逊动态加载数据,一文读懂
|
3天前
|
存储 数据采集 JSON
Python爬取某云热歌榜:解析动态加载的歌曲数据
Python爬取某云热歌榜:解析动态加载的歌曲数据
|
9月前
自适应IT互联网营销企业网站pbootcms模板
一款蓝色自适应IT互联网营销企业网站pbootcms模板,该模板采用响应式设计,可自适应手机端,适合一切网络技术公司、互联网IT行业,源码下载,为您提供了便捷哦。
81 2
|
SQL 数据采集 运维
《实时数仓助力互联网实时决策和精准营销》|学习笔记
快速学习《实时数仓助力互联网实时决策和精准营销》
274 0
|
Web App开发 监控
从AIPL到GROW,谈互联网大厂的营销分析模型
上一篇《一文看懂:搭建活动分析体系》分享以后,有小伙伴问:那做活动分析,是不是也有模型呢?答:不但有,而且很多。而且互联网大厂尤其热衷于创造新模型,以至于每年都有新词冒出来,诸如:AIPL、FAST、GROW、RISE、5A……等等,看得人头晕目眩。今天就跟大家简单聊聊这些营销模型背后的底层逻辑。
535 0
从AIPL到GROW,谈互联网大厂的营销分析模型
|
存储 缓存 搜索推荐
聊聊互联网营销的第4门功课(详细)
本文面向对互联网营销技术领域感兴趣的人群,介绍广告投放系统的背景,设计和实现
1605 0
聊聊互联网营销的第4门功课(详细)
|
SQL 数据采集 运维
实时数仓入门训练营:实时数仓助力互联网实时决策和精准营销
《实时数仓入门训练营》由阿里云研究员王峰、阿里云高级产品专家刘一鸣等实时计算Flink版和 Hologres 的多名技术/产品一线专家齐上阵,合力搭建此次训练营的课程体系,精心打磨课程内容,直击当下同学们所遇到的痛点问题。由浅入深全方位解析实时数仓的架构、场景、以及实操应用,7 门精品课程帮助你 5 天时间从小白成长为大牛!
实时数仓入门训练营:实时数仓助力互联网实时决策和精准营销

热门文章

最新文章