4. 禁止特征清单:识别并剔除违规特征

在催收触达合规建模中,特征选择的第一道防线是建立禁止特征清单。监管机构(如银保监会、工信部、网信办)及《个人信息保护法》明确禁止使用涉及个人隐私、社交关系、第三方黑产等敏感数据。本章将系统梳理三类核心违规特征,并提供识别与剔除的实战方法。

合规红线:任何包含通讯录关系、社交行为轨迹、非授权第三方黑产数据的特征,无论模型效果多好,都必须从训练集中彻底删除。违规使用将面临最高5000万元或上一年度营业额5%的罚款,并可能承担刑事责任。

4.1 禁止特征三大类别

根据监管指引与行业实践,禁止特征可归纳为以下三类,每类均包含具体特征示例与识别规则:

类别 典型特征示例 识别规则 剔除优先级
通讯录关系 联系人数量、高频联系人标签、亲属关系推断、通话时长分布 特征名含“contact”“address_book”“relation”“call_log” 最高
社交行为 朋友圈互动频率、群聊活跃度、位置签到、好友亲密度评分 特征名含“social”“friend”“moment”“checkin”“group” 高
第三方黑产数据 非授权爬虫数据、暗网交易记录、未脱敏设备指纹、非法共享黑名单 数据来源非持牌征信机构、无用户授权协议 最高
实战建议:在特征工程阶段,建议建立“特征来源白名单”机制——只有经过合规审核、有明确授权协议的数据源才能进入候选特征池。禁止特征清单应作为自动化特征筛选管线的第一道过滤器。

4.2 识别违规特征的自动化方法

人工审查在大规模特征工程中效率低下,推荐采用以下自动化识别流程:

  1. 关键词匹配:构建敏感词库(如“contact”“relation”“social”“friend”“blacklist”),对特征名称、描述、来源字段进行正则匹配。
  2. 数据溯源审计:检查每个特征的原始数据表、采集接口、授权协议ID,标记无授权或授权过期的特征。
  3. 分布异常检测:对数值型特征进行分布检验,若特征值分布与合法数据源明显偏离(如出现大量整数ID、时间戳模式),则可能来自非法爬取。
  4. 关联规则挖掘:使用Apriori或FP-Growth算法,发现特征之间的强关联规则,若某特征与已知禁止特征高度相关(置信度>0.9),则标记为疑似违规。
代码示例:基于关键词的禁止特征过滤器
import re

# 敏感词库(可扩展)
SENSITIVE_PATTERNS = [
    r'contact', r'address_book', r'relation', r'call_log',
    r'social', r'friend', r'moment', r'checkin', r'group',
    r'blacklist', r'crawl', r'device_fingerprint', r'third_party'
]

def filter_forbidden_features(feature_list):
    forbidden = []
    allowed = []
    for feat in feature_list:
        # 检查特征名
        if any(re.search(p, feat['name'], re.IGNORECASE) for p in SENSITIVE_PATTERNS):
            forbidden.append(feat)
            continue
        # 检查特征描述
        if any(re.search(p, feat.get('description', ''), re.IGNORECASE) for p in SENSITIVE_PATTERNS):
            forbidden.append(feat)
            continue
        # 检查数据来源
        source = feat.get('source', '')
        if source not in ['authorized_credit_bureau', 'user_consent_db', 'internal_risk_log']:
            forbidden.append(feat)
            continue
        allowed.append(feat)
    return allowed, forbidden

# 使用示例
features = [
    {'name': 'contact_count', 'description': '通讯录联系人数量', 'source': 'app_permission'},
    {'name': 'income_level', 'description': '用户收入等级', 'source': 'authorized_credit_bureau'},
    {'name': 'social_activity_score', 'description': '社交活跃度评分', 'source': 'third_party_crawler'}
]
allowed, forbidden = filter_forbidden_features(features)
print(f"允许特征: {[f['name'] for f in allowed]}")
print(f"禁止特征: {[f['name'] for f in forbidden]}")

4.3 禁止特征剔除流程与SVG架构

下图展示了从原始特征池到合规特征集的完整剔除流程,包含三个核心阶段:特征扫描、合规判定、隔离与审计。

禁止特征剔除流程架构 特征扫描 关键词匹配 数据溯源审计 分布异常检测 关联规则挖掘 合规判定 是否在禁止清单? 数据授权是否有效? 是否涉及第三方黑产? 是否与禁止特征强关联? 隔离与审计 移入隔离特征库 记录剔除原因 生成合规审计日志 定期复查 输出:合规特征集 + 禁止特征审计报告 说明: 禁止特征剔除后,需保留完整的剔除日志(特征名、剔除原因、判定时间、审核人), 以备监管检查。隔离特征库中的特征不可用于模型训练,但可用于合规审计回溯。

4.4 常见违规特征案例与避坑指南

以下列举实际项目中常见的违规特征案例,帮助识别隐蔽性较强的禁止特征:

案例编号 特征名称 看似合法 实际违规原因 处理方式
1 top10_contact_freq 仅统计通话频率 特征构建依赖通讯录关系,属于间接推断 立即剔除
2 social_network_density 使用匿名化社交图谱 社交行为数据未经用户单独授权 剔除并检查数据来源
3 device_fingerprint_score 用于反欺诈 数据来自非持牌第三方,无授权协议 剔除并替换为合规设备指纹
4 friend_credit_avg 聚合统计不涉及个体 涉及好友关系链,违反《个人信息保护法》 立即剔除
避坑提示:不要试图通过“特征变换”绕过禁止清单。例如,将通讯录联系人数量除以100取对数,或使用PCA降维后保留主成分,这些操作仍属于违规特征衍生。监管审查的是数据来源与授权,而非特征形态。

4.5 合规特征集构建与SVG对比

下图对比了原始特征池与合规特征集的构成差异,直观展示剔除禁止特征后的特征空间变化:

原始特征池 vs 合规特征集 原始特征池(100个) 合法特征(60个) 通讯录关系(15个) 社交行为(12个) 第三方黑产(8个) 其他违规(5个) 包含40个违规特征(红色/橙色) 剔除 合规特征集(60个) 合法特征(60个) 无违规特征 全部通过合规审计 可用于模型训练 特征数量减少40%,合规风险降为0 合规特征集虽然规模缩小,但避免了监管处罚风险,且模型可解释性更强、泛化能力更稳定。
关键指标:合规特征集构建完成后,建议进行以下验证:
  • 特征数量对比:剔除比例应≥30%(视原始数据质量而定)
  • 合规审计通过率:100%特征均有明确授权来源
  • 模型性能衰减:剔除禁止特征后,模型AUC下降应控制在0.05以内,否则说明模型过度依赖违规特征

4.6 本章小结