回归是监督学习的一个重要问题,回归用于预测输入变量和输出变量之间的关系。回归模型是表示输入变量到输出变量之间映射的函数。
回归问题的学习等价于函数拟合:使用一条函数曲线使其很好的拟合已知函数且很好的预测未知数据。
回归问题按照输入变量的个数可以分为一元回归和多元回归;按照输入变量和输出变量之间关系的类型,可以分为线性回归和非线性回归。
一元回归: y = a x + b y = ax + b y=ax+b
多元回归: h 0 ( x ) = ∑ i = 0 n θ i x i = θ T x h_{0}(x)= \sum _{i=0}^{n}\theta _{i}x_{i}= \theta ^{T}x h0(x)=∑i=0nθixi=θTx
线性回归的应用场合大多是回归分析,一般不用在分类问题上,原因可以概括为一下两个:
1)回归模型是连续模型,即预测出的值都是连续值(实数值),非离散值;
2)线性回归在整个实数域内敏感度一致,预测结果受样本噪声的影响比较大。
假设模型结果与测量值误差满足,均值为0的高斯分布,即正态分布。这个假设是靠谱的,符合一般客观统计规律。
设 ϵ i = y i − h θ ( x i ) \epsilon _i = y_i-h_{\theta}(x_i) ϵi=yi−hθ(xi)
p ( ϵ i ) = p ( y i ∣ x i ; θ ) = 1 2 π δ e x p ( − ( y i − h θ ( x i ) ) 2 2 δ 2 ) p(\epsilon _i ) = p(y_{i}|x_{i};\theta)=\frac{1}{\sqrt{2\pi}\delta}exp(-\frac{( y_i-h_{\theta}(x_i))^2}{2\delta ^2}) p(ϵi)=p(yi∣xi;θ)=2πδ1exp(−2δ2(yi−hθ(xi))2)
似然函数:
L ( θ ) = ∏ i = 1 m p ( y i ∣ x i ; θ ) L(\theta)= \prod _{i=1}^{m}p(y_{i}|x_{i};\theta) L(θ)=i=1∏mp(yi∣xi;θ)
取对数:
需要极大似然估计,即最后一项的后半部分最小,即得到损失函数:
损失函数:平方损失函数 J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 = 1 2 ( X θ − y ) T ( X θ − y ) J(\theta)= \frac{1}{2}\sum _{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^{2}=\frac{1}{2}(X \theta -y)^{T}(X \theta -y) J(θ)=21i=1∑m(hθ(x(i))−y(i))2=21(Xθ−y)T(Xθ−y)
最小化目标函数: 由于目标函数连续,那么 θ \theta θ 取值一定为目标函数的驻点,所以我们求导寻找驻点。
求导可得: ∇ θ J ( θ ) = ∇ θ ( 1 2 ( X θ − y ) T ( X θ − y ) ) = ∇ θ ( 1 2 ( θ T X T − y T ) ( X θ − y ) ) = ∇ θ ( 1 2 ( θ T X T X θ − θ T X T y − y T X θ + y T y ) ) = 1 2 ( 2 X T X θ − X T y − ( y T X ) T ) = X T X θ − X T y \nabla_{\theta}J(\theta)=\nabla_{\theta}(\frac{1}{2}(X \theta -y)^{T}(X \theta -y))= \nabla _{\theta}(\frac{1}{2}(\theta ^{T}X^{T}-y^{T})(X \theta -y)) \\ =\nabla_{\theta}(\frac{1}{2}(\theta ^{T}X^{T}X \theta - \theta ^{T}X^{T}y-y^{T}X \theta +y^{T}y)) \\ =\frac{1}{2}(2X^{T}X \theta -X^{T}y-(y^{T}X)^{T})=X^{T}X \theta -X^{T}y ∇θJ(θ)=∇θ(21(Xθ−y)T(Xθ−y))=∇θ(21(θTXT−yT)(Xθ−y))=∇θ(21(θTXTXθ−θTXTy−yTXθ+yTy))=21(2XTXθ−XTy−(yTX)T)=XTXθ−XTy
矩阵求导可参考:
标量、向量与矩阵的求导https://blog.csdn.net/weixin_42764932/article/details/113107265
向量、矩阵求导的重要公式https://blog.csdn.net/weixin_42764932/article/details/113107962
解得: θ = ( X T X ) − 1 X T y \theta=(X^{T}X)^{-1}X^{T}y θ=(XTX)−1XTy
然鹅有解的前提是 X T X X^{T}X XTX是可逆的
θ = θ − α ⋅ ∂ J ( θ ) ∂ θ \theta= \theta - \alpha \cdot \frac{\partial J(\theta)}{\partial \theta} θ=θ−α⋅∂θ∂J(θ)
∂ ∂ θ j J ( θ ) = ∂ ∂ θ j 1 2 ( h θ ( x ) − y ) 2 = ( h θ ( x ) − y ) x j \frac{\partial}{\partial \theta _{j}}J(\theta)= \frac{\partial}{\partial \theta _{j}}\frac{1}{2}(h_{\theta}(x)-y)^{2}=(h_{\theta}(x)-y)x_{j} ∂θj∂J(θ)=∂θj∂21(hθ(x)−y)2=(hθ(x)−y)xj
BGD:所有n个样本的平均损失
SGD:单个样本处理
mini-batch:多个样本处理
由于在线性回归中,目标函数收敛而且为凸函数,是有一个极值点,所以局部最小值就是全局最小值。
前面说了解析解是 θ = ( X T X ) − 1 X T y \theta=(X^{T}X)^{-1}X^{T}y θ=(XTX)−1XTy
并且有解的前提是 X T X X^{T}X XTX是可逆的
若 X T X X^{T}X XTX不可逆或为了防止过拟合,我们可以增加lambda扰动 θ = ( X T X + λ I ) − 1 X T y \theta=(X^{T}X+ \lambda I)^{-1}X^{T}y θ=(XTX+λI)−1XTy
按着求解过程倒回去,可以得到带有正则化项的损失函数
从另一个角度来看,这相当与给我们的线性回归参数增加一个惩罚因子,这是必要的,我们数据是有干扰的,不正则的话有可能数据对于训练集拟合的特别好,但是对于新数据的预测误差很大。
加入 L1 或 L2 正则化,让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。
可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什幺影响,一种流行的说法是『抗扰动能力强』。
岭回归(ridge regression)其实就是在标准线性回归的基础上加入L2 正则化(regularization)
J = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 J= \frac{1}{2}\sum _{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^{2}+ \lambda \sum _{j=1}^{n}\theta _{j}^{2} J=21i=1∑m(hθ(x(i))−y(i))2+λj=1∑nθj2
L2约束就是一个圆,
要求的就是在约束的条件下寻找最小的损失。所以其实就是找约束的图形和等值线的交点。
ridge 更容易使得权重接近 0,但由于交点在坐标轴(某维度值为零)的概率较小,所以没有让参数稀疏化的作用,但可以让参数变小,减缓过拟合。
lasso回归其实就是在标准线性回归的基础上加入L1 正则化(regularization)
J = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∣ ∣ w ∣ ∣ 1 J=\frac{1}{2}\sum _{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^{2}+ \lambda ||w||_{1} J=21i=1∑m(hθ(x(i))−y(i))2+λ∣∣w∣∣1
而L1损失的交点更容易在坐标轴上,所以更容易让参数稀疏化
正是由于 lasso 容易使得部分权重取 0,所以可以用其做 feature selection,lasso 的名字就指出了它是一个 selection operator。权重为 0 的 feature 对回归问题没有贡献,直接去掉权重为 0 的 feature,模型的输出值不变。
给定观察数据D, 贝叶斯方法通过最大化后验概率估计参数w。
p(D|w)是似然函数(likelihood function): 参数向量w的情况下,观测数据D出现的概率
p(w)是参数向量的先验概率(prior)
对于似然函数部分有:
对后验概率取对数有
当先验概率分布满足正态分布的时候
可以看到,似然函数部分对应于损失函数(经验风险),而先验概率部分对应于正则项。L2正则,等价于参数w的先验概率分布满足正态分布。
当先验概率分布满足拉普拉斯分布的时候
L1正则,等价于参数w的先验概率分布满足拉普拉斯分布。
对比拉普拉斯分布和高斯分布,可以看到拉普拉斯分布在0值附近突出;而高斯分布在0值附近分布平缓,两边分布稀疏。对应地,L1正则倾向于产生稀疏模型,L2正则对权值高的参数惩罚重。
逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型。
LR本质上还是线性回归,其实仅为在线性回归的基础上,套用了一个逻辑函数sigmoid。
逻辑曲线在z=0时,十分敏感,在z>>0或z<<0处,都不敏感,将预测值限定为(0,1)。
满足二项分布 p ( y = 1 ∣ x ; w ) = π ( x ) , p ( y = 0 ∣ x ; w ) = 1 − π ( x ) p(y=1|x;w)= \pi(x),p(y=0|x;w)=1- \pi(x) p(y=1∣x;w)=π(x),p(y=0∣x;w)=1−π(x)
{ p ( y = 1 ∣ x ; w ) = e x p ( w T x ) 1 + e x p ( w T x ) p ( y = 0 ∣ x ; w ) = 1 1 + e x p ( w T x ) \left\{ \begin{matrix} p(y=1|x;w)= \frac{exp(w^{T}x)}{1+exp(w^{T}x)}\\ \\p(y=0|x;w)= \frac{1}{1+exp(w^{T}x)}\\ \end{matrix} \right. ⎩⎪⎨⎪⎧p(y=1∣x;w)=1+exp(wTx)exp(wTx)p(y=0∣x;w)=1+exp(wTx)1
则对于单个样本,其后验概率为:
p ( y i ∣ x i ; w ) = ( e x p ( w T x i ) 1 + e x p ( w T x i ) ) y i ( 1 1 + e x p ( w T x i ) ) 1 − y i p(y_{i}|x_{i};w)=(\frac{exp(w^{T}x_{i})}{1+exp(w^{T}x_{i})})^{y_{i}}(\frac{1}{1+exp(w^{T}x_{i})})^{1-y_{i}} p(yi∣xi;w)=(1+exp(wTxi)exp(wTxi))yi(1+exp(wTxi)1)1−yi
似然函数:
L ( w ) = ∏ i = 1 m p ( y i ∣ x i ; w ) = ∏ i = 1 m ( π ( x i ) ) y i ( 1 − π ( x i ) ) 1 − y i L(w)= \prod _{i=1}^{m}p(y_{i}|x_{i};w)=\prod _{i=1}^{m}( \pi(x_i))^{y_i}(1-\pi(x_i))^{1-y_i} L(w)=i=1∏mp(yi∣xi;w)=i=1∏m(π(xi))yi(1−π(xi))1−yi
对数似然函数:
l o g ( L ( W ) ) = ∑ i = 1 m ( y i l o g π ( x i ) + ( 1 − y i ) l o g ( 1 − π ( x i ) ) ) log(L(W)) = \sum_{i=1}^{m}(y_i log \pi(x_i) + (1-y_i)log(1- \pi(x_i))) log(L(W))=i=1∑m(yilogπ(xi)+(1−yi)log(1−π(xi)))
对对数似然函数求最大值,得到 w w w 的极大似然估计值 w ′ w' w′
损失函数:
J ( W ) = − 1 m ( ∑ i = 1 m ( y i l o g π ( x i ) + ( 1 − y i ) l o g ( 1 − π ( x i ) ) ) ) J(W) =-\frac{1}{m}( \sum_{i=1}^{m}(y_i log \pi(x_i) + (1-y_i)log(1- \pi(x_i)))) J(W)=−m1(i=1∑m(yilogπ(xi)+(1−yi)log(1−π(xi))))
优点:
1)预测结果是介于0和1之间的概率
2)可以适用于连续性和类别性自变量
3)容易使用和解释
缺点:
1)对模型中自变量多重共线性较为敏感,例如两个高度相关自变量同时放入模型,可能导致较弱的一个自变量回归符号不符合预期,符号被扭转。需要利用因子分析或者变量聚类分析等手段来选择代表性的自变量,以减少候选变量之间的相关性;
2)预测结果呈“S”型,因此从kog(odds)向概率转化的过程是非线性的,在两端随着log(odds)值的变化,概率变化很小,边际值太小,slope太小,而中间概率的变化很大,很敏感,导致很多区间的变量变化对目标概率的影响没有区分度,无法确定阈值。