改进算法1
发布日期:2021-06-29 11:45:17 浏览次数:3 分类:技术文章

本文共 1231 字,大约阅读时间需要 4 分钟。

当训练好一个模型之后预测新的数据,当发现预测情况不是很好的时候,怎么改进?

1.得到更多的训练数据。但有的时候获取更多的数据并不是很有帮助

2.尝试选用更少的特征

3.尝试增加更多的特征

4.增加多项式特征,就是已有特征之间的组合:x_{1}^{2},x_{2}^{2},x_{1}x_{2}

5.增加正则化参数,减小正则化参数

怎么样能选择最适合改进的方法呢?或者说排除上面的一些方法

评估该算法的性能(机器学习诊断法),从而能知道影响性能的关键和改进的方面:

训练误差最小化不一定得到了最好的性能,因为会过拟合。

那就要评价假设:使用验证集来度量误差,具体的如果对于回归问题,是误差;对于分类问题,是分类误差

欠拟合---偏差,过拟合---方差;如果算法的表现没有预期的那么好,那么如何确定是哪方面的问题?

如果是高偏差的问题,那么训练集误差和验证集误差都比较大;如果是高方差,那么训练集误差小,验证集误差大。

1.得到更多的训练数据(但有的时候获取更多的数据并不是很有帮助):解决高方差问题

2.尝试选用更少的特征:解决高方差问题

3.尝试增加更多的特征:解决高偏差问题

4.增加多项式特征,就是已有特征之间的组合:x_{1}^{2},x_{2}^{2},x_{1}x_{2}等:解决高偏差问题

5.增加正则化参数,解决高方差问题

6.减小正则化参数:解决高偏差问题

加入正则化,选区合适的参数的时候,选取验证集最好效果的参数。如果不同的正则参数训练出来的模型,对验证集,训练集进行预测,得到的误差图像,这个时候,如果正则化参数太大就会是高偏差即欠拟合问题,则会表现训练集误差和验证集误差都大;如果正则化参数太小就是高方差即过拟合问题,则表现训练集误差小,验证集误差大。因此通过增大正则参数来解决高方差,减小正则参数来解决高偏差。

利用学习曲线来确定是高偏差问题还是高方差问题。

学习曲线是,在假设下面,使用训练数据集中的m个样本进行训练,得到模型,然后得到训练误差和验证误差(注意这里是对m个样本,具体的训练集上之前训练的m个样本,验证集上新的m个样本)。随着m的增大而训练模型,得到误差;这样就画出来下面的学习曲线。我们可以知道当数据越多的时候,我们所关心的验证误差将会越来越小,当到达一定的数据量的时候就会保持平衡,意味着数据增加不会起帮助(下面的高偏差问题)

那么对于高偏差和高方差的曲线各是什么呢?下面给出:

高偏差状况是可以判断增加数据没有意义了

可以看到在整个训练集训练完了,这两条误差曲线还有很大的一个gap,看着曲线的趋势,增加数据可以降低验证误差(这是我们的目的),所以可以判断增加数据对于改善模型是有效的。

那么总结上面改进算法的方法都是解决什么问题的:

1.得到更多的训练数据(但有的时候获取更多的数据并不是很有帮助):解决高方差问题

2.尝试选用更少的特征:解决高方差问题

3.尝试增加更多的特征:解决高偏差问题

4.增加多项式特征,就是已有特征之间的组合:x_{1}^{2},x_{2}^{2},x_{1}x_{2}等:解决高偏差问题

5.增加正则化参数,解决高方差问题

6.减小正则化参数:解决高偏差问题

 

 

 

 

转载地址:https://blog.csdn.net/zz2230633069/article/details/88320434 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:用tensorflow,pytorch框架使用GPU,指定GPU问题
下一篇:几种优化算法的比较(BGD、SGD、MBGD、指数加权平均、momentum、NAG、RMSprop、Adam)

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月13日 14时27分55秒