首页 > 其他分享 >[Deep Learning] 使用keras创建多隐层神经网络模型实现银行客户流失率预测

[Deep Learning] 使用keras创建多隐层神经网络模型实现银行客户流失率预测

时间:2025-01-21 18:05:07浏览次数:1  
标签:keras frame Deep 流失率 test data 模型 bank

内容实现概述

本文主要讲述使用keras库内置的Sequential(序列)模型,实现银行客户流失率预测,它属于一个二分类问题(因为针对单个客户来说,他要么已流失要么未流失)。 具体实现过程如下:

  1. 导入所需库:预先导入nump、pandas、sklearn以及keras库
  2. 导入数据:使用pandas库的文件解析方法read_csv(),读取银行客户文件数据
  3. 数据预处理:对银行客户数据进行预处理,使用pandas库先处理掉与预测结果无关的数据列(如name属性)以及将有二元、多元类别的特征数据进行归一化,并获取特征数据与目标数据
  4. 数据分割与特征缩放:使用sklearn库的数据分割方法对步骤3中的数据进行比例分割,得到训练集和测试集数据,并分别对其进行特征缩放
  5. 构建模型:调用keras库的Sequential模型类,构建模型
  6. 添加网络层,使用常见的Relu类型激活函数以及最后一层激活函数为Sigmoid(由于预测结果是二分类)
  7. 编译模型:调用keras库的compile()方法对模型进行编译,设置常损失函数模板(二进制交叉熵误差)和评估模板(准确率)
  8. 训练模型:调用keras库的fit()方法对训练集数据进行拟合,设置好迭代轮次和批次参数值
  9. 预测模型:调用keras库的predict()方法对测试集数据进行预测
  10. 评估模型:调用sklearn库的classification_report方法,打印评估表格

注:

  • 在Python中使用(导入)numpy库时,需要先安装,本实现使用的是pip命令安装 pip install numpy
  • 在Python中使用(导入)pandas库时,需要先安装,本实现使用的是pip命令安装 pip install pandas
  • 在Python中使用(导入)scikit-learn库时,需要先安装,本实现使用的是pip命令安装 pip install -U scikit-learn
  • 在Python中使用(导入)keras库时,需要先安装,本实现使用的是pip命令安装 pip install --upgrade keras
  • Keras官方教程

代码实现

注:源代码地址


# 主题:使用多隐层神经网络模型预测银行客户流失率(二分类问题)

import os
os.environ['TF_ENABLE_ONEDNN_OPTS'] = '0'

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import classification_report
from keras.src.models import Sequential # 导入Keras库的序贯模型
from keras.src.layers import Dense # 导入Keras库的全(密集)连接层

# 1. 加载数据集
bank_data_frame = pd.read_csv('ShallowNeuralNetworks\\BankCustomers.csv')



# 2. 数据预处理
## a. 忽略与预测结果不相关的特征
# axis的值默认为0,指删除行,删除列数据时要指定axis=1
bank_data_frame = bank_data_frame.drop('Surname', axis=1)

## b. 二元类别特征,转换成值为0或1的格式
bank_data_frame['Gender'].replace('Male', 0, inplace=True)
bank_data_frame['Gender'].replace('Female', 1, inplace=True)

## c. 多元类别特征,转换成多个二元哑变量
# 将Geography列的值,按行和列分别展开,映射成一个二维数组
geography = pd.get_dummies(bank_data_frame['Geography'], prefix='Geography')
# 将geography与原先的bank_data_frame一起组成DataFrame类型的数组
bank_data_frame = [bank_data_frame, geography]
# 将两个数组合并成一个
bank_data_frame = pd.concat(bank_data_frame, axis=1)

# d. 拆分数据集
y = bank_data_frame['Exited']
X = bank_data_frame.drop(['Exited', 'Geography'], axis=1)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

# e. 特征缩放
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)



# 3. 模型处理
# 第一步:导入神经网络模型
model = Sequential()

# 第二步:添加网络层
model.add(Dense(14, input_dim=14, activation='relu'))
model.add(Dense(28, activation='relu'))
model.add(Dense(1, activation="sigmoid"))
model.summary()

## 第三步:编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

## 第四步:训练模型
history = model.fit(X_train, y_train, epochs=30, batch_size=64, validation_data=(X_test, y_test))

# 第五步:预测模型
y_pred = model.predict(X_test, batch_size=10)

# 第六步:评估模型
y_pred = np.round(y_pred)

def shwo_report(y_test, y_pred):
    if(y_test.shape != (2000, 1)):
        y_test = y_test.values
        y_test = y_test.reshape(len(y_test), 1)
    print(classification_report(y_test, y_pred, labels=[0, 1]))

shwo_report(y_test, y_pred)

运行结果


image

image

标签:keras,frame,Deep,流失率,test,data,模型,bank
From: https://www.cnblogs.com/xl1164191281/p/18683806

相关文章

  • [Deep Learning] 使用keras创建多层感知机神经网络模型并添加dropout正则化策略优化银
    内容实现概述本文主要讲述使用keras库内置的Sequential(序列)模型,实现银行客户流失率预测,它属于一个二分类问题(因为针对单个客户来说,他要么已流失要么未流失)。具体实现过程如下:导入所需库:预先导入nump、pandas、sklearn以及keras库导入数据:使用pandas库的文件解析方法read_csv(......
  • [Deep Learning] 使用多分类的Sequential神经网络模型实现新闻分类
    一、内容实现概述本文主要讲述使用keras库内置的Sequential(序列)模型,实现新闻分类。具体实现过程如下:导入所需库:预先导入keras库导入数据:调用keras库内置的房价数据库(imdb,即互联网电影资料库)方法load_data(),导入并分割好数据数据预处理:对由整数表示的电影评论数......
  • [Deep Learning] 使用标量回归的Sequential神经网络模型实现房价预测
    一、内容实现概述本文主要讲述使用keras库内置的Sequential(序列)模型,实现房价预测。具体实现过程如下:1.导入所需库:预先导入keras以及scikit-learn库2.导入数据:调用keras库内置的房价数据库(boston_housing)方法load_data(),导入并分割好数据3.数据预处理:对房价数据进行特征缩......
  • NET8利用SemanticKernel对接DeepSeek
    1usingMarkdownSharp;2usingMicrosoft.Extensions.Hosting;3usingMicrosoft.SemanticKernel;4usingOpenAI;5usingOpenAI.Chat;6usingSystem.ClientModel;7usingSystem.Text;89varbuilder=Host.CreateApplicationBuilder(args);10//buil......
  • 远铂DIY官网系统AI助手新增支持DeepSeek-V3 AI模型接口
            近日,量化巨头幻方量化的子公司深度求索(DeepSeek)发布了全新系列模型DeepSeek-V3,并同步开源。这一事件迅速引爆AI圈,DeepSeek-V3不仅霸榜开源模型,更在性能上与全球顶尖闭源模型GPT-4o和Claude-3.5-Sonnet不相上下。    更令人瞩目的是,该模型的训练成本仅......
  • 手把手教你使用PySide6搭建AI聊天界面,使用DeepSeek大模型接口
    目录前言一、DeepSeek注册与使用二、安装环境三、界面设计四、后端实现1.QTextEdit输入控件实现2.API请求与响应处理3.消息显示与时间显示4.实现头像绘制和文本的绘制5.更换头像五、完整源码下载和使用方法总结前言随着深度学习和自然语言处理技术的不断进步,问答......
  • DeepSeek-V3 的 MoE 架构解析:细粒度专家与高效模型扩展
    DeepSeek-V3采用的DeepSeekMoE架构,通过细粒度专家、共享专家和Top-K路由策略,实现了模型容量的高效扩展。每个MoE层包含1个共享专家和256个路由专家,每个Token选择8个路由专家,最多路由至4个节点。这种稀疏激活的机制,使得DeepSeek-V3能够在不显著增加计算成本的......
  • DeepSeek Artifacts:前端开发的新利器
    DeepSeekArtifacts:前端开发的新利器人工智能领域创新不断,DeepSeekV3便是其中备受瞩目的工具之一。这款轻量级模型凭借在大语言模型(LLM)排行榜上的优异表现,以及亲民的价格和卓越的性能,在人工智能社区中广受关注。然而,它的姊妹工具DeepSeekArtifacts却因截然不同的缘由引发了热......
  • DeepSeek V3:AI 模型的游戏规则改变者
    DeepSeekV3:AI模型的游戏规则改变者什么是DeepSeekV3?DeepSeekV3是一款具有革命性的混合专家(MoE)模型,总参数达6710亿,每个标记激活370亿参数。MoE方法允许多个专门模型(即“专家”)在门控网络下协同工作,门控网络为每个输入选择最佳“专家”。这实现了高效推理和具有成本效益的训......
  • DeepSeek推出搭载V3大模型App:开启智能应用新时代 
     科技浪潮下的创新突破 在当今科技飞速发展的时代,人工智能(AI)无疑是最为耀眼的领域之一。从早期简单的算法模型,到如今能够模拟人类思维、进行复杂任务处理的大型语言模型,AI的进化历程令人瞩目。而在这一进程中,DeepSeek推出的搭载V3大模型的App,宛如一颗璀璨的新星,为智能应用......