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

相关文章
|
5天前
|
机器学习/深度学习 分布式计算 算法
联邦学习是保障数据隐私的分布式机器学习方法
【6月更文挑战第13天】联邦学习是保障数据隐私的分布式机器学习方法,它在不暴露数据的情况下,通过在各设备上本地训练并由中心服务器协调,实现全局模型构建。联邦学习的优势在于保护隐私、提高训练效率和增强模型泛化。已应用于医疗、金融和物联网等领域。未来趋势包括更高效的数据隐私保护、提升可解释性和可靠性,以及与其他技术融合,有望在更多场景发挥潜力,推动机器学习发展。
15 4
|
2天前
|
机器学习/深度学习 人工智能 TensorFlow
机器学习项目实战:使用Python实现图像识别
在AI时代,Python借助TensorFlow和Keras实现图像识别,尤其在监控、驾驶、医疗等领域有广泛应用。本文通过构建CNN模型识别MNIST手写数字,展示图像识别流程:安装库→加载预处理数据→构建模型→训练→评估。简单项目为深度学习入门提供基础,为进一步探索复杂场景打下基础。
17 5
|
5天前
|
机器学习/深度学习 算法 Python
介绍文本分类的基本概念、常用方法以及如何在Python中使用机器学习库进行文本分类
【6月更文挑战第13天】文本分类是机器学习在数字化时代的关键应用,涉及文本预处理、特征提取和模型训练等步骤。常见方法包括基于规则、关键词和机器学习,其中机器学习(如朴素贝叶斯、SVM、深度学习)是主流。在Python中,可使用scikit-learn进行文本分类,例如通过TF-IDF和朴素贝叶斯对新闻数据集进行处理和预测。随着技术发展,未来将深入探索深度学习和多模态数据在文本分类中的应用。
15 2
|
5天前
|
机器学习/深度学习 边缘计算 TensorFlow
Python机器学习工具与库的现状,并展望其未来的发展趋势
【6月更文挑战第13天】本文探讨了Python在机器学习中的核心地位,重点介绍了Scikit-learn、TensorFlow、PyTorch等主流库的现状。未来发展趋势包括自动化、智能化的工具,增强可解释性和可信赖性的模型,跨领域融合创新,以及云端与边缘计算的结合。这些进展将降低机器学习门槛,推动技术在各领域的广泛应用。
11 3
|
5天前
|
机器学习/深度学习 数据采集 算法
机器学习入门:算法与数据的探索之旅
【6月更文挑战第13天】本文介绍了机器学习的基础,包括算法和数据处理的重要性。机器学习算法分为监督学习(如线性回归、决策树)、非监督学习(如聚类、降维)和强化学习。数据处理涉及数据清洗、特征工程、数据分割及标准化,是保证模型性能的关键。对于初学者,建议学习基础数学、动手实践、阅读经典资料和参与在线课程与社区讨论。
|
5天前
|
机器学习/深度学习 算法 数据挖掘
机器学习新手也能飞:Python+Scikit-learn让你轻松入门!
【6月更文挑战第12天】Python和Scikit-learn降低了机器学习的门槛,让初学者也能轻松涉足。Python以其易用性及丰富的库支持成为机器学习首选语言,而Scikit-learn作为开源机器学习库,提供多种算法和工具。通过简单示例展示了如何使用两者处理鸢尾花数据集进行分类,体现其在实践中的高效便捷。掌握这两者,能助你在机器学习领域不断探索和创新。
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
炸裂!PAI-DSW 和 Free Prompt Editing 图像编辑算法,成就了超神的个人 AIGC 绘图小助理!
【6月更文挑战第11天】PAI-DSW 和 Free Prompt Editing 算法引领图像编辑革命,创造出个人AIGC绘图小助理。PAI-DSW擅长深度图像处理,通过复杂模型和深度学习精准编辑;Free Prompt Editing则允许用户以文本描述编辑图像,拓展编辑创意。结合两者,小助理能根据用户需求生成惊艳图像。简单Python代码示例展示了其魅力,打破传统编辑局限,为专业人士和普通用户提供创新工具,开启图像创作新篇章。未来,它将继续进化,带来更多精彩作品和体验。
|
19天前
|
机器学习/深度学习 算法 TensorFlow
机器学习算法简介:从线性回归到深度学习
【5月更文挑战第30天】本文概述了6种基本机器学习算法:线性回归、逻辑回归、决策树、支持向量机、随机森林和深度学习。通过Python示例代码展示了如何使用Scikit-learn、statsmodels、TensorFlow库进行实现。这些算法在不同场景下各有优势,如线性回归处理连续值,逻辑回归用于二分类,决策树适用于规则提取,支持向量机最大化类别间隔,随机森林集成多个决策树提升性能,而深度学习利用神经网络解决复杂模式识别问题。理解并选择合适算法对提升模型效果至关重要。
185 4
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 一文看懂人工智能、机器学习、深度学习是什么、有什么区别!
**摘要:** 了解AI、ML和DL的旅程。AI是模拟人类智能的科学,ML是其分支,让机器从数据中学习。DL是ML的深化,利用多层神经网络处理复杂数据。AI应用广泛,包括医疗诊断、金融服务、自动驾驶等。ML助力个性化推荐和疾病预测。DL推动计算机视觉和自然语言处理的进步。从基础到实践,这些技术正改变我们的生活。想要深入学习,可参考《人工智能:一种现代的方法》和《深度学习》。一起探索智能的乐趣!
18 1
算法金 | 一文看懂人工智能、机器学习、深度学习是什么、有什么区别!
|
2天前
|
机器学习/深度学习 数据采集 监控
算法金 | 选择最佳机器学习模型的 10 步指南
许多刚入门的学习者也面临着相似的挑战,特别是在项目启动初期的方向确定和结构规划上。本文意在提供一份全面指南,助你以正确的方法开展项目。 遵循本文提供的每一步至关重要(虽有少数例外)。就像不做饭或点餐就无法享用美食一样,不亲自动手构建模型,就无法实现模型部署。
26 7
算法金 | 选择最佳机器学习模型的 10 步指南

热门文章

最新文章