斯坦福机器学习公开课7-x过拟合欠拟合和解决方法

来源:互联网 发布:plsql从excel导入数据 编辑:程序博客网 时间:2024/05/14 15:50

建立多项拟合方程的时候可能由于特征太多造成过拟合。也就是构造了太复杂的多项式完全只是为了你和样本数据。使得模型不具有通用性。这个是过拟合。太多复杂的项可以使得模拟的方程几乎完全拟合样本。


如果特征太少就可能造成欠拟合,拟合效果不好。

例如



这里第一是欠拟合。第三是过拟合。第二都是恰恰好


首先来看过拟合如何解决

1 手动减少特征的数量

2 使用正则化方法(正规化方法)


正规化方法的思路如下

修改代价函数。例如下图


为了使得theta3 theta4的值变小。我们在代价函数里面加一个惩罚theta3 theta4的项。慢慢让theta3 theta4变小。变得适合类似二次函数。但是这里我们是已知类似的是二次函数。所以要修改theta3 theta4的惩罚值。所以正则化的一般思路就是。让theta的值很小,这样的曲线一般比较光滑。



所以我们在代价函数里面增加一个对于theta的求和并且乘以一个lamata。这个lamata叫做正则化参数。注意正则化一般从theta1开始。


这个lamata就是需要调整的参数,可以调整拟合效果。

lamata的主要作用。第一是保证前面的 sigma (h - y)有效拟合样本数据 第二是保证所有的theta都比较小。

 

如果lamata非常小。那么sigma theta的和几乎可以被忽略。所以模型拟合样本非常好。容易出现过拟合。

如果lamata非常大。为了使得j(theta)代价函数最小。那么只能使所有的theta都约等于0. 只留下一个参数theta0 这样就会欠拟合



所以调整lamata很重要


0 0