1.1.3 · 建议 30 分钟 · 满分 15
金融机构信用评估系统中的业务数据审核流程设计
背景
某金融机构计划引入智能信用评估系统,通过分析客户的历史交易数据和信用记录,使用机器学习算法预测客户的信用风险等级,从而辅助贷款审批和风险控制。为了确保数据的准确性和可靠性,该机构需要设计并实现一套全面的业务数据审核流程,确保数据在进入信用评估系统之前经过严格的审核和清洗。 客户信用数据集 credit_data.csv 包含字段:CustomerID(客户ID)、Name(客户姓名)、Age(年龄)、Income(收入)、LoanAmount(贷款金额)、LoanTerm(贷款期限/月)、CreditScore(信用评分)、Default(是否违约:0 否 / 1 是)、TransactionHistory(历史交易记录,JSON 格式)。
工作任务
- 数据完整性审核:检查数据集中的每个字段是否存在缺失值和重复值。
- 数据合理性审核:审核以下字段的合理性 — 年龄应在 18 到 70 岁之间;收入应大于 2000;贷款金额应小于收入的 5 倍;信用评分应在 300 到 850 之间。对不合理的数据进行标记。
- 数据清洗和异常值处理:对不合理的数据进行标记并删除异常值所在行;清洗后的数据保存为新文件 cleaned_credit_data.csv。
素材预览
credit_data.csv
CustomerID,Name,Age,Income,LoanAmount,LoanTerm,CreditScore,Default,TransactionHistory
1,Customer_1,62,9021,12200,13,808,0,"[{...}]"
2,Customer_2,65,18187,29983,46,378,0,"[{...}]"
...代码填空
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取数据集
data = pd.read_csv('credit_data.csv')# 1. 数据完整性审核
missing_values = data. #数据缺失值统计 2分
duplicate_values = data. #数据重复值统计 2分
# 输出结果
print("缺失值统计:")
print(missing_values)
print("重复值统计:")
print(duplicate_values)# 2. 数据合理性审核
data['is_age_valid'] = .(18, 70) #Age数据的合理性审核 2分
data['is_income_valid'] = > #Income数据的合理性审核 2分
data['is_loan_amount_valid'] = < ( * 5) #LoanAmount数据的合理性审核 2分
data['is_credit_score_valid'] = .(300, 850) #CreditScore数据的合理性审核 2分
# 合理性检查结果
validity_checks = data[['is_age_valid', 'is_income_valid', 'is_loan_amount_valid', 'is_credit_score_valid']].all(axis=1)
data['is_valid'] = validity_checks
# 输出结果
print("数据合理性检查:")
print(data[['is_age_valid', 'is_income_valid', 'is_loan_amount_valid', 'is_credit_score_valid', 'is_valid']].describe())# 3. 数据清洗和异常值处理
# 标记不合理数据
invalid_rows = data[~data['is_valid']]
# 删除不合理数据行
cleaned_data = data[data['is_valid']]
# 删除标记列
cleaned_data = cleaned_data.drop(columns=['is_age_valid', 'is_income_valid', 'is_loan_amount_valid', 'is_credit_score_valid', 'is_valid'])
# 保存清洗后的数据
.(, index=False)
print("数据清洗完成,已保存为 'cleaned_credit_data.csv'")