
1) 【一句话结论】:信贷风险模型的有效特征需从用户征信、交易、行为等多源数据中提取,通过特征工程(如历史逾期记录的量化、行为波动率的计算),每个特征从不同维度(信用历史、还款能力、行为稳定性)反映风险,需结合业务逻辑(时间窗口、数据缺失处理)和有效性验证(统计检验、模型性能指标),共同提升模型对信贷风险的预测精度。
2) 【原理/概念讲解】:数据分析师构建信贷风险模型时,特征工程是核心步骤,原始数据(如征信报告、交易流水)是“原材料”,特征是“加工后的零件”,模型需要这些“零件”来识别风险模式。例如,“历史逾期记录”是用户信用历史的直接体现,反映其过往还款能力;“月均还款金额波动率”属于行为特征,反映还款能力的稳定性。类比:判断一个人是否可靠,征信是“过往行为记录”,还款波动是“当前行为是否稳定”,就像看一个人的历史表现和当前行为的一致性,判断其可靠性。多源数据整合是关键,需将征信(静态信用)、交易(还款能力)、行为(当前行为模式)数据融合,每个数据源提供不同维度的信息,共同构建全面的特征集。
3) 【对比与适用场景】:
| 特征类型 | 定义 | 处理方法 | 风险贡献 | 时间窗口选择依据 | 注意点 |
|---|---|---|---|---|---|
| 历史逾期记录 | 用户过去一定时期内的逾期次数、逾期天数、严重逾期(如90天以上) | 统计过去N期(如12期)的逾期次数、平均逾期天数、严重逾期次数;若数据不足,补0或均值 | 反映信用历史,直接关联违约概率,逾期次数/天数越多,风险越高 | 信用卡业务中,还款频率为月度,通常选12个月(1年)或6个月(短期趋势),依据业务周期和风险监测频率 | 若数据缺失,需根据业务规则(如最近一期无逾期则补0),避免偏差 |
| 月均还款金额波动率 | 还款金额的波动程度,公式:波动率 = (还款金额标准差 / 月均还款金额) | 计算过去M期(如6个月)的还款金额,计算标准差,除以均值;若窗口内数据点不足,返回缺失值 | 反映还款能力稳定性,波动率越高,说明财务状况不稳定,风险越高 | 依据还款频率(月度),M选6或12,6个月反映短期波动,12个月反映长期趋势 | 需确保窗口内数据点足够(如至少6个数据点),否则特征无效 |
| 交易行为特征(如月均消费金额) | 用户月均消费金额 | 计算过去N期(如12个月)的月均消费金额 | 反映还款能力(消费水平与收入匹配),消费过高可能影响还款能力 | 同上,12个月窗口 | 需考虑消费与收入的比例,避免仅看消费金额 |
4) 【示例】:
处理历史逾期记录的伪代码(含异常处理):
def extract_overdue_features(df, n=12):
# 过滤逾期记录
overdue_df = df[df['is_overdue'] == 1]
# 计算过去n期逾期次数
overdue_counts = overdue_df.groupby('user_id')['is_overdue'].count().reset_index()
overdue_counts.columns = ['user_id', f'overdue_count_{n}m']
# 计算平均逾期天数
overdue_days = overdue_df.groupby('user_id')['overdue_days'].mean().reset_index()
overdue_days.columns = ['user_id', f'avg_overdue_days_{n}m']
# 合并特征,数据不足时补0
features = overdue_counts.merge(overdue_days, on='user_id', how='left').fillna(0)
return features
计算月均还款金额波动率的伪代码(含异常处理):
def calculate_repayment_volatility(df, user_id, window=6):
repayments = df[df['user_id'] == user_id]['repayment_amount'].tail(window)
if len(repayments) < window:
return None # 数据不足,返回缺失值
mean = repayments.mean()
std = repayments.std()
volatility = std / mean
return volatility
5) 【面试口播版答案】:(约90秒)
“面试官您好,构建信贷风险模型时,有效特征提取是关键。我们从用户的多源数据(征信、交易、行为)中提取特征,比如征信里的历史逾期记录,交易里的还款金额,行为里的还款波动。对于历史逾期记录,我们会统计过去12个月的逾期次数、平均逾期天数,这些直接反映用户信用历史,逾期次数越多、天数越长,违约风险越高。然后行为特征比如月均还款金额波动率,计算过去6个月还款金额的标准差除以均值,反映还款稳定性,波动率越高,说明用户财务状况可能越不稳定,风险越高。这些特征从不同维度(信用历史、还款能力、行为稳定性)共同作用,提升模型对风险的预测精度。处理时需结合业务逻辑,比如时间窗口选12个月(征信类特征),6个月(行为波动率),数据不足时用默认值,并通过统计检验(如皮尔逊相关系数)和模型性能(AUC、KS值)验证特征有效性。”
6) 【追问清单】:
7) 【常见坑/雷区】: