风控领域特征工程

news2024/11/16 6:36:37

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

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

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

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

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

特征工程的意义

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

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

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

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

特征挖掘流程

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

  • 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技术)

总结

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2086066.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

构建高效公正的会议抽奖系统:提升活动互动性与参与度

在各类会议、庆典及企业活动中,抽奖环节往往是吸引参与者兴趣、增强活动氛围的关键一环。一个高效、公正且充满趣味性的会议抽奖系统,不仅能够极大地提升活动的互动性与参与度,还能加深品牌印象,促进与会者之间的交流与合作。本文…

数据结构线性表(1)顺序表

🌏个人博客主页:意疏-CSDN博客 希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 关注 收藏支持一下笔者吧~ 阅读指南: 开篇说明线性表的定义线性表的顺序存储结构(顺序表…

全程云OA UploadEditorFile接口存在任意文件上传漏洞 附POC

@[toc] 全程云OA UploadEditorFile接口存在任意文件上传漏洞 附POC 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学…

中标麒麟v10 sp3 部署cuda cudnn tensorrt deepstream

1.驱动安装 ./NVIDIA-Linux-x86_64-530.41.03.run 更改,不检测 ./NVIDIA-Linux-x86_64-530.41.03.run -no-x-check 禁用nouveau 创建文件/etc/modprobe.d/blacklist-nouveau.conf,添加如下文本: blacklist nouveau options nouveau modeset=0 重新生成initramfs $ su…

压测工具大比武!谁是市场主流?

阿里云PTS 性能测试PTS(Performance Testing Service)是阿里云一款商业化的性能测试工具。支持按需发起压测任务,可支持百万并发、千万TPS流量发起能力,100%兼容JMeter。PTS支持的场景编排、API调试、流量定制、流量录制等功能&am…

【HarmonyOS】模仿个人中心头像图片,调用系统相机拍照,从系统相册选择图片和圆形裁剪显示 (一)

【HarmonyOS】头像图片,调用系统相机拍照,从系统相册选择图片和圆形裁剪显示 (一) Demo效果展示: 方案思路: 使用photoAccessHelper实现系统相册选择图片的功能。此API可在无需用户授权的情况下&#xff…

【Material-UI】Slider中的 Continuous Sliders 与 Sizes 详解

文章目录 一、Slider 组件概述1. 组件介绍2. 使用场景 二、Continuous Sliders 的详解1. Continuous Sliders 的作用2. Continuous Sliders 的基本用法3. 禁用状态下的 Continuous Sliders4. Continuous Sliders 的实际应用5. Continuous Sliders 的优缺点 三、Slider 的尺寸控…

vue 组件拖拽

需求&#xff1a;将一个组件拖动至页面任何位置&#xff0c;记录并回显 要拖动的组件&#xff1a; <divclass"left left_module_text"draggable"true"dragstart"dragstart($event)"dragend.stop"dragend1($event, { left: 0, top: 0 },…

macos 自定义用户目录方法, /Users/xxx 用户文件存储路径自定义方法

在macos中,我们的用户数据全部都存储在了 /Users/xxx 文件夹下, 而这个文件夹默认是和我们的macos系统文件存放在了同一个磁盘卷宗(分区)里面的, 这个就给我们在遭遇系统崩溃或者其他情况重装系统时带来了极大的不便, 如果是格式化后全新安装 数据全部丢失,如果是覆盖安装同…

刘文超行测笔记

一、判断推理 1.位置规律 2.样式规律 特征&#xff1a;元素组成相似 &#xff08;1&#xff09;加减同异 &#xff08;2&#xff09;黑白运算 1.特征&#xff1a;图形轮廓和分隔区域相同&#xff0c;内部的颜色不同 2.方法&#xff1a;相同位置运算 区分&#xff1a; 黑块…

2.3 阿里巴巴-背包问题

题目&#xff1a; 代码&#xff1a; #include <iostream> using namespace std; #include<algorithm> #include<stdlib.h>#define M 1000005//结构体&#xff0c;重量&#xff0c;价值&#xff0c;价重比 struct three {double w;double v;double p; }s[M];…

UE【材质编辑】Shader模板

【UE 4.27.2】 在UE中双击材质球会进入材质编辑界面。PBR的材质参数呈现为材质蓝图的各个节点&#xff0c;提供数据源&#xff0c;传递进材质。最后材质对其进行组织&#xff0c;呈现为VS&#xff0c;PS等着色器代码&#xff0c;基本流程&#xff1a; 本文会刨析在UE4.27.2中材…

Postman注册使用

文章目录 介绍下载安装官网&#xff1a;[Postman API Platform | Sign Up for Free](https://www.postman.com/) 使用过程 介绍 Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。 Postman原是Chrome浏览器的插件&#xff0c;可以模拟浏览器向后端服务器发起…

「Python程序设计」基本数据类型:列表(数组)

​列表是python程序设计中的一个基本的&#xff0c;也是重要的数据结构。我们可以把列表数据结构&#xff0c;理解为其它编程语言中的数组。 定义和创建列表 列表中的数据元素的索引&#xff0c;和数组基本一致&#xff0c;第一个元素的索引&#xff0c;或者是下标为0&#x…

CSS-径向渐变【看这一篇就够了!!!】

目录 线性渐变 未设置角度&#xff0c;默认从上向下渐变 关键字指定渐变方向 用度数来指定渐变方向 多个颜色值&#xff0c;并且可以用百分数定义它出现的位置 自定义转换中点 浏览器私有前缀 渐变色工具 径向渐变 简单的径向渐变 设置颜色节点出现的位置 设置径向渐…

(ECCV-2024)SwiftBrush v2:让你的一步扩散模型比它的老师更好

SwiftBrush v2&#xff1a;让你的一步扩散模型比它的老师更好 Paper Title&#xff1a;SwiftBrush v2: Make Your One-step Diffusion Model Better Than Its Teacher paper是VinAI Research发表在ECCV 2024的工作 paper地址 Code地址 Abstract. 在本文中&#xff0c;我们旨在…

Datawhale x李宏毅苹果书入门 AI夏令营 task03学习笔记

实践方法论 训练模型的基本步骤&#xff1a;&#xff08;如下图所示&#xff09; 用训练集训练模型&#xff0c;&#xff08;最终得出来最优的参数集&#xff09;将最优参数集带入模型中&#xff0c;用测试集测试模型&#xff08;人话&#xff1a;将最优参数集带入原来函数中…

观测云「可观测性解决方案」亮相 828 B2B 企业节

今年&#xff0c;随着第三届828 B2B企业节与中国国际大数据产业博览会的同步盛大开幕&#xff0c;我们迎来了企业发展和技术创新的崭新篇章。作为国内可观测性领域的领军企业&#xff0c;观测云不断深化在监控观测技术与能力上的探索&#xff0c;致力于为全球用户提供全面而统一…

如何用网络分析仪测试软件测试天线?

随着射频技术的发展&#xff0c;对于天线性能的精确测试需求日益增长&#xff0c;矢量网络分析仪因此成为测试环节中不可或缺的工具之一。今天天宇微纳为大家介绍网络分析仪测试天线S参数的方法与流程。 网络分析仪测试天线的方法 S参数是衡量和评估天线性能和通信质量的重要指…

springboot接收时间类型参数的方式

参数直接跟在url上面用DateTimeFormat接收 参数写在实体类中 用JsonFormat接收 注意&#xff1a; pattern 中的表达式要和接受的数据类型格式一致。不然会报错。例如表达式是 yyyy-MM-dd 就只能匹配LocalDate ,不能用 LocalDateTime去接收。即使LocalDateTime是更细化的时间类型…