正则化(Regularization)


前言


一、正则化引入

线性回归和逻辑回归,能够有效地解决许多问题,但是当将它们应用到某些特定的机器学习应用时,会遇到过拟合(over-fitting)的问题,可能会导致它们效果很差。通过学习得到的假设函数可能能够非常好地适应训练集(代价函数可能几乎为 0),但是可能会不能推广到新的数据

eg:在回归问题中,有如下数据集和假设函数
在这里插入图片描述

第一个模型是一个线性模型,欠拟合,不能很好地适应训练集,第三个模型是一个四次方的模型,过于强调拟合原始数据,而丢失了算法的本质:预测新数据,可以看出,若给出一个新的值使之预测,它将表现的很差,是过拟合,虽然能非常好地适应训练集但在新输入变量进行预测时可能会效果不好,而中间的模型似乎最合适

eg: 在分类问题中也存在同样的情况
在这里插入图片描述
从假设函数的阶数来说, 𝑥 的次数越高,拟合的越好,但相应的预测的能力就可能变差

解决办法:正则化(regularization),它可以改善或者减少过度拟合问题

二、代价函数

回归问题中,假设函数如下:正是由于高次项导致过拟合的产生,如果能让这些高次项的系数接近于 0,就能很好的拟合
在这里插入图片描述
所以正则化的基本方法:在一定程度上减小这些参数𝜃 的值

对应上述回归问题,要减少𝜃3和𝜃4的大小,要做的就是修改代价函数,在其中𝜃3和𝜃4 设置一点惩罚,在尝试最小化代价时也需要将这个惩罚纳入考虑中,并最终导致选择较小一些的𝜃3和𝜃4:
在这里插入图片描述

如果数据集有非常多的特征,但是并不知道其中哪些特征要惩罚,可以将对所有的特征进行惩罚,并且让代价函数最优化的软件来选择这些惩罚的程度,所以能防止过拟合的代价函数如下:
在这里插入图片描述
其中𝜆又称为正则化参数( Regularization Parameter),一般不对𝜃0 进
行惩罚

这个代价函数就是在原来的情况上,增加了末尾这一项,如果令𝜆是一个非常大的数,为了使 Cost Function 尽可能的小,所有的 𝜃 的值,不包括𝜃0都会在一定程度上减小

正则化处理的模型与原模型的可能对比
在这里插入图片描述
如果选择的正则化参数 λ 过大, 则会把所有的参数都最小化了, 导致模型变成 ℎ𝜃(𝑥) =𝜃0,如上图中红色直线所示,造成欠拟合

三、正则化线性回归

正则化线性回归的代价函数为:
在这里插入图片描述
使用梯度下降法使代价函数最小化,因为未对𝜃0进行正则化,所以梯度下降算法将分两种情形:式子1和式子2
在这里插入图片描述
将式子2进行变形可以得到式子3,将2和3进行对比,可以发现式子3比式子2多减了一个式子4

因此,正则化线性回归的梯度下降算法的变化在于: 每次都在原有算法更新规则的基础上令𝜃值减少了一个额外的值

正规方程正则化线性回归模型
在这里插入图片描述
图中矩阵尺寸为 (𝑛 + 1) ∗ (𝑛 + 1)

四、正则化逻辑回归

正则化逻辑回归的代价函数为:
在这里插入图片描述

实现代码

import numpy as np
def costReg(theta, X, y, learningRate):
	theta = np.matrix(theta)
	X = np.matrix(X)
	y = np.matrix(y)
	first = np.multiply(-y, np.log(sigmoid(X*theta.T)))
	second = np.multiply((1 - y), np.log(1 - sigmoid(X*theta.T)))
	reg = (learningRate / (2 * len(X))* np.sum(np.power(theta[:,1:the
	ta.shape[1]],2))
return np.sum(first - second) / (len(X)) + reg

梯度下降算法
在这里插入图片描述


总结

提示:这里对文章进行总结:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Super.Bear

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值