超参数调优
超参数对模型至关重要。
网格搜索
网格搜索应该是最简单的超参数搜索算法。采用较大的搜索范围和较小的步长。十分耗费计算资源和时间。一般是先设置较大的搜索范围和较大的步长,来寻找全局最优值的可能位置,然后缩小搜索范围得我步长和范围,但是如果目标函数非凸,可能错过全局最优值。
随机搜索
在搜索范围随机抽样,样本足够大,也有很大的概率找到全局最优值,当然,结果没法保证。
贝叶斯优化算法
贝叶斯算法会记录测试过的值,学习目标函数的形状,找到全局最优值提升的参数。
贝叶斯算法,先根据先验分布,假设一个搜索函数,然后每一次使用采样的点测试目标函数时,利用这个信息来更新目标函数的先验分布,最后,算法测试根据后验分布找到全局最值的最大的可能性的点。
贝叶斯算法如果找到了局部最优解,则会在该区域不断地采样,很容易陷入局部最优值。
过拟合和欠拟合
过拟合指模型对于训练数据拟合过当,反应出来就是训练集评价指标表现很好,但是在测试卷或者新数据上面表现一塌糊涂,评价指标明显差于训练集。
欠拟合则是,模型在训练集和预测时表现都不好。
欠拟合无法捕捉数据的特征,过拟合则是模型复杂,把噪声也学习到了模型中,导致模型泛化能力差。
降低过拟合的风险的办法
- 获取更多的数据。这是最直接有效的方法,更多的数据能够学习有效的特征,降低噪声的影响。如果找不到多的训练数据,可以自己尝试扩充训练数据。
- 降低模型复杂度。数据较少,模型又复杂是产生过拟合的主要因素。比如神经网络中降低网络层数,神经元个数。决策树降低树的深度,进行剪枝。
- 正则化方法。给模型的参数机上一定的正则约束,比如将权值得大小加入到损失函数中。以L2为例:
- 集成学习方法。把多模型集成在一起,降低单一模型过拟合的风险,比如Bagging方法。
降低欠拟合风险的方法
- 添加新的特征。如因子分解机、梯度提升决 策树、Deep-crossing等都可以用来丰富特征。
- 增加模型的复杂度,提高拟合能力。在线性模型中添加高次项,在神经网络模型中增加网络层数或 神经元个数等。
- 减小正则化系数。正则化是用来防止过拟合的,但当模型出现欠拟合现象时,则 需要有针对性地减小正则化系数。
网友评论