信用卡违约预测:使用逻辑回归模型进行二分类

本项目使用逻辑回归模型对信用卡违约进行预测,并基于训练集和验证集计算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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录