基于BP神经网络的银行客户流失预测的代码案例。
时间: 2024-12-23 08:18:14 浏览: 11
基于BP(Back Propagation,反向传播)神经网络进行银行客户流失预测的一个基本步骤可以分为以下几个部分:
```python
# 导入必要的库
import numpy as np
from sklearn.model_selection import train_test_split
from keras.models import Sequential
from keras.layers import Dense
from keras.wrappers.scikit_learn import KerasClassifier
# 假设你已经有了处理好的数据集,其中包含客户特征(X)和流失标签(y)
data = ... # 银行客户数据,X为客户特征,y为客户是否流失
X = data.drop('流失', axis=1) # 特征列
y = data['流失'] # 目标变量
# 数据预处理(归一化、编码等)
scaler = StandardScaler()
X = scaler.fit_transform(X)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建Keras模型
def create_model():
model = Sequential([
Dense(64, activation='relu', input_dim=X_train.shape[1]), # 输入层
Dense(32, activation='relu'), # 隐藏层
Dense(1, activation='sigmoid') # 输出层(二分类问题,用sigmoid激活函数)
])
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
return model
# 使用KerasClassifier包装模型
model = KerasClassifier(build_fn=create_model, epochs=50, batch_size=32)
# 训练模型
model.fit(X_train, y_train)
# 预测
predictions = model.predict(X_test)
# 评估模型性能
score = model.evaluate(X_test, y_test)
print(f"Accuracy: {score[1]}")
#
阅读全文