机器学习模型优化中常见问题和解决思路
2017-05-09 09:02
399 查看
模型优化中常见问题和解决思路
1 训练集上欠拟合,auc等度量指标不佳
训练集上欠拟合一般是由于数据中特征或模型无法充分刻画预测的目标导致。可以以下的优化思路:1) 加新的好特征
好的特征可以是新的业务强相关特征,也可以是根据前面文章特征工程部分的思路提取的特征。
特别关注和预测目标直接相关特征的细粒度刻画。例如ctr预测中,将历史ctr点击率通过不同角度进行交叉深度表示,例如时间维度:这个词过去x天、过去x周、过去x月、白天、晚上、工作日、周末的历史ctr统计;不同广告位上的ctr;不同广告样式下的ctr;不同相关性系数的ctr;不同类别用户下的ctr等。也可以做多维度特征交叉组合,产生细粒度的刻画特征。 具体特征工程部分可以参考:《机器学习模型应用以及模型优化的一些思路》
2) 模型上可以调低训练步长、增大树的个数以及深度等可以让模型更精细化学习的参数。
3) 使用更复杂的模型,例如深度学习或者组合模型等。
4) 如果某类样本存在预测特别差,可以考虑进行上下采样的处理,使的训练样本的分布向预测的目标倾斜。
2 训练集上过拟合,但预测集效果差(泛化能力差)
1)增大数据集可能是因为数据集少,导致对训练集过度学习。
直接思路就是扩展数据集,除了常规根据业务特性加入更大范围或者更长时间段的方式外,也可以通过时间窗口滑动、上采样等手段在已有数据集通过一定技巧来产生更多数据。
2)Early stopping
在多轮迭代训练中,在训练效果收敛之前停止训练。简单说,训练时有一个校验集,当在校验集上效果不再提升时,停止训练
3)正则化方法
通过L1 或L2正则,使部分特征权重变小或者权重为0,降低模型复杂度。
4)Dropout
在神经网络中,随机丢弃一些隐层节点,也是降低模型复杂度的一种方式。以上方法细节可参考:机器学习中防止过拟合的处理方法
3 预测效果异常的好
有时候,会在模型初版阶段或者加入了少量特征后,离线模型在训练集或者预测集上的效果都非常好,例如分类问题auc达到95%以上等。这时候需要保持警惕,很有可能特征集中混入了包含label信息的特征,例如未来的信息等。这类模型往往在离线阶段效果好,在上线实验后,线上的效果差,但是如果在上线时才发现问题,负面效果大,项目进度也收到影响。因此,这类问题需要在离线阶段就保持敏感度,及时定位修复。4 模型的效果提升到达一定瓶颈
在初期优化后,模型性能达到一定阶段,但进一步提升遇到瓶颈。这时候一些思路可供参考尝试。1) 评估模型效果对应当前的机制或策略应用是否初步足够,如足够可以将更多精力放到机制等应用层面。因为这个时候模型进一步提升的难度较大,而可能机制优化更快速提升整体应用效果,投入和回报性价比更高。
2) 进行具体化的bad case分析,对于那些预测和实际偏差很多的具体case,具体分析原因。
3) 定位已有样本以及特征中偏差问题
回到模型先前工作的分析和确认中,因为很多时候,一开始节奏比较快,对于使用的特征以及样本缺乏分析,可能会导致引入有偏差或异常的样本、引入存在错误的特征。
a) 重视样本分布观察、样本采样、异常样本过滤、重复样本的去重等工作
b) 评估特征的业务含义、数据和线上实际数据的一致性、特征是否存在异常值等
c) 评估特征和预测label之间的相关性,做好特征筛选工作。
4) 审视label的合理性,思考是否有客观或者更能描述问题的label
5) 重新评估建模思路,看看是否有更贴合业务以及数据的建模思路
6) 尝试其他类型的模型
7) 进行更加深度的特征工程
在以上优化的过程中,在每步操作之间,一定要注意有基准和确定优化方向,版本之间的效果要有比较,避免无基准无方向的盲目尝试。
相关文章推荐
- 机器学习模型应用以及模型优化的一些思路
- 机器学习模型应用以及模型优化的一些思路
- EBS的优化问题解决思路
- Mysql主从一个常见问题及解决“模型(方法)”
- 机器学习:模型评估和优化
- 七月算法机器学习笔记6 -- 工作流程与模型优化
- 几种机器学习模型的基本思路
- SQL优化解决思路
- 机器学习系列(4)_机器学习算法一览,应用建议与解决思路
- 使用RNN解决NLP中序列标注问题的通用优化思路
- 机器学习系列(4)_机器学习算法一览,应用建议与解决思路
- 使用RNN解决NLP中序列标注问题的通用优化思路
- 一次ORA-4030问题诊断及解决【解决思路不错,说明了对象的统计信息与优化器的优化操作(即选择执行一个SQL语句在该优化参数环境下最佳的执行计划)间的关系】
- 机器学习系列(4)_机器学习算法一览,应用建议与解决思路
- 机器学习-线性回归优化模型的由来
- 使用RNN解决NLP中序列标注问题的通用优化思路
- 谈谈.NET中如何根据代码自动生成代码对象模型的解决思路
- python性能优化思路与常用解决策略
- 机器学习与智能优化 之 线性模型
- 机器学习系列(4)_机器学习算法一览,应用建议与解决思路