4. 特征工程概念

特征工程是信用评分模型开发中最关键、最耗时的环节。原始数据(如交易流水、客户信息表)无法直接输入模型,必须经过一系列转换、清洗和构造,生成具有预测能力的特征变量。特征工程的质量直接决定了模型性能的上限——“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限”。

核心观点:在信用评分场景中,特征工程不是简单的字段搬运,而是将业务逻辑(如还款意愿、收入稳定性、负债水平)转化为数学表达式的过程。

4.1 特征工程定义

特征工程(Feature Engineering)是指利用领域知识和数学变换,从原始数据中提取、构造、选择最能反映问题本质的特征变量的过程。在SQL信用评分场景中,特征工程通常包含以下四个子任务:

  1. 特征提取(Feature Extraction):从原始表(如交易流水、申请信息)中通过聚合、窗口函数、条件计数等方式生成新字段。
  2. 特征构造(Feature Construction):基于已有特征通过四则运算、比率、分箱、交叉组合等方式创建高阶特征。
  3. 特征选择(Feature Selection):从大量候选特征中筛选出与目标变量(如逾期标签)相关性高、冗余度低的子集。
  4. 特征变换(Feature Transformation):对数值型特征进行标准化、对数化、WOE编码等处理,使其满足模型假设。
SQL实战提示:在信用评分项目中,80%以上的特征工程工作可以在SQL层面完成,尤其是特征提取和特征构造阶段。利用SQL的窗口函数(ROW_NUMBER、LAG、SUM OVER)和聚合函数,可以高效生成时序特征和汇总特征。

4.2 特征类型

信用评分模型中的特征按数据性质可分为三大类:数值型、类别型和时序型。每种类型在SQL提取方式和模型适用性上存在显著差异。

特征类型 定义 SQL提取示例 信用评分典型特征
数值型 连续或离散的数值,可进行四则运算 AVG(amount) OVER (PARTITION BY user_id) 近6个月平均消费金额、年龄、收入
类别型 有限个离散取值,无天然顺序 CASE WHEN channel='APP' THEN 1 ELSE 0 END 婚姻状况、职业类型、学历等级
时序型 包含时间顺序的序列数据,关注趋势和周期性 LAG(amount,1) OVER (PARTITION BY user_id ORDER BY trans_date) 近3个月消费金额环比变化、还款间隔天数

4.2.1 数值型特征

数值型特征是信用评分模型中最常见的输入。在SQL中,数值型特征通常通过聚合函数(SUM、AVG、MAX、MIN、COUNT)和窗口函数生成。需要注意:数值型特征可能存在长尾分布(如收入、交易金额),在建模前通常需要做对数变换或分箱处理。

4.2.2 类别型特征

类别型特征在SQL中通常通过CASE WHEN或DECODE转换为哑变量(Dummy Variables)。在信用评分中,类别型特征需要特别注意稀疏类别问题——当某个类别的样本量过少时,应合并到“其他”类别,避免过拟合。常用的编码方式包括:独热编码、WOE编码(信用评分专用)、目标编码。

4.2.3 时序型特征

时序型特征是信用评分模型区别于传统评分卡的重要特征类型。通过SQL的LAG、LEAD、ROW_NUMBER等窗口函数,可以提取:

  • 趋势特征:近3个月消费金额的移动平均、斜率
  • 波动特征:交易金额的标准差、变异系数
  • 间隔特征:两次还款之间的天数、最近一次交易距今的天数
  • 周期性特征:周末/工作日消费比例、月初/月末还款行为差异
常见陷阱:时序特征提取时容易犯“未来信息泄露”的错误。例如,用全量数据计算平均值作为特征,但实际上在预测时间点,该平均值包含了未来的数据。正确的做法是使用时间窗口截断,只使用预测时间点之前的数据。
特征类型与SQL提取方法关系图 特征工程 数值型特征 类别型特征 时序型特征 SQL方法 SUM/AVG/MAX/MIN/COUNT SQL方法 CASE WHEN / DECODE / JOIN SQL方法 LAG/LEAD/ROW_NUMBER 信用评分特征工程要点 数值型:注意长尾分布,需做对数变换或分箱 类别型:稀疏类别合并,WOE编码是信用评分首选 时序型:严格使用时间窗口截断,防止未来信息泄露

4.3 特征质量评估标准

在信用评分项目中,特征数量可能从几十个到上千个不等。如何评估一个特征的好坏?以下五个维度是业界通用的评估标准:

评估维度 定义 信用评分中的量化指标 SQL可计算性
预测能力 特征区分好坏客户的能力 IV(信息值)、卡方检验、AUC 部分可算(IV需分箱后计算)
稳定性 特征分布随时间变化的程度 PSI(群体稳定性指标) 可算(按月/按周计算分布差异)
覆盖率 特征非空值的比例 缺失率 = 缺失数 / 总样本数 可算(COUNT(*) / COUNT(feature))
单调性 特征值与坏账率之间是否存在单调关系 分箱后坏账率单调递增/递减 可算(分箱后计算每箱坏账率)
可解释性 特征的业务含义是否清晰 业务专家评审、逻辑回归系数符号 不可直接计算(需人工判断)

4.3.1 预测能力——IV值

IV(Information Value,信息值)是信用评分中最常用的特征筛选指标。IV值越高,说明特征区分好坏客户的能力越强。经验阈值如下:

  • IV < 0.02:无预测能力,建议剔除
  • 0.02 ≤ IV < 0.1:弱预测能力
  • 0.1 ≤ IV < 0.3:中等预测能力
  • IV ≥ 0.3:强预测能力(需注意过拟合风险)
SQL计算IV值示例:IV值需要在特征分箱后计算,核心SQL逻辑如下:
WITH bin_stats AS (
  SELECT
    bin,
    SUM(CASE WHEN target = 1 THEN 1 ELSE 0 END) AS bad_cnt,
    SUM(CASE WHEN target = 0 THEN 1 ELSE 0 END) AS good_cnt
  FROM feature_table
  GROUP BY bin
),
total_stats AS (
  SELECT
    SUM(bad_cnt) AS total_bad,
    SUM(good_cnt) AS total_good
  FROM bin_stats
)
SELECT
  SUM((bad_cnt/total_bad - good_cnt/total_good) *
      LN((bad_cnt/total_bad) / (good_cnt/total_good))) AS iv_value
FROM bin_stats, total_stats;

4.3.2 稳定性——PSI值

PSI(Population Stability Index,群体稳定性指标)衡量特征在训练集和验证集(或不同时间窗口)之间的分布差异。PSI < 0.1 表示特征稳定,0.1-0.25 表示轻度偏移,> 0.25 表示严重偏移,需要重新训练或剔除特征。

4.3.3 覆盖率与缺失值处理

在信用评分中,缺失率超过50%的特征通常会被直接剔除,除非该缺失本身具有业务含义(如“从未申请过贷款”本身就是一种行为模式)。SQL中可以通过SUM(CASE WHEN feature IS NULL THEN 1 ELSE 0 END) / COUNT(*)快速计算缺失率。

4.3.4 单调性检验

对于逻辑回归评分卡,特征与坏账率之间应保持单调关系。如果某个特征的分箱坏账率呈现“先升后降”或“先降后升”的非单调模式,通常需要重新分箱或进行变换。SQL中可以通过分箱后按箱号排序,检查坏账率是否单调递增或递减。

特征质量评估流程 候选特征池 步骤1:覆盖率筛选 步骤2:预测能力评估(IV) 步骤3:稳定性检验(PSI) 最终特征子集
最佳实践:在信用评分项目中,建议按照“覆盖率 → 预测能力 → 稳定性 → 单调性”的顺序进行特征筛选。先剔除缺失率高的特征,再保留IV值大于0.02的特征,然后检查PSI是否小于0.1,最后对保留的特征进行单调性检验和分箱优化。这个流程可以在SQL中通过自动化脚本实现,大幅提升特征工程效率。