网站首页 > 技术文章 正文
训练结果
之前的旧模型 0.4,iv012(24个特征):
KS: 0.0177准确率: 0.2482精确率: 0.2482召回率: 1.0000F1分数: 0.3978
[15, 9, 12, 21, 38, 19, 7, 49, 25, 52, 53, 54, 26, 64, 72, 79, 11, 32, 27, 41]
新0.4 iv0.012(修正后的结果)
KS: 0.0180准确率: 0.2482精确率: 0.2482召回率: 1.0000f1分数: 0.3978
[61, 5, 66, 63, 41, 58, 67, 72, 32, 47, 1, 70, 45, 21, 52, 27, 74, 26, 4, 43]
遗传算法优化LGB模型(iv corr筛选后)结果:
[44, 10, 66, 38, 16, 74, 18, 70, 2, 79, 67, 23, 73, 43, 69, 56, 1, 42, 13, 48]
有点懵,为什么训练和test set效果差这么多,过拟合了?那试一试全量吧
遗传算法优化LGB模型(全量特征):
[49, 30, 4, 22, 47, 2, 67, 39, 7, 50, 11, 60, 70, 54, 64, 25, 40, 78, 20, 61]
看看到底是全量的好用,还是iv corr筛选后再用遗传算法好用
结论
旧模型 0.4,iv012(24个特征):7中1
新0.4 iv0.012(修正后的结果):3中1
遗传算法优化LGB模型(iv corr筛选后):3中1,5中2,9中3
遗传算法优化LGB模型(全量特征):6中1,9中2,11中4
全军覆没。看来kfold的使用有待提高
KFold 优化与最终完整全量数据训练
1. KFold 优化与最终训练的差异
在优化阶段使用 KFold 交叉验证有助于更加准确和稳定地评估模型的表现。而在最终模型阶段,则直接使用完整数据进行训练,因为目的是得到最优的最终模型,不再需要反复评估。这种方式的优势在于:
- 更可靠的评估:KFold 把数据集分为多个折叠,每次用不同的部分来训练和测试,这样可以减小单次划分导致的偏差。
- 避免过拟合:通过多次训练和验证,可以更好地评估模型的泛化能力。
在 KFold 交叉验证过程中,得到的最优参数实际上是对训练集划分后每次评估得到的参数的平均效果,这并不一定是对于完整训练集的最佳参数。其本质是通过 KFold 得到更稳定的结果,而不是说这个参数在整体数据上一定是最优的。
2. 为什么最终模型训练没有使用 KFold
在最终模型训练阶段,你直接使用完整的训练集来训练一个模型,并对测试集进行预测:
- 目标不同:优化阶段的目的是找到最优的特征组合和参数,而最终模型的训练目的是使用这些找到的参数在尽可能多的数据上进行训练,以得到一个用于生产或预测的模型。
- 最大化数据使用:在优化时,你通过 KFold 保留部分数据用于验证。但在最终模型训练时,你希望最大化地使用所有的训练数据,以提高模型的性能和泛化能力。如果你再用 KFold 交叉验证,那么一部分数据将不会被用于最终的模型训练,这样做的模型可能并不是用最多数据训练出来的最强模型。
- 单一预测模型:最终模型的目标是对新数据进行预测,这时并不需要再多次训练得到多个模型的预测均值,而是希望得到一个稳定的模型来直接对测试数据进行预测。
3. 参数在 KFold 和整体训练时可能的差异
正如你提到的,优化得到的参数是在 KFold 训练下效果最优的,但这不一定是整体数据上的最优参数。因为在 KFold 中,训练集和验证集的划分会影响模型对不同数据分布的适应性。因此,KFold 得到的最优参数更多的是一种折中方案,能适应不同折叠的训练和测试数据的划分。
但是,经验上,KFold 找到的参数组合通常具有较好的泛化性能,这意味着它们在最终整体训练集上的表现也可能会很好。因此,在实际应用中,大部分人会使用在 KFold 上找到的最优参数,直接用完整的数据集训练最终的模型。
总结
- 优化阶段:使用 KFold 交叉验证的最优参数,可以让模型参数在多个数据分布下有较好的泛化能力,从而更可靠地选择最优的参数。
- 最终模型训练:直接使用完整的训练集,是为了最大化模型性能,尽量减少数据分割带来的信息损失,得到用于生产或预测的最终模型。
- 上一篇: AI系列:怎么对模型进行测试 ai模拟量
- 下一篇: 风控模型应聘,80%会被问到的面试题
猜你喜欢
- 2024-12-29 国内首个非Attention大模型发布!训练效率是Transformer的7倍
- 2024-12-29 AI大模型探索之路 - 训练篇8:Transformer库预训练全流程实战指南
- 2024-12-29 基于yolov8,训练一个安全帽佩戴的目标检测模型
- 2024-12-29 从零手搓中文大模型计划|Day06|预训练代码汇总和梳理
- 2024-12-29 YOLOv8姿态估计模型训练简明教程 姿态估计heatmap
- 2024-12-29 首次!用合成人脸数据集训练的识别模型,性能高于真实数据集
- 2024-12-29 风控模型应聘,80%会被问到的面试题
- 2024-12-29 AI系列:怎么对模型进行测试 ai模拟量
- 2024-12-29 QAF2D:利用2D检测引导查询3D anchor来增强BEV远距离目标检测
- 2024-12-29 小麦头小麦穗目标检测数据集yolo格式(txt标签)4000张左右
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)