信用卡违约预测:使用逻辑回归模型进行二分类
信用卡违约预测:使用逻辑回归模型进行二分类
本项目使用逻辑回归模型对信用卡违约进行预测,并基于训练集和验证集计算AUC值,最终输出测试集的分类结果。
数据集说明
该数据集包含23个特征,用于预测信用卡是否违约。训练数据集中已经给出二分类结果(最后一列),取值为0或1,分别代表未违约和违约。
数据属性
- 第1列: 信用卡的额度
- 第2列: 性别 (1 = male; 2 = female).
- 第3列: 教育 (1 = graduate school; 2 = university; 3 = high school; 4 = others).
- 第4列: 婚姻状态 (1 = married; 2 = single; 3 = others).
- 第5列: 年龄.
- 第6 - 11列: 过去几个月的还款状态(4月到9月),-1,-2代表按时还款,其他代表延迟还款的月份数
- 第12 - 17列: 过去几个月的账单记录
- 第 18 – 23 列: 过去几个月的支付记录
- 最后一列为类别y值,取值为0或1
代码实现
import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score
from sklearn.model_selection import train_test_split
# 读取数据
data = pd.read_csv('题目2训练数据.txt', header=None, sep='\t')
X_train = data.iloc[:, :-1].values
y_train = data.iloc[:, -1].values
# 划分训练集和验证集
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.2, random_state=42)
# 训练模型
clf = LogisticRegression()
clf.fit(X_train, y_train)
# 预测并计算AUC值
y_train_pred = clf.predict_proba(X_train)[:, 1]
y_val_pred = clf.predict_proba(X_val)[:, 1]
print('训练集AUC值:', roc_auc_score(y_train, y_train_pred))
print('验证集AUC值:', roc_auc_score(y_val, y_val_pred))
# 读取测试数据并进行预测
test_data = pd.read_csv('题目2测试数据.txt', header=None, sep='\t').values
y_test_pred = clf.predict_proba(test_data)[:, 1]
# 输出预测结果到文件
np.savetxt('题目2测试结果.txt', y_test_pred, fmt='%.2f')
结果
最终输出一个包含2000个0-1之间实数值的txt文件,每个值代表测试数据集中每个样本的违约概率,保留两位小数,用空格分割。
总结
本项目通过逻辑回归模型对信用卡违约进行了预测,并计算了AUC值来评估模型性能。该模型能够有效地对信用卡违约进行预测,为金融机构提供参考依据。
原文地址: https://www.cveoy.top/t/topic/nRUF 著作权归作者所有。请勿转载和采集!