大数据时代的风控体系必有模型部分的参与,用策略贯穿整个风控体系,以数据为驱动,模型一定是标配内容。于是在模型的建设上,如何精细化地输出一套有效的模型,就是在精细化管理上非常重要的一个差异点。不管传统的逻辑回归也好,还是现在的机器学习也罢,总需要进行的就是模型的调参。

关于调参的内容,在知识星球的社区中,我们也跟大家分享过相关的内容,详情如下:

在风控建模的流程中,模型调参是非常重要的一步,我们通过调整算法的参数可以达到更好的模型效果。在调参过程中需要建模人员对算法和数据的理解,细致的分析能力,以及选择合适的调参策略。下面我们基于自身建模的经验,介绍下风控建模中调参的实际应用方法。
调参前需要了解的内容
在讲具体的方法前,先抛出下面几个问题:
1)参数是什么?是调整哪些参数?
2)调参的目标是什么?每种参数对目标有什么影响?
3)调参的流程大概是怎样的?
4)在调参中需要注意哪些地方?参数在机器学习指的是算法的"超参数",决定了模型结构/框架及算法行为,举个例子,决策树中的"最大树深度"就是一个超参数,它决定了树在生长过程中的层数,会影响到最终模型的预测结果。每种算法的参数我们需要去了解它的含义,取值范围,对模型性能的影响等,才能知道怎么去调整。
另外算法中的参数可能很多,但并非所有的参数都同等重要,应该根据目标选择重要的参数来调整。调参的目标,或者说参数对模型效果有什么影响,有以下几点:
1)模型分的分布,根据业务sens,我们希望调参后模型分呈近似的正态分布
2)模型分的最大KS,KS反映了模型的区隔能力,我们希望调参能使KS最大化
3)模型分的Lift排序性,在整体或者尾段,我们希望调参后模型有良好的排序能力
一.调参的流程大致分为以下几步
1)确定使用的算法和调参目标
2)建立baseline模型,baseline类似实验中的对照组,后面调参后的模型就是改进版本,来打败baseline版本,baseline中的模型参数需要按经验来设置
3)确定要调整哪些参数,选择合适的调参策略
4)记录每轮调参的结果,最好能可视化的呈现和分析
5)比较每组参数的训练结果,选择最好的一组参数来跟baseline版本做对比
调参最需要注意的地方在于时间成本。数据规模的大小,参数组合的数量,参数的取值都会影响到调参训练的时间。风控建模的样本一般就几万到十几万,属于小规模样本量,但特征可能有几百维甚至几千维,数据规模越大,训练时间越长,大规模数据集一定要考虑调参耗费的时间。另外我们不可能穷尽所有的参数组合来达到全局最优解,要铭记参数只有更好,没有最好,参数组合数量和取值范围应控制在合理的范围内。
总的来说,我们需要平衡模型的效果和调参耗费的时间成本。

二.风控模型常用算法和主要的参数介绍
风控模型常用的算法有逻辑回归(LR),随机森林,xgboost,lightgbm等,其中LR属于线性回归,剩下的都属于集成算法。LR的参数很少,比较重要的一个参数在sklearn中叫"正则化系数"(C),这个参数值越小,正则化强度越大,即防止过拟合的程度更大,但经过我们的实际验证,这个参数对模型效果影响甚微,所以用LR训练时其实不用调参,用算法给的默认参数即可。相比之下集成算法的参数众多,这里我们挑出了主要的一些参数,介绍下参数的含义,对模型性能的影响和常见的取值范围(sklearn中)。并且将参数分为了性能类,效率类,附加类三种。
1.随机森林
随机森林是bagging算法的代表,使用了CART树作为弱分类器,将多个不同的决策树进行组合,利用这种组合来降低单棵决策树的可能带来的片面性和判断不准确性。随机森林一般调整n_estimators,max_depth,max_features,min_samples_split,min_samples_leaf这几个参数。

2.XGBOOST
xgboost是一种梯度提升的算法,用来解决分类和回归问题。它对GBDT进行了一系列优化,比如损失函数进行了二阶泰勒展开、目标函数加入正则项、特征粒度上支持并行计算和默认缺失值处理等。xgboost一般调整n_estimators,learning_rate,max_depth,min_child_weight,subsample,colsample_bytree这几个参数。

3.Lightgbm
lightgbm跟xgboost类似,也是一种梯度提升的算法,它相比xgboost的改进在于,训练速度和精度上的优化,以及可以处理类别型特征。lightgbm的很多参数和xgboost是一样的,主要对n_estimators,learning_rate,num_leaves,min_child_sample,subsample,colsample_bytree这几个进行调整。

当然模调参中的相关细节,有兴趣的童鞋可继续关注:

~原创文章

来啦|深度讲解风控模型中的参数调优相关推荐

  1. ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(二)

    ML之XGBoost:XGBoost参数调优的优秀外文翻译-<XGBoost中的参数调优完整指南(带python中的代码)>(二) 目录 2. xgboost参数/XGBoost Para ...

  2. ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(四)

    ML之XGBoost:XGBoost参数调优的优秀外文翻译-<XGBoost中的参数调优完整指南(带python中的代码)>(四) 目录 Step 3: Tune gamma步骤3:伽马微 ...

  3. ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(三)

    ML之XGBoost:XGBoost参数调优的优秀外文翻译-<XGBoost中的参数调优完整指南(带python中的代码)>(三) 目录 3. 参数微调案例/Parameter Tunin ...

  4. ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(一)

    ML之XGBoost:XGBoost参数调优的优秀外文翻译-<XGBoost中的参数调优完整指南(带python中的代码)>(一) 目录 概述/Overview 介绍/Introducti ...

  5. Python的数据分析中超参数调优方法:网格搜索

    [小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python的数据分析中 超参数调优方法:网格搜索 ● 选择题 以下说 ...

  6. 【Java虚拟机】Java虚拟机深度讲解、VisualVM工具、JVM调优

    从控制台看Java版本 HotSpot 它是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机. 最初并非由Sun公司开发,而是由一家名为"Longview ...

  7. java虚拟机调优_Java虚拟机中JVM参数调优及其有用的命令

    3.1参数及调优 1.-XX:-HeapDumpOnOutOfMemoryError:当首次遭遇内存溢出时Dump出此时的堆内存. 2.-XX:HeapDumpPath=./java_pid.hpro ...

  8. Keras Tuner模型自动超参数调优

    Keras Tuner安装 pip install keras-tuner from tensorflow.keras import layers from tensorflow import ker ...

  9. 量化策略开发中的参数调优

    量化策略研发时,进行参数调优也是很重要的一步 以下例子来看 这是一个使用ATR止损的策略 20日一次调仓,000016(上证50),卖出价格低于close-3ATR的标的 (为了过滤手续费的影响,将手 ...

最新文章

  1. Java架构-面试前必须知道的MySQL命令【explain】
  2. Google Deepmind大神David Silver带你认识强化学习
  3. java 中的override overload 比较
  4. Qt持久性对象进行序列化
  5. Executors中的几种线程调用方式
  6. 6 - VC Bound (P[BAD]的真正上限)
  7. 电子计算机第一代到第四代,从第一代电子计算机到第四代计算机的体系结构都是由运算器、控制器、存储器、输入设备和输出设备组成的,称为( )体系结构。...
  8. 没有文化可以学php吗,宋威龙深夜发文感慨,却被吐槽文化低,学历真的重要吗?...
  9. HDU 4475 HDOJ Downward paths
  10. LinkedList的源码分析(基于jdk1.8)
  11. 【干货】常用的14个获取数据的网站。
  12. 软件的开发模型之瀑布型和快速原型
  13. 分类模型中准确率、敏感度、特异度的理解
  14. python11.12
  15. 计算天数 python
  16. java ftp上传文件 linux_linux下用java实现ftp上传、下载文件
  17. RandomAccess接口的使用
  18. 家庭宽带相关知识及工具
  19. 【深入UCSC Genome Brower】他山之石
  20. Linux云服务-Mysql卸载篇

热门文章

  1. java saxon,如何在Java中将Saxon设置为Xslt处理器?
  2. 服务器2012r2系统安装管理员,尽管受委派的管理员必须启用 Windows Server 2012 R2 中的更改权限设置 Acl cmdlet 无法正常工作...
  3. AWE2019:AI赋能 智慧生活体验全面升级
  4. 一节课让你彻底搞懂python里面试最常问问题之一深浅复制
  5. 修改数据库表编码依然报Incorrect string value: '\xE5\xAE\x89\xE5\xBE\xBD问题的解决
  6. “暗云Ⅲ”僵尸网络来袭 360全网查杀
  7. 量化基金投资之CTA策略简介
  8. HDU5411CRB and Puzzle(矩阵快速幂)
  9. 今日学习在线编程题:数字游戏
  10. php对象转字符串的方法