首页 > 其他分享 >风控领域特征工程

风控领域特征工程

时间:2024-08-30 10:55:36浏览次数:13  
标签:工程 特征 data 模型 风控 train pd 数据

在金融行业,风险控制(风控)是核心环节,它关乎资产安全、合规性以及机构的长期稳健发展。随着大数据时代的到来,金融机构面临着前所未有的数据量和复杂性。在这样的背景下,风控领域特征工程应运而生,成为连接原始数据与精准风险评估的桥梁。

特征工程,简而言之,是对数据的一种深度加工,它通过一系列技术手段,将原始数据转化为对风险预测有用的信息。这一过程不仅要求对数据进行清洗和转换,更要求深入理解业务逻辑,发掘数据背后的风险信号。

在风控领域,特征工程的核心目标是构建出能够准确反映个体或实体风险水平的特征集。这些特征集将作为风险评估模型的输入,帮助模型捕捉到细微的风险差异,从而实现对信贷违约、欺诈行为、市场波动等风险因素的精准预测。

有效的特征工程不仅能够提升模型的预测性能,还能够增强模型的泛化能力,使其在面对未知风险时仍能保持稳定的判断力。此外,良好的特征工程实践还能促进模型的解释性,为风控决策提供更加透明的依据。

随着技术的发展,特征工程的方法也在不断创新。从传统的统计方法到现代的机器学习技术,再到深度学习的应用,特征工程正变得越来越智能化、自动化。在这一过程中,我们不断探索如何更好地从数据中提取风险信息,如何更高效地构建特征,以及如何更精准地评估风险。

特征工程的意义

特征工程在风控领域至关重要,它涉及将原始数据转化为模型可用的格式,以及提升模型的预测能力。

  • 适配模型算法: 确保特征输入格式与所选算法兼容,进行必要的转换处理。

  • 适配分析维度:统一数据存储与分析所需的维度,如将交易级数据聚合至客户级。

  • 改善模型性能: 精选特征以增强模型对数据规律的捕捉能力,从而提升模型的准确性和泛化性。

特征挖掘流程

特征挖掘流程是一系列有序的步骤,旨在从原始数据中提取有价值的信息。

  • 1.样本选择和分析目标定义

    • 正向标签(优质用户)
    • 负向标签(高风险用户)
  • 2.确定检验样本

    • OOT(Out-of-Time测试)
    • OOS(Out-of-Sample测试)
  • 3.前期处理

    • 缺失值填充
    • 类别变量转换
    • 日期类型转换
  • 4.特征衍生

    • 领域知识衍生
    • 机器学习衍生
    • 暴力衍生
  • 5.特征效果评估

    • 区分能力评估
    • 稳定性评估
    • 解释性评估
  • 6.报告编写

    • 编制特征列表和效果说明材料,为模型开发和决策提供支持。

特征类型

类型举例处理方式注意点
连续型年龄、收入、额度、交易额数学变换: 对数、指数、平方根等
离散化分箱: 决策树、等频、等距
离群点干扰、分母为0的情况
类别型性别、学历、工作地独热编码(one hot encoder)
标签编码(labelencoder)
目标编码(target encoder)
概率平滑目标编码(ProbSmoothing target encoder)
归类后编码
类别型的变量不要当做连续
变量处理,例如身份证地区码
日期型出生年月、交易日期最近一次交易与当日时间差日期变量不可直接入模
序列型交易流水、埋点日志、文本、股票窗口计算:最近3个交易日的股价平均值,
序列编码:TextCnn、Rnn、word2vec、tfidf
注意穿越
图数据关系网络一度、二度关系,例如通讯录里面互存
图神经网络GNN
算力要求高
多模态视频、语音3D卷积神经网络(C3D)
时空注意力网络(STAN)
算力要求高

特征衍生方法

特征衍生是特征工程中的核心环节,它通过不同的方法从原始数据中生成有助于风险评估的新特征。

业务经验衍生

这种方法依赖于领域专家的知识和经验来识别与风险相关的特征。

  • 示例特征:
    • 额度使用率
    • 通讯录中手机号靓号数量
    • 最近一个月内半夜电话通话
  • 优点:
    • 具有强烈的解释性,因为这些特征直接关联业务逻辑。
    • 通常具有不错的稳定性,因为它们基于长期观察到的模式。
  • 缺点:
    • 受限于特征开发人员对业务的理解和知识。
    • 相比自动化方法,开发效率较低。

暴力计算衍生

这种方法通过算法自动生成大量可能的特征,不考虑业务逻辑。

  • 技术手段
    • 多项式生成(Polynomial Features)
    • 特征两两交叉(决策树)
  • 优点:
    • 能够广泛覆盖数据的不同方面。
    • 生成特征的效率高。
  • 缺点:
    • 可能导致维度灾难,需要进行特征筛选来降低维度。
    • 计算量大,对算力有一定要求。

算法衍生

这种方法使用机器学习算法来发现数据中的潜在模式,并据此生成特征。

  • 应用算法
    • 神经网络(如word2vec、CNN、RNN、BERT)
    • 聚类(如k-means)
    • 异常检测(如Isolation Forest)
  • 优点:
    • 能够捕捉数据中的潜在规律,提高模型的预测能力。
    • 生成特征的效率高,尤其适合处理大规模数据集。
  • 缺点:
    • 相比于基于业务经验的特征,算法衍生特征的解释性较弱。
    • 需要一定数量的样本来训练模型,以达到较好的效果。
    • 对计算资源的要求较高,特别是在使用深度学习算法时。

通过综合运用这些特征衍生方法,风控领域的特征工程能够更全面地挖掘数据潜力,为风险评估提供多维度的视角。

RFM处理:客户行为分析的关键

RFM(Recency, Frequency, Monetary)是一种广泛应用于营销和客户关系管理中的方法,用于分析客户行为并评估客户价值。RFM模型基于以下三个关键指标:

  • Recency (最近一次交易时间):客户最近一次交易距离当前时间的间隔,反映了客户的活跃度。
  • Frequency (交易频率):客户在特定时间窗口内的交易次数,体现了客户的交易频繁程度。
  • Monetary (交易金额):客户在特定时间窗口内的总交易金额,衡量了客户的交易规模。

以下是一个使用Python进行RFM分析的示例代码:

# 创建示例数据集
data = pd.DataFrame({
   "CustomerID": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
   "LastPurchaseDate": ['2023-01-01', '2023-02-15', '2023-03-20', 
                        '2023-04-10', '2023-05-05', '2023-06-12', 
                        '2023-07-08', '2023-08-22', '2023-09-30', '2023-10-15'],
   'Frequency': [2, 5, 1, 3, 2, 4, 1, 6, 3, 5],
   'Monetary': [100, 250, 50, 150, 120, 200, 40, 300, 180, 220]
})

# 转换日期列为日期类型
data['LastPurchaseDate'] = pd.to_datetime(data['LastPurchaseDate'])

# 计算Recency,即最近一次购买距今的天数
data['Recency'] = (dt.datetime.now() - data['LastPurchaseDate']).dt.days

# 展示RFM特征结果
print(data[['CustomerID', 'Recency', 'Frequency', 'Monetary']])

在这里插入图片描述

RFM模型是一种强大的工具,它可以帮助企业识别不同价值的客户群体,从而制定更加精准的营销策略和客户维护计划。

类别变量处理:哑变量化与标签编码

在机器学习中,类别变量通常需要转换成数值型数据以供模型处理。这可以通过哑变量化(One-Hot Encoding)或标签编码(Label Encoding)实现。

哑变量化(One-Hot Encoding)

哑变量化是一种将类别变量转换为一组二进制列的方法,其中一个列对应一个类别。

import pandas as pd
from sklearn.preprocessing import OneHotEncoder

# 示例数据
train_all_df = pd.DataFrame({
    "cust_gender": ["男", "男", "女", "女", "男"]
})

# 转换前的数据查看
print("转换前:", train_all_df["cust_gender"].head())

# 应用One-Hot编码
encoder = OneHotEncoder(sparse=False)
encoded_features = encoder.fit_transform(train_all_df[['cust_gender']])

# 将编码后的数据转换为DataFrame,并指定列的数据类型为整数
train_all_df2 = pd.DataFrame(encoded_features, columns=encoder.get_feature_names_out())
train_all_df2 = train_all_df2.astype(int)

# 转换后的数据查看
print("转换后:\n", train_all_df2.head())

在这里插入图片描述

标签编码(Label Encoder)

import pandas as pd
from sklearn.preprocessing import LabelEncoder

# 示例数据
train_all_df = pd.DataFrame({
    "cust_gender": ["男", "男", "女", "女", "男"]
})

# 转换前的数据查看
print("转换前:", train_all_df["cust_gender"].head())

# 初始化标签编码器并转换数据
label_encoder = LabelEncoder()
train_all_df['cust_gender_encoded'] = label_encoder.fit_transform(train_all_df['cust_gender'])

# 转换后的数据查看
print("转换后:", train_all_df[['cust_gender', 'cust_gender_encoded']].head())

在这里插入图片描述

模型衍生特征

聚类算法衍生特征

聚类算法可以将数据点分组,形成特征,这些特征可以揭示数据的内在结构。

from sklearn.cluster import KMeans
import pandas as pd

# 创建示例数据集
data = pd.DataFrame({
    'ID': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],
    "Feature1": [1, 2, 3, 8, 9, 10, 15, 16, 17],
    "Feature2": [5, 6, 7, 12, 13, 14, 1, 2, 3]
})

# 选择用于聚类的特征列
features = ['Feature1', 'Feature2']

# 使用K均值聚类算法
# 这里假设知道数据应该被分为3个聚类
kmeans = KMeans(n_clusters=3, random_state=42)

# 仅对特征列进行聚类,不包括 'ID' 列
data['Cluster'] = kmeans.fit_predict(data[features])

# 打印结果
print(data)

在这里插入图片描述

异常值衍生特征

异常值检测可以帮助识别数据中的异常模式,这些模式可能表明欺诈或错误。

from sklearn.ensemble import IsolationForest
import pandas as pd

# 创建示例数据集
data = pd.DataFrame({
    "Feature1": [1, 2, 3, 8, 9, 10, 15, 16, 17, 100],
    "Feature2": [5, 6, 7, 12, 13, 14, 1, 2, 3, 200]
})

# 使用 Isolation Forest 算法进行异常值检测
isolation_forest = IsolationForest(contamination=0.01, random_state=42)

# 训练模型
isolation_forest.fit(data)

# 预测数据点是否为异常值,-1 表示异常值,1 表示正常值
outlier_scores = isolation_forest.predict(data)

# 将预测结果添加到数据框中
data['Outlier_Score'] = outlier_scores

# 打印结果
print(data)

在这里插入图片描述

通过聚类算法和异常值检测,可以从数据中衍生出新的特征,这些特征对于理解数据的分布、识别模式和异常行为非常有用。这些衍生特征可以增强机器学习模型的特征集,从而提高模型的预测能力。

挖掘思路推荐

在风险控制和数据分析中,挖掘有用的特征对于理解客户行为和预测风险至关重要。以下是根据不同数据类型推荐的挖掘方向和处理方式或特征示例:

类型挖掘方向处理方式或者特征举例
人行报告收入负债、信贷使用情况、履约情况、借贷申请多头、工作稳定性、一致性比对、房贷、车贷- 履约情况:RFM
- 窗口计算:近3个月贷款申请机构数
- 一致性比对:人行学历和自填学历的一致性等
IP/地址/LBS映射区域、轨迹、一致性交叉比对、经济发达程度、黑名单- 结构化处理/标准化处理
- 分组
- 聚类
交易、还款类额度使用情况,变化、交易通过/拒绝次数- mean/max/std/diff/count
催收记录电话接通情况-失联、半失联、催收语音通话长短、配合度、还款承诺- 最近一次通话时长/接通数/接通率等
- 语音处理(ASR/TTS)
通讯录号码分类、备注信息-亲属关系人群、机构标签(有车族)、关系网络- 备注存在子女、父母、老师等
- 特殊关键字(赌博、特殊行业)
- 一度、二度关系,例如通讯录里面互存
applist正面:学习类、母婴类、汽车保养类等;
负面:金融借贷、特殊关键字、某类占比浓度、黑名单
- 正面:含特殊关键字(贷、借、金)
- 未安装常见app(支付宝、微信)
理点事件间隔、特殊事件点击、行为序列- 事件A与事件B的时间差、事件A发生次数
- 序列编码(N-gram技术)

总结

特征工程不仅提升了模型的预测能力和泛化能力,还增强了模型的解释性,为风险管理决策提供了更加透明的依据。随着技术的不断进步,特征工程的方法也在不断创新,从传统的统计方法到现代的机器学习技术,再到深度学习的应用,特征工程正变得越来越智能化、自动化。在这一过程中,不断探索如何更好地从数据中提取风险信息,如何更高效地构建特征,以及如何更精准地评估风险。

总结来说,特征工程是金融风控领域中不可或缺的一部分,它不仅需要技术专长,还需要对数据的深入理解和创新的思维。通过综合考虑数据特性、应用需求和领域知识,我们可以构建出能够显著提升模型性能的特征集。同时,确保特征的异常处理得当,并且具有高度的业务可解释性,是实现有效特征工程的重要保障。

标签:工程,特征,data,模型,风控,train,pd,数据
From: https://blog.csdn.net/uncle_ll/article/details/141677366

相关文章

  • 一个符合软件开发工程师认知的思考框架简单了解下
    软件开发需要使用到编程语言,不管是前端、后端或中间件。下面这段代码来自Spring框架的源码ClassNameGenerator#clean:privateStringclean(Stringname){//创建一个可变的字符串构建器,用于存储清理后的字符串StringBuilderclean=newStringBuilder();//用......
  • YOLOv8改进 | Neck篇 | YOLOv8引入BiFPN双向特征金字塔网络
    1.BiFPN介绍摘要:模型效率在计算机视觉中变得越来越重要。在本文中,我们系统地研究了用于目标检测的神经网络架构设计选择,并提出了几个提高效率的关键优化。首先,我们提出了一种加权双向特征金字塔网络(BiFPN),它可以轻松快速地进行多尺度特征融合;其次,我们提出了一种复合缩放方法......
  • 第三届电力工程与电气技术国际学术会议(ICPEET 2024) 2024 3rd International Conferenc
    文章目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题六、咨询一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz提交检索:EICompendex、IEEEXplore、Scopus大会时间:2024年9月13-15日大会地点:马来西亚·吉隆坡最终截稿:2024年9月9日(23:......
  • 逆向工程、Spring框架IOC、AOP学习
    系列文章目录第一章基础知识、数据类型学习第二章万年历项目第三章代码逻辑训练习题第四章方法、数组学习第五章图书管理系统项目第六章面向对象编程:封装、继承、多态学习第七章封装继承多态习题第八章常用类、包装类、异常处理机制学习第九章集合学习第......
  • C++基础面向对象特征
    目录学习目标:学习内容:1.C++对函数的扩充1.1函数重载(overload)1.1.1 概念1.1.2 要求1.2 函数的默认参数 1.3哑元 1.4内联函数        内联函数与带参宏的区别(重要)2.封装2.1面向对象的三大特质2.2C++中的类(class)2.3定义格式2.4 this指......
  • 数分基础(03-3)客户特征分析--Tableau
    文章目录客户特征分析-Tableau1.说明2.思路与步骤3.数据准备和导入3.1用EXCEL初步检查和处理数据3.1.1打开3.1.2初步检查(1)缺失值检查缺失值处理(2)格式化日期字段(3)其他字段数据类型(4)冗余数据检查(5)其他3.2导入Tableau4.数据探索和准备分析例如创建基本的客户......
  • 【同济大学机械与能源工程学院和卡尔斯鲁厄理工学院生产技术学院联合主办 | EI核心,Sco
    重要信息大会网站:https://ais.cn/u/umyqQn【投稿参会】截稿时间:以官网信息为准2024年10月30-11月1日,中国上海论文出版:征稿主题:新能源汽车制造、机器人集群制造、软件定义制造等多个可持续制造技术领域!组织单位......
  • 风控系统之事件溯源,决策流程记录与版本控制
    个人博客:无奈何杨(wnhyang)个人语雀:wnhyang共享语雀:在线知识共享Github:wnhyang-Overview背景一天,小明在风控管理台查看事件数据时,发现一笔决策结果为“拒绝”❌的交易事件,小明点开事件详情发现其触发了一条“24小时内向不同陌生账户转账超过30w”的规则,规则设置的处置方式是......
  • 优秀的网络安全工程师应该有哪些能力?零基础入门到精通,收藏这一篇就够了
    网络安全工程师是一个各行各业都需要的职业,工作内容属性决定了它不会只在某一方面专精,需要掌握网络维护、设计、部署、运维、网络安全等技能。目前稍有经验的薪资在10K-30K之间,全国的网络安全工程师还处于一个供不应求的状态,因此非常建议大家尝试学习一下咱们的网络安全工程......
  • 大模型提示词工程技术1-《大模型提示词工程技术》创作与前沿章节介绍
    大模型提示词工程技术1-《大模型提示词工程技术》创作与前沿章节介绍,《大模型提示词工程技术》的作者:微学AI,这是一本专注于提升人工智能大模型性能的著作,它深入浅出地讲解了如何通过优化输入提示词来引导大模型生成高质量、准确的输出。书中不仅涵盖了提示词工程的基本概念......