51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

在交通银行的信贷业务中,数据分析师需要构建信贷风险模型。请说明如何从原始数据(如用户征信报告、交易数据、行为数据)中提取有效特征,并解释每个特征对风险预测的贡献。例如,如何处理“历史逾期记录”这一特征,以及如何构建“行为特征”如“月均还款金额波动率”等。

交通银行数据分析师难度:中等

答案

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) 【追问清单】:

  • 问:如何处理特征中的缺失值?
    回答要点:对于历史逾期记录,若数据缺失,根据业务规则(如最近一期无逾期则补0);对于行为特征,若数据不足,用均值或中位数填充,或调整时间窗口。
  • 问:特征选择的方法有哪些?
    回答要点:常用过滤法(如方差、相关系数)、包装法(如递归特征消除)、嵌入法(如L1正则化),结合模型性能(如AUC、KS值)选择最优特征子集。
  • 问:如何验证特征的有效性?
    回答要点:通过特征与目标变量(违约率)的统计检验(如皮尔逊相关系数、卡方检验),或特征删除后模型性能(AUC、KS值)下降,说明特征有效。
  • 问:处理历史逾期记录时,是否考虑逾期金额?
    回答要点:可补充计算逾期金额的累计值,作为额外特征,反映逾期损失程度,更全面量化风险。
  • 问:时间窗口选择依据是什么?
    回答要点:依据业务周期(如信用卡月度还款,窗口选6个月或12个月),6个月反映短期波动,12个月反映长期趋势,需结合业务场景调整。

7) 【常见坑/雷区】:

  • 忽略时间窗口的业务逻辑:比如未考虑还款频率(月度),导致时间窗口选择不合理,特征计算错误。
  • 处理缺失值时未考虑业务规则:比如直接用0填充,导致特征偏差,应结合业务(如最近无逾期则补0)。
  • 未验证特征与目标变量的相关性:若特征与违约率无显著相关性,即使计算复杂,也会降低模型效果,需通过统计检验。
  • 特征多重共线性:比如历史逾期次数和平均逾期天数高度相关,模型中保留两者会导致参数不稳定,需通过特征选择或降维。
  • 行为特征计算时未考虑窗口内数据点不足:若窗口内数据点少于指定数量,计算波动率无意义,应返回缺失值或调整窗口。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1