Linear Regression学习笔记

回归主要分为线性回归和逻辑回归。线性回归主要解决连续值预测问题,逻辑回归主要解决分类问题。但逻辑回归输出的是属于某一类的概率,因此常被用来进行排序。

1. 线性回归的原理

假定输入 χ 和输出 y 之间有线性相关关系,线性回归就是学习一个映射

f:χy

然后对于给定的样本 x ,预测其输出:
y^=f(x)

现假定 x=(x0,x1xn) ,则预测值为:

hθ(x)=i=0nθixi=θTx

在特征 x 中加上一维x0=1表示截距,即:
f(x)=θ0+θ1x1+θ2x2++θnxn

2. 损失函数

为了找到最好的权重参数 θ ,令 X y的映射函数记为

f(x)=hθ(x)

其中
θ=(θ0,θ1θn)

为了评价模型拟合的效果,对于一个特定的数据集 (X,y) 定义一个损失函数来计算预测值与真实值之间的误差:
Jθ(X)=J(θ0,θ1θn)(X)=12mi=1m(hθ(x(i))y(i))2

即总体误差是所有样本点误差平方和的均值,其中 (x(i),y(i)) 表示的是第 i 个样本点。现在给定数据集(X,y),要求解的目标为使得 Jθ(X) 最小的 θ ,即:
θ=argminθ{12mi=1m(hθ(x(i))y(i))2}

3. 梯度下降

假设有一堆样本点 (x1,y1)(x2,y2)(xn,yn) ,定义函数 hθ(x) 来模拟 y 。假设最后的拟合函数为f(X)=hθ(X)。则损失函数为:

J(θ)=12mi=1m(hθ(x(i))y(i))2

  • 首先随机初始化 θ ,例如令 θ⃗ =0⃗ 
  • 不断变化 θ⃗  的值来改变 J(θ) 的值,使其越来越小。改变的规则为:

    θi:=θiαJ(θ)θi

    J(θ)θi=j=1m(hθ(x(j))y(j))x(j)i

    因此对于所有的 m 个样本点求和,有:
    θi:=θiαj=1m[(hθ(x(j))y(j))x(j)i]

    其中 x(j)y(j) 表示第 j 个样本点,x(j)是一个向量, x(j)i 表示第 j 个样本点x(j)的第 i 个分量,是一个标量。

  • 不断重复上述过程,直到最后收敛(例如最后发现损失函数Jθ(X)基本不再变化)。

整个过程当中, θ,hθ(x),Jθ(X) 都会不断变化,但是 hθ(x) 会越来越接近 y ,因此Jθ(x)会变得越来越小,最后接近0。

4. 利用最小二乘拟合的方法来计算 θ

X=(x(1))T(x(2))T(x(n))T

Xθ=(x(1))Tθ(x(2))Tθ(x(n))Tθ=hθ(x(1))Thθ(x(2))Thθ(x(n))T

y=y(1)y(2)y(n)

Xθy=hθ(x(1))Ty(1)hθ(x(2))Ty(2)hθ(x(n))Ty(n)

为了计算函数 Jθ(x) 在指定的计算步骤内达到的最小值,每次我们都沿当前点下降最快的方向移动。最快的方向即梯度方向:
(Jθ(x(i))θ0,Jθ(x(i))θ1Jθ(x(i))θn)

假设 z 是一个向量,z=z1z2zn。则: zTz=ni=0z2i


(Xθy)T(Xθy)=12i=1m(hθ(x(i))y(i))2


J(θ)=12(Xθy)T(Xθy)

要求梯度,令
θJ(θ)=0⃗ 

θJ(θ)=θ12(xθy)T(xθy)=xTxθxTy=0⃗ 

求得
θ⃗ =(xTx)1xTy

最终 θ⃗  是一个 m×1 的向量。这样对于简单的线性回归问题,就不需要用前面的迭代方法啦。

如果 xTx 是不可逆的,说明 x <script type="math/tex" id="MathJax-Element-67">x</script>当中有特征冗余,需要去掉某些特征。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值