【40分钟速成智能风控16】模型训练

目录

​编辑

模型训练

逻辑回归

XGBoost

Wide&Deep

模型部署


模型训练

确定了最终的入模变量,终于进入模型训练的环节了,在这个环节我们需要选定模型结构,调节模型超参数,以及评估模型的效果。为了得到一个兼具区分度和稳定性的模型,我们需要将样本集分为三部分:训练集(training set)、验证集(validation set)和测试集(testing set)。其中,训练集是用来训练模型的参数;验证集是为了调节模型的超参数,进而得到一组超参数使模型在训练集和验证集上都有稳定的预测效果,不会过拟合或者欠拟合;而测试集通常会选取与训练集时间跨度较大的时间外(Out-Of-Time,O0T)样本集,目的是让测试模型效果不会受到时间因素的影响。通常为了充分验证模型的稳定性,会选取多个测试集来测试。划分完训练集、验证集和测试集,下面我们可以开始模型调参的工作,超参数调得好,般可以使模型在默认超参数的KS上再提升2到3个点。对于不同的模型结构,需要调节的超参数会有些差异,下面介绍最常用的结构以及对应的重要超参数。

逻辑回归

首先是逻辑回归模型,该模型中超参数并不多,需要调节的超参数就是正则化项(penalty)和正则化项系数的倒数(C)。其中,penalty可以选择LI和L2两种,两者都可以避免模型的过拟合,区别在于L1会使特征系数归零,而L2会保留所有的特征;C代表了正则化系数的倒数,C越小则正则化越强,模型也越稳定。对于这种超参数不多的情况,可以利用网格搜索(GridSearch)方法,遍历出不同超参数下验证集上的模型效果,选取验证集上效果最优的一组超参数训练模型,并在测试集上测试。

XGBoost

XGBoost是目前各家公司运用最多的一类模型结构,超参数相比逻辑回归多了一些,因此需要建模人员对各个超参数的含义和作用相对熟悉,这样才能更高效地进行调参工作。XGBoost模型中比较重要的超参数有:树的最大深度(max_depth)、叶子节点最小权重和(min_child weight)、节点最小分裂损失(gamma)、样本随机比例(subsample)、特征随机比例(colsample_bytree)、L1正则项权重(reg_alpha)、L2 正则项权重(reg_lambda)、学习速率(learning_rate)、树的棵数(n_estimators)。利用GridSearch方法调参通常会按照超参数对于模型的影响进行分步搜索:首先是max_dcpth和 min child weight,这两个直接决定了树的深度;其次是gamma,gamma 越大说明树的分裂越保守;然后是subsample和colsample_bytree,对于样本和特征的随机采样,可以保证树模型的泛化能力;再往后是两个正则化权重reg_alpha 和 reg.lambda,与逻辑回归中的超参数C类似,值越大则正则化强度越高;最后是learning rate和n estimators,这两个超参数直接决定了模型的学习速度和精度,因此放在最后来调节。除去这些树结构中本身的超参数之外,在XGBoost训练的时候还可以加人早停(early_stopping_rounds)的条件,如果验证集上的损失连续多轮没有下降,则模型训练过程被截断,输出最后一轮模型训练的结果。除去传统的GridSearch方法之外,还有一种贝叶斯优化(BayesianOptimization)方法,也可以用作模型调参。相比于GridSearch,贝叶斯优化在每次选取超参数的时候都会考虑上一次超参数的信息,这样能够大大减少模型迭代次数,提高调参效率,很适合XGBoost 这种超参数比较多的调参场景。

Wide&Deep

深度学习框架的调参一直是令建模人员头疼的问题,业内甚至戏称为“炼丹”。“炼丹之术”见仁见智,对于Wide&Deep这类深度学习模型,并没有一套最优的调参方式,不过以下这些超参数都是值得尝试的。首先,特征在进入网络前,有一个重要的步骤是标准化处理,原因有两个:一是因为深度学习模型是多个广义线性模型交织在一起,如果特征的量纲不统一,数值过大的特征会影响其他特征的贡献程度(WOE+LR模型中没有要求必须标准化处理,是因为WOE映射已经去量纲化);二是因为数值过大的特征还会影响损失函数的收敛速度,标准化处理后可以显著提升网络的计算效率。

深度学习模型中比较重要的超参数有学习速率(learning rate)、网络层数(layer)、节点个数(unit)、激活函数(activation)、批量训练样本个数(batch_size)、正则化项系数(regularizer)、优化器(optimizer)、训练次数(epoch)。其中比较难懂的是optimizer、batchsize和epoch,这里单独再介绍下。optimizer 是指神经网络模型中所运用的各类梯度下降的计算方式,常见的有SGD、RMSprop、Adam等,这些优化器都是在传统SGD的基础上,围绕动量(momentum)和学习率衰减因子(decay)展开,目的是平衡梯度下降的效率和精度,需要根据实际数据来选择和尝试不同的optimizer。batch_size和epoch可以看作一组参数,它们共同影响着网络权重的更新频率:固定epoch的情况下,batch_size 越大则跑完一次epoch的迭代次数越少,但是会导致网络权重更新缓慢;固定batch_size的情况下,epoch过多则会导致网络权重更新过于频繁,最终产生过拟合的问题。因此需要通过实验选取比较合适的batch_size和epoch组合。

除了调节超参数,深度学习模型中还有两种常见的避免过拟合的处理方式,分别是BatchNormalization 和Dropout。BatchNormalization是指在神经网络模型中,在上一个隐藏层的输出和下一个隐藏层的输入之间增加标准化处理,目的是提高网络结构的泛化能力,减少由于每个隐藏层输人的样本分布偏差而导致模型效果衰减的问题;Dropout则是在模型训练过程中,随机删除一些神经元,通过引人随机噪声的方式,提高网络结构的鲁棒性。对于比较复杂的深度学习模型,可以考虑加入这两层结构。

通常在一个建模项目中,建模人员都会尝试2、3种模型结构并调参,以简单模型为基线,再去评估复杂模型能够带来多少效果上的提升。风控模型的评估指标主要还是从准确性(AUC)、区分度(KS)和稳定性(PSI)三方面考虑,反欺诈楔型还会关注召回率(Recall)和精准率(Precision)。

模型部署

相比于传统评分卡,机器学习和深度学习模型的部署要复杂得多,需要专门的工程团队配合模型团队完成。在这个环节,建模人员通常需要提供两个文件,即特征工程脚本和训练好的模型。
特征工程脚本中包含数据清洗和特征加工的所有逻辑,目的是将数仓中的原始数据转化为最终入模的特征。对于模型文件,机器学习模型训练完可以保存为PMML文件,深度学习模型则通常保存为PB文件,这两种格式的优势是支持跨平台开发,方便工程团队的人员在Java环境中调用模型文件来实现计算的功能。

由于离线开发环境和线上生产环境的数据管道通常存在差异,模型部署过程中还有一个重要的工作就是数据验证,包括原始数据、模型特征和端到端的预测结果。对于公司内部的数据源,我们希望线上线下能够完全对齐;对于外部数据源和实时数据,我们允许一定范围内的误差。

print('要天天开心')

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#引用外部组件的常用方法

我们在开发程序过程中,时常会使用到第三方组件,比如一些通信、UI组件等。常用的引用方法有下面几种。 01 NuGet引用 NuGet是.NET的一个包管理平台,很多开源组件会通过NuGet进行管理和发布。比如我们常用的S7NetPlus等。 从NuGet中引用组件…

k8s高可用集群部署介绍 -- 理论

部署官网参考文档 负载均衡参考 官网两种部署模式拓扑图和介绍 介绍两种高可用模式 堆叠 拓扑图如下(图片来自k8s官网): 特点:将etcd数据库作为控制平台的一员,由于etcd的共识算法,所以集群最少为3个&…

访问者模式【行为模式C++】

1.概述 访问者模式是一种行为设计模式, 它能将算法与其所作用的对象隔离开来。 访问者模式主要解决的是数据与算法的耦合问题,尤其是在数据结构比较稳定,而算法多变的情况下。为了不污染数据本身,访问者会将多种算法独立归档&…

韩顺平 | 零基础快速学Python(16) 文件处理

文件 输入与输出 输入:数据从数据源(文件)到程序(内存); 输出:数据从程序(内存)到数据源(文件)。 #mermaid-svg-06PG6JZq4jJMV1oH {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-sv…

如何使用Docker部署Django项目?

第一步:创建Dockerfile文件 在django项目的根目录中创建一个名为Dockerfile的文件,并写入如下配置: # 使用 Python 3.12 作为基础镜像 FROM python:3.12# 设置工作目录 WORKDIR /app# 复制项目文件到工作目录 COPY . /app# 设置清华 pip 镜…

vue webpack打包配置生成的源映射文件不包含源代码内容、加密混淆压缩

前言:此案例使用的是vue-cli5 一、webpack源码泄露造成的安全问题 我们在打包后部署到服务器上时,能直接在webpack文件下看到我们项目源码,代码检测出来是不安全的。如下两种配置解决方案: 1、直接在项目的vue.config.js文件中加…

【深度学习】AI修图——DragGAN原理解析

1、前言 上一篇,我们讲述了StyleGAN2。这一篇,我们就来讲一个把StyleGAN2作为基底架构的DragGAN。DragGAN的作用主要是对图片进行编辑,说厉害点,可能和AI修图差不多。这篇论文比较新,发表自2023年 原论文&#xff1a…

【零基础学数据结构】链表

目录 1.链表的概念 ​编辑 2.链表的雏形 ​编辑 3.链表的组成 ​编辑 4.链表代码 4.1创建节点 4.2链表的打印 4.3链表的尾插 4.4链表的头插 4.5链表的尾删 4.6链表的头删 4.7链表的查找 4.8链表在指定位置之前插⼊数据 4.9链表在指定位置之后插⼊数据 4.9-1删除pos节点 4.9…

Python(11):网络编程

文章目录 一、一些基本概念二、软件的开发架构(c/s架构和b/s架构)三、OSI模型四、socket套接字编程1.socket编程过程2.python中的socket编程 一、一些基本概念 来了解一些网络的基本概念 名词解释IP(互联网协议地址)IP用来标识网…

基于Java+SpringBoot+vue+node.js的图书购物商城系统详细设计和实现

基于JavaSpringBootvuenode.js的图书购物商城系统详细设计和实现 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各…

OpenCV——SUSAN边缘检测

目录 一、SUSAN算法二、代码实现三、结果展示 OpenCV——SUSAN边缘检测由CSDN点云侠原创,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、SUSAN算法 Susan边缘检测是一种经典的边缘检测算,它由Susan Smith…

Spring Cloud+Uniapp 智慧工地云平台源码 智慧工地云平台AI视频分析应用

目录 AI应用与环境治理 设备管理与危大工程 塔吊安全监管 智慧工地APP端 智慧工地硬件设备 智慧工地主要功能模块 智慧工地可以通过以下几个方面为建筑行业赋能: 1.提高工程效率 2.提高工程安全性 3.提高工程质量 4.提高工程管理效率 绿色施工 质量管理…

面试算法-174-二叉树的层序遍历

题目 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 解 class Solut…

Kubernetes(k8s):深入理解k8s中的亲和性(Affinity)及其在集群调度中的应用

Kubernetes(k8s):深入理解k8s中的亲和性(Affinity)及其在集群调度中的应用 1、什么是亲和性?2、节点亲和性(Node Affinity)2.1 硬性节点亲和性规则(required)…

【Linux】进程的优先级环境变量

个人主页 : zxctscl 如有转载请先通知 文章目录 1. 前言2. 进程的优先级2.1 什么是优先级2.2 为什么要有优先级2.3 优先级的查看方式2.4 对优先级调整 3. 命令行参数4. 环境变量4.1 环境变量与配置文件4.1.1 环境变量初步介绍4.1.2 配置文件 4.2 更多环境变量4.3 整…

SpringBoot删除菜品模块开发(SpringMVC分割参数、事务管理、异常处理、批量删除)

需求分析与设计 一:产品原型 在菜品列表页面,每个菜品后面对应的操作分别为修改、删除、停售,可通过删除功能完成对菜品及相关的数据进行删除。 删除菜品原型: 业务规则: 可以一次删除一个菜品,也可以批…

【Zabbix】zabbix 软件监控

使用zabbix监控系统查看服务器状态以及网站流量指标,利用监控系统的数据去了解上线发布的结果,和网站的健康状态 利用一个优秀的监控软件,我们可以: ●通过一个友好的界面进行浏览整个网站所有的服务器状态 ●可以在 Web 前端方便的查看监控…

MongoDB 初识

1.介绍 什么是Mong MongoDB是一种开源的文档型数据库管理系统,它使用类似于JSON的BSON格式(Binary JSON)来存储数据。与传统关系型数据库不同,MongoDB不使用表和行的结构,而是采用集合(Collection&#x…

家庭网络防御系统搭建-虚拟机安装siem/securityonion网络连接问题汇总

由于我是在虚拟机中安装的security onion,在此过程中,遇到很多的网络访问不通的问题,通过该文章把网络连接问题做一下梳理。如果直接把securityonion 安装在物理机上,网络问题则会少很多。 NAT无法访问虚拟机 security onion虚拟…

从零搭建部署最新AI系统源码ChatGPT网站AI绘画系统,图文详细搭建部署教程文档,Suno-AI音乐生成大模型

一、系统前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧。已支持…