背景

近年来,越来越多的人习惯使用信用卡来消费,而各大银行金融机构也纷纷投入更多的资源来抢占信用卡业务市场份额,因此信用卡产业飞速发展。由于市场竞争激烈,“僧多肉少”、同质化的局面越来越严重,商业银行迫切需要一个方便快捷、精准有效的方式拓宽自身的客户规模,从而降低成本,提高收益及自身竞争力。

模型搭建

模型搭建分4个步骤:读取特征数据(features)、提取特征变量及目标变量(extract_features)、将数据集分为训练集(training_set)和测试集(testing_ set)、模型训练(training_model)。

1.读取数据

本示例中,我选取了1000条数据,为了便于展示,我选取了6个特征(现实中肯定有很多特征变量):年龄、月收入、月消费、性别、月消费/月收入、学历。

import pandas as pd
df = pd.read_excel('信用卡精准营销模型.xlsx')
2. 提取特征变量及目标变量
X = df.drop(columns='响应')    # 将数据文件除字段“响应”外,保存为DataFrame格式
y = df['响应']

提取得到的X和y分别如下:

2. 将数据集分为训练集和测试集

在这里,我将数据集的80%作为训练集,20%作为测试集

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

其中,参数test_size是测试集数据;

参数random_state设置为42(这个参数没有特殊含义,可以换成其他数值,上下保持一致即可)。

3. 模型训练

分好训练集和测试集后,接下来就可以训练模型了,即从Scikit-Learn库中导入AdaBoost分类模型进行模型训练:

from sklearn.ensemble import AdaBoostClassifier
clf = AdaBoostClassifier(random_state=42)
clf.fit(X_train, y_train

4.模型预测及评估

上述过程已经得到了训练好的模型,接下来就是对测试集进行预测。

y_pred = clf.predict(X_test)
print(y_pred)

打印出来的y-pred结果如下:

通过代码看可以显示预测值与实际值的差异,在这里,我只显示了前五条数据:

a = pd.DataFrame()
a['预测值'] = list(y_pred)
a['实际值'] = list(y_test)
a.head()

查看上图,我们可以看到,预测值与实际值仅有1个不同。为了更好的显示预测的准确性,我通过以下代码计算预测值与实际值两者之间的准确度。

from sklearn.metrics import accuracy_score
score = accuracy_score(y_pred, y_test)
print(score)

运行上述代码后,得到的score为0.86,说明该模型预测的准确度达到0.86。 由于AdaBoost分类模型是弱学习器分类决策树,其本质上预测的并不是准确的0或1的分类,而是预测属于某一类的概率,通过如下代码可以查看预测属于各个分类的概率。

y_pred_proba = clf.predict_proba(X_test)
print(y_pred_proba[0:5])

下面,我们还可以通过绘制ROC曲线来评估模型的预测效果,代码如下:

from sklearn.metrics import roc_curve
fpr, tpr, thres = roc_curve(y_test.values, y_pred_proba[:, 1])
import matplotlib.pyplot as plt
plt.plot(fpr, tpr)
plt.show()

​通过如下代码计算模型的AUC值:

from sklearn.metrics import roc_auc_score
auc = roc_auc_score(y_test, y_pred_proba[:,1])
print(auc)

计算得到0.9402(最大值是1),说明该模型的预测效果良好。同时,为了更好地了解到哪些特征对模型有重大的影响,以便后期可以更好地选择特征变量来训练模型,从而提高模型的预测性能,相关代码如下:

features = X.columns  # 获取特征名称
importances = clf.feature_importances_  # 获取特征重要性
importances_df = pd.DataFrame()
importances_df['特征名称'] = features
importances_df['特征重要性'] = importances
importances_df.sort_values('特征重要性', ascending=False)

结果如下:

可以看出,特征的重要性由高至低依次为“月消费/月收入”、“月消费”、“月收入”、“学历”、“年龄”和“学历”。

AdaBoost算法搭建信用卡精准营销模型相关推荐

  1. 机器学习:基于AdaBoost算法对信用卡精准营销建立模型(附案例实战)

    机器学习:基于AdaBoosts算法对信用卡精准营销建立模型 作者:i阿极 作者简介:Python领域新星作者.多项比赛获奖者:博主个人首页

  2. 实战案例!基于 K-Means 聚类算法的客户精准营销模型

    客群细分对于企业了解目标受众非常重要.根据受众群体的不同,我们可以给采取不同的营销策略.目前有许多无监督的机器学习算法可以帮助公司识别他们的用户群并创建消费群体. 在本文中,我将分享一种目前比较流行的 ...

  3. 基于机器学习的5G精准营销模型

    [摘  要]随着5G商用牌照的正式发放,移动通信行业的竞争日趋白热化,如何在激烈的市场竞争环境中保持优势地位是摆在各运营商面前的难题[1].因此,以云南移动客户为主要研究对象,以5G套餐的目标客户识别 ...

  4. 零基础搭建个性化精准营销 AI 应用,这次手把手教你!

    百万学AI系列AI 应用开发大师课已经直播两期了,在前两期的内容中,大家在入门级任务<猫狗分类器>中上手 TensorFlow 开发,通过离线 SDK 在 Android 手机中完成人脸识 ...

  5. 【AdaBoost算法】

    AdaBoost算法的原理介绍 AdaBoost算法核心思想 AdaBoost算法 (Adaptive Boosting) 是一种有效而实用的Boosting算法, 它以一种高度自适应的方法顺序地训练 ...

  6. 【机器学习算法实战3】产品营销模型之建置及预测(CDA赛题)

    一.案例介绍 这是CDA数据分析网站的一个赛题,A公司希望发掘用户购买产品的行为习惯,建立产品精准营销模型,对有意向的客户进行精准营销,增加收入,减少开支.将通过混淆矩阵(Confusion matr ...

  7. AdaBoost算法部分理论推导

    一.引言 本人在看周志华老师编写的<机器学习>一书的AdaBoost推导部分的内容时,总感觉内容有点跳跃,思路不太流畅,并且书中的一些操作也不是很能理解(例如8.13的泰勒展开),故在参考 ...

  8. 「二分类算法」提供银行精准营销解决方案(各个模型汇总分析)baseline

    完整代码见 Github:「二分类算法」提供银行精准营销解决方案 赛事详情 1.比赛页面:「二分类算法」提供银行精准营销解决方案 2.数据与测评算法 训练集下载链接 测试集下载链接 字段说明 测评算法 ...

  9. AI:人工智能实践六大场景(金融信用违约、反欺诈模型、客户偏好洞察、智能推荐、精准营销、客户流失管理)及其对应常用机器学习算法经验总结(不断更新)

    AI:人工智能实践六大场景(金融信用违约.反欺诈模型.客户偏好洞察.智能推荐.精准营销.客户流失管理)及其对应常用机器学习算法经验总结(不断更新) 目录

最新文章

  1. python盘点订单_django解决订单并发问题【推荐】
  2. libcurl网络连接使用tcp/ip
  3. PHP部分字符串函数汇总
  4. linux命令之userdel
  5. markov chain, MRP MDP
  6. 三年级计算机课画曲线,三年级上册信息技术曲线工具教案
  7. 搭建和测试 Redis 主备和集群
  8. 用 Wolfram 语言绘制电子轨道
  9. linux双系统 引导修复,Linux与windows双系统GRUB引导修复
  10. 史上最简单的 Nginx 教程,没有之一!
  11. Cisco Packet Tracer思科模拟器交换机的HSRP技术
  12. HDU1166 敌兵布阵【线段树】题解
  13. SPSS数据分析-交叉表分析
  14. unity 2020 怎么写shader使其接受光照?_Unity中实现2D光照系统
  15. 用C语言实现推箱子小游戏基础程序
  16. 苹果在 WWDC 上宣布放弃英特尔转向 ARM 芯片,会有哪些优势?你的 Mac 将何去何从?
  17. 中国建成世界海中最高5G基站 采用微波传输方案
  18. 53端口渗透之dns劫持与欺骗篇
  19. 树莓派——步进电机+驱动器 篇
  20. matlab if 多条,matlab多个if条件嵌套

热门文章

  1. 论文对比实验图神器MulimgViewer
  2. Python——程序:彩票游戏(细节修改)
  3. Android Studio 启动问题(does not point to a valid jvm installation)
  4. 基于vue2+element+springboot+mysql+jpa+mybatis的图书管理系统
  5. 五年级计算机课主要学哪些内容,五年级信息技术教学计划(精选4篇)
  6. 高级驱动——(驱动所有按键)
  7. 基于SpringBoot的旅游管理系统设计与实现
  8. MySQL数据库从入门到实战应用(学习笔记三)
  9. An internal error occurred during: Validating **.问题处理
  10. android底部弹出滚轮,Android-PickerView-master