机器学习笔记012 | 过度拟合和正则化

机器学习笔记012 | 过度拟合和正则化_第1张图片

1 过度拟合

我们在使用线性回归或者逻辑回归的时候,会遇到过度拟合的情况。

什么是过度拟合呢?

对于线性回归,我们对比一下下图几种情况:

机器学习笔记012 | 过度拟合和正则化_第2张图片

第一种是未拟合(under-fitting)的情况,我们看到预测的直线和训练数据之间具有较大的偏差。

第二种是合适的情况,预测曲线可能很好的拟合数据。

第三种就是过度拟合(over-fitting)的情况,虽然预测曲线经过了每一个训练数据点,但是对于需要预测的数据来说,预测的效果就会非常不准确。

对于逻辑回归,也有类似的情况:

机器学习笔记012 | 过度拟合和正则化_第3张图片

问题的原因,主要出在特征的数量太多。

所以解决的方法很简单,就是减少特征数量。

但问题是,我们怎么清楚哪些特征有效哪些特征无效呢?

也许我们减去的,正好是贡献很大的一个特征,对吧。

一种方式是使用算法自动选择,自行判断需要减少哪些特征;另外一种方式是降低某些特征的权重θj,也就是下面要说到的正则化(Regularzation)

2 正则化

例如线性回归过度拟合的图片中:

机器学习笔记012 | 过度拟合和正则化_第4张图片

我们要降低 θ3 和 θ4 的权重,我们可以在代价函数后面增加两项:

那么我们在最小化代价函数的时候,得到的参数结果中 θ3 和 θ4 就是非常小的,甚至是趋近于0的了。

但是问题是,对于 θ1, θ2 , θ3 , … , θn 这么多参数,我们怎么知道应该缩小哪些呢?

我们不清楚,唯一可以做的,就是同时缩小所有的特征参数,然后让算法为我们找到最合适的权重。

所以,经过正则化,代价函数变为:

其中m为训练样本数量,n为特征数量。

需要注意的是,这里计算的特征是从 i = 1 开始的。

公式中加号左边的这部分是平方误差函数:

其目的是尽可能拟合数据。

公式中加号右边的这部分就是正则化项:

其目标是让缩小特征参数。

而这里的正则化参数 λ ,要做的是让两个目标之间达到平衡。

我们做一个假设,假如 λ = 0 ,那么情况还是和之前一样,得到的预测函数 hθ(x) 是一个过度拟合的曲线:

机器学习笔记012 | 过度拟合和正则化_第5张图片

假如 λ 趋向于无穷大,那么为了让代价函数J(θ)最小,θ1, θ2, θ3,… , θn 都会趋近于 0 ,得到的预测函数 hθ(x) 就是一条直线,一个未拟合的结果:

机器学习笔记012 | 过度拟合和正则化_第6张图片

而如果我们设定一个合适的正则化参数 λ ,算法就能自动计算好各个参数。得到的预测函数曲线比较平滑,又能很好地拟合数据:

机器学习笔记012 | 过度拟合和正则化_第7张图片

梯度下降算法的执行步骤是:

代入了变化之后的代价函数,就变成了:

机器学习笔记012 | 过度拟合和正则化_第8张图片

由于 θ0 维持不变的,所以单独拿出来计算。

对于正规方程而言,正则化调整后公式如下:

机器学习笔记012 | 过度拟合和正则化_第9张图片

以上是线性回归的情况,逻辑回归的情况也是类似的,这里就不再赘述。

经过了正则化之后,逻辑回归的代价函数为:

梯度下降算法执行步骤为:

机器学习笔记012 | 过度拟合和正则化_第10张图片

3 关于正则化的想法

股票的特征非常多,如股价大小、成交量、各种技术指标、财务数据、消息热点等等。

每一个特征对股价的变化可能都有影响,这也使得股票数据存在巨量的噪音。

这样的情况下,机器学习的结果比较容易过度拟合,那么正则化是否能够解决这样的问题呢?

另外一个就是,在正则化的过程中,是自动计算并得到合适的参数,或者说是合适的权重。

那么我们进行多因子选股,每个因子之间的权重,是否也可以通过这样的方式来得到呢?

文章转载自公众号:止一之路

机器学习笔记012 | 过度拟合和正则化_第11张图片

你可能感兴趣的:(机器学习笔记012 | 过度拟合和正则化)