AI(006) - 笔记 - 回顾线性回归(Linear Regression)

本文是对线性回归模型的回顾,包括最小二乘法、Lasso和Ridge正则化。线性回归试图通过线性组合预测函数进行预测,最小二乘法用于求解最优参数。L1正则化的Lasso和L2正则化的Ridge在处理过拟合时各有应用。
摘要由CSDN通过智能技术生成

线性回归(Linear Regression)

之前并未做过笔记,所以这篇文章是对线性模型的回顾,对应:

  • 第一周:(06)1.6 线性回归模型
  • 第一周:(07)1.6 线性回归模型-优化算法
  • 第一周:(08)1.6 线性回归模型-模型选择
  • 《机器学习》(西瓜书):第3章 线性模型 - 3.1 基本形式
  • 《机器学习》(西瓜书):第3章 线性模型 - 3.2 线性回归
  • sklearn官方文档


1 线性模型(Linear Models)

给定由d个属性描述的示例 x=(x1,x2,,xd) x = ( x 1 , x 2 , ⋯ , x d ) ,其中 xi x i x x 在第i个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测的函数,即:

y^(ω,x)=f(x)=ω0+ω1x1+ω2x2++ωdxd y ^ ( ω , x ) = f ( x ) = ω 0 + ω 1 x 1 + ω 2 x 2 + ⋯ + ω d x d

其中, ω=(ω0,ω1,ω2,,ωd) ω = ( ω 0 , ω 1 , ω 2 , ⋯ , ω d )

注意,在sklearn中, ω=(ω1,ω2,,ωd) ω = ( ω 1 , ω 2 , ⋯ , ω d ) coef_表示,而 ω0 ω 0 intercept_表示。

sklearn官方文档原文

y^(ω,x)=ω0+ω1x1+ω2x2++ωpxp y ^ ( ω , x ) = ω 0 + ω 1 x 1 + ω 2 x 2 + ⋯ + ω p x p

Across the module, we designate the vector ω=(ω1,ω2,,ωp) ω = ( ω 1 , ω 2 , ⋯ , ω p ) as coef_ and ω0 ω 0 as intercept_.

sklearn中,线性模型来自同一个模块,且使用方法一样,伪代码:

# 导入模块
from sklearn import linear_model

# 使用流程

## 1 新建模型
model = linear_model.线性模型(线性模型参数)

## 2 训练模型
model.fit(X_train)

## 3 预测结果
y_train_pred = model.predict(X_train)
y_test_pred = model.predict(X_test)

2 线性回归(Linear Regression)与最小二乘法(Ordinary Least Squares)

给定数据集 D={(x1,y1),(x2,y2),,(xm,ym)} D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x m , y m ) } ,其中 xi=(xi1,xi2,,xid)T,yiR x i = ( x i 1 , x i 2 , ⋯ , x i d ) T , y i ∈ R

“线性回归”(linear regression)试图学得一个线性模型以尽可能准确地预测输出标记:

f(xi)=ωTxi+b使f(xi)yi f ( x i ) = ω T x i + b 使得 f ( x i ) ⋍ y i

为了确定其中的 ω ω b b ,我们将使用回归任务最常用的性能度量方法“均方误差”来衡量 f(x) f ( x ) y y 之间的差别,我们试图让它最小。

而均方误差的几何意义对应了“欧氏距离”(Euclidean distance)。

2.1 最小二乘法(Ordinary Least Squares)

基于均方误差最小化来进行模型求解的方法称为“最小二乘法”(Ordinary Least Squares)。

假设 d=1 d = 1 ,即 x={xi} x = { x i } ,则线性回归的试图学得:

f(xi)=ωxi+b f ( x i ) = ω x i + b

均方误差最小化:

minE(ω,b)=argminωi=1m(f(xi)yi)2=argminωi=1m(yiωxib)2 min E ( ω , b ) = arg ⁡ min ω ∑ i = 1 m ( f ( x i ) − y i ) 2 = arg ⁡ min ω ∑ i = 1 m ( y i − ω x i − b ) 2

最小二乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小。所以,为了使上式最小,分别对 ω,b ω , b 求导:

  • ω ω 求导详细过程:

    E(ω,b)ω=(mi=1(yiωxib)2)ω=2(i=1m(yiωxib)(yiωxib))=2(i=1m(yiωxib)(xi))=2(i=1m(ωx2iyixi+bxi))=2(i=1m(ωx2i)i=1m(yixibxi))=2(ωi=1mx2i=1m(yib)xi) ∂ E ( ω , b ) ∂ ω = ∂ ( ∑ i = 1 m ( y i − ω x i − b ) 2 ) ∂ ω = 2 ( ∑ i = 1 m ( y i − ω x i − b ) ( y i − ω x i − b ) ′ ) = 2 ( ∑ i = 1 m ( y i − ω x i − b ) ( − x i ) ) = 2 ( ∑ i = 1 m ( ω x i 2 − y i x i + b x i ) ) = 2 ( ∑ i = 1 m ( ω x i 2 ) − ∑ i = 1 m ( y i x i − b x i ) ) = 2 ( ω ∑ i = 1 m x 2 − ∑ i = 1 m ( y i − b ) x i )

  • b b 求导详细过程:

    E(ω,b)b=(mi=1(yiωxib)2)b=2(i=1m(yiωxib)(yiωxib))=2(i=1m(yiωxib)(1))=2(i=1m(ωxiyi+b))=2(i=1mb+i=1m(ωxiyi))=2(mbi=1m(yiωxi)) ∂ E ( ω , b ) ∂ b = ∂ ( ∑ i = 1 m ( y i − ω x i − b ) 2 ) ∂ b = 2 ( ∑ i = 1 m ( y i − ω x i − b ) ( y i − ω x i − b ) ′ ) = 2 ( ∑ i = 1 m ( y i − ω x i − b ) ( − 1 ) ) = 2 ( ∑ i = 1 m ( ω x i − y i + b ) ) = 2 ( ∑ i = 1 m b + ∑ i = 1 m ( ω x i − y i ) ) = 2 ( m b − ∑ i = 1 m ( y i − ω x i ) )

然后再令他们等于零,这样可以解得最优解的闭式(closed-form):

2(ωmi=1x2mi=1(yib)xi)2(mbmi=1(yiωxi))=0=0ωb=mi=1yi(xi1mmi=1xi)mi=1x2i1m(mi=1xi)2=1mmi=1(yiωxi) { 2 ( ω ∑ i = 1 m x 2 − ∑ i = 1 m ( y i − b ) x i ) = 0 2 ( m b − ∑ i = 1 m ( y i − ω x i ) ) = 0 ⟹ { ω = ∑ i = 1 m y i ( x i − 1 m ∑ i = 1 m x i ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 b = 1 m ∑ i = 1 m ( y i − ω x i )

  • 直接求解 ω ω (不使用克莱默法则)详细过程:

    那么将b带入到第一个式子得:

    2(ωi=1mx2i=1m(yib)xi)ωi=1mx2ωi=1mx2ωi=1mx2ωi=1mx2ωi=1mx2ωi=1mx2ωm(i=1mxi)2ω=0=i=1m(yib)xi=i=1m(yi1mi=1m(yiωxi))xi=i=1m(yixiximi=1myi+ωximi=1mxi)=i=1myixii=1m(ximi=1myi)+i=1m(ωxi1mi=1mxi)=i=1myixii=1m(yi1mi=1mxi)+ωm(i=1mxi)2=i=1myi(xi1mi=1mxi)=mi=1yi(xi1mmi=1xi)mi=1x2i1m(mi=1xi)2,(1mi=imxi=x¯,),((ab)=(ab)) 2 ( ω ∑ i = 1 m x 2 − ∑ i = 1 m ( y i − b ) x i ) = 0 ω ∑ i = 1 m x 2 = ∑ i = 1 m ( y i − b ) x i ω ∑ i = 1 m x 2 = ∑ i = 1 m ( y i − 1 m ∑ i = 1 m ( y i − ω x i ) ) x i ω ∑ i = 1 m x 2 = ∑ i = 1 m ( y i x i − x i m ∑ i = 1 m y i + ω x i m ∑ i = 1 m x i ) ω ∑ i = 1 m x 2 = ∑ i = 1 m y i x i − ∑ i = 1 m ( x i m ∑ i = 1 m y i ) + ∑ i = 1 m ( ω x i ⋅ 1 m ∑ i = 1 m x i ) , ( 1 m ∑ i = i m x i = x ¯ , 均值是常数 ) ω ∑ i = 1 m x 2 = ∑ i = 1 m y i x i − ∑ i = 1 m ( y i ⋅ 1 m ∑ i = 1 m x i ) + ω m ( ∑ i = 1 m x i ) 2 , ( ∑ ( a ∑ b ) = ∑ ∑ ( a b ) ) ω ∑ i = 1 m x 2 − ω m ( ∑ i = 1 m x i ) 2 = ∑ i = 1 m y i ( x i − 1 m ∑ i = 1 m x i ) ω = ∑ i = 1 m y i ( x i − 1 m ∑ i = 1 m x i ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2

2.2 线性回归(Linear Regression)

放到一般情况,即 x=(x1,x2,,xd) x = ( x 1 , x 2 , ⋯ , x d ) ,试图学得:

f(xi)=ωTxi+b使f(xi)yi f ( x i ) = ω T x i + b 使得 f ( x i ) ⋍ y i

这称为“多元线性回归”(multivariate linear regression)。

我们将它适用于所有样本:

y=Xω^ y = X ω ^

其中:

  • y=(y1,y2,,ym)T y = ( y 1 , y 2 , ⋯ , y m ) T
  • X=111x11x21xm1x12x22xm2x1dx2dxmd=111xT1xT2xTm X = [ 1 x 11 x 12 ⋯ x 1 d 1 x 21 x 22 ⋯ x 2 d ⋮ ⋮ ⋮ ⋱ ⋮ 1 x m 1 x m 2 ⋯ x m d ] = [ 1 x 1 T 1 x 2 T ⋮ ⋮ 1 x m T ]
  • ω^=(ω;b) ω ^ = ( ω ; b )

和之前类似的,我们得到均方误差最小化:

minE(ω,b)=argminω(yXω^)T(yXω^) min E ( ω , b ) = arg ⁡ min ω ( y − X ω ^ ) T ( y − X ω ^ )

  • ω^ ω ^ 求导得:

    Eω^ω^=((yXω^)T(yXω^))ω^=2XT(Xω^y) ∂ E ω ^ ∂ ω ^ = ∂ ( ( y − X ω ^ ) T ( y − X ω ^ ) ) ∂ ω ^ = 2 X T ( X ω ^ − y )

同样的令它等于零,这样可以解得最优解的闭式(closed-form):

2XT(Xω^y)XTXω^(XTX)1XTXω^ω^=0=XTy=(XTX)1XTy=(XTX)1XTy,ifXTX=full-rank matrixorpositive definite matrix 2 X T ( X ω ^ − y ) = 0 X T X ω ^ = X T y ( X T X ) − 1 X T X ω ^ = ( X T X ) − 1 X T y , i f X T X = | 满秩矩阵(full-rank matrix) o r 正定矩阵(positive definite matrix) ω ^ = ( X T X ) − 1 X T y

则可得出多元最终模型:

f(Xi)=Xi(XTX)1XTy f ( X i ) = X i ( X T X ) − 1 X T y

几乎所有的任务中, XTX X T X 都不是满秩矩阵。此时可解出多个 Xi X i ,选择哪一个作为输出,将由学习算法决定,常见的是引入正则项(regularization)

正则项为空时,也可以称为最小二乘回归。

2.3 sklearn中的线性回归模型

sklearn中,导入线性回归:

# 线性回归
from sklearn.linear_model import LinearRegression

# 带交叉验证的线性回归
from sklearn.linear_model import LinearRegressionCV

# 使用和之前介绍的一样,以LinearRegression为例
LR = LinearRegression()
LR.fit(X_train)
y_test_pred = LR.predict(X_test)

3 带正则的线性回归(Linear Regression With Regularizer)

3.1 Lasso(L1正则)

它的目标函数为:

12×Nsamples×||yXω||22+λ||ω||1 1 2 × N s a m p l e s × | | y − X ω | | 2 2 + λ | | ω | | 1

由于 λ||ω||1 λ | | ω | | 1 ωj=0 ω j = 0 时,不可w微,所以在梯度下降法进行优化求解时,需要使用次梯度。

sklearn中,导入Lasso:

# Lasso
from sklearn.linear_model import Lasso

# 带交叉验证的Lasso
from sklearn.linear_model import LassoCV

# 使用Lars算法的 Lasso 
from sklearn.linear_model import LassoLars

# 使用Lars算法训练,带交叉验证的 Lasso
from sklearn.linear_model import LassoLarsCV

# 使用赤池或贝叶斯进行模型选择,使用Lars算法训练的 Lasso
from sklearn.linear_model import LassoLarsIC

# 使用方法同LinearRegression
# 其中 alpha 对应 公式中的 lambda

3.2 Ridge(岭回归)(L2正则)

又称为吉洪诺夫正则化方法(Tikhonov regularization),它的目标函数为:

12×Nsamples×||yXω||22+λ||ω||22 1 2 × N s a m p l e s × | | y − X ω | | 2 2 + λ | | ω | | 2 2

sklearn中,导入Ridge:

# 岭回归
from sklearn.linear_model import Ridge

# 带交叉验证的岭回归
from sklearn.linear_model import RidgeCV

# 使用方法同LinearRegression
# 其中 alpha 对应 公式中的 lambda
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值