机器学习(1)------ 线性回归、加权线性回归及岭回归的原理和公式推导

本文详细介绍了线性回归、加权线性回归和岭回归的原理及公式推导,包括损失函数的定义、梯度下降法求解参数、矩阵形式的表达等。适合初学者理解并巩固机器学习基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线性回归、加权线性回归及岭回归的原理和公式推导

目录:
- 前言
- 线性回归
- 加权线性回归
- 岭回归
- 总结


前言

机器学习相关的博文相信已经很多了,作为机器学习的一枚菜鸟,写这篇博文不在于标新立异,而在于分享学习,同时也是对自己研究生生涯的总结和归纳,好好地把研究生的尾巴收好。想着比起出去毕业旅行,在实验室总结一下自己的所学,所想,所感应该更有意义吧。(其实也想出去玩,但是老板要求再出一篇文章,那只好和毕业旅行拜拜了,所以趁机写个系列吧,反正后面的时间应该就是文章+博客的双重循环了,其实也是挺美的哈)

那么对于机器学习的相关内容,大家也似乎都是从线性回归开始讲起。同样的,我也从这个主题开始讲起,主要写自己平时的一些总结,可能里面会有一些错误或者理解有误的地方,也希望大家批评指出。其实,对于这个专题可能是机器学习里面最为基础的知识点了,也有很多相关的博文,但很多写得都不够的详细,而且缺乏推导过程,往往使人看起来有些晕晕的,可能也是自己的功力不够吧(ಥ_ಥ)。同时,这里个人推荐Andrew Ng的课件作为这部分内容的参考,为保持统一,相关公式的符号来自该课件。但我写这篇博客的目的是,你只看我的博客也能很清楚的弄懂线性回归、加权线性回归以及岭回归的概念。

学习机器学习的小心得:脑袋中一定要有矩阵、向量的概念,这一点非常重要,因为我们现在处理的数据是多维的数据,所以可能无法非常直观的来表述我们的数据,所以大脑中一定要有这样的概念。然后就是Coding再Coding,这一点自己也没做好啦,惭愧。

线性回归

回归的目的就是对给定的数据预测出正确的目标值,分类的目的是对给定的数据预测出正确的类标,要注意区分这两个概念,其实我在刚接触机器学习的时候经常把这两个概念弄混。那么,对于线性回归,就是实现对给定数据目标值的预测过程。

那么对于给定的训练数据 X=[x⃗ 1,x⃗ 2,,x⃗ m]T X = [ x → 1 , x → 2 , … , x → m ] T ,其中 x⃗ i={ xi1,xi2,xi3,,xin}T x → i = { x i 1 , x i 2 , x i 3 , … , x i n } T 。对应的,这些训练数据的目标值是 y⃗ ={ y1,y2,y3,,ym} y → = { y 1 , y 2 , y 3 , … , y m } 。一般的,我们通过所给定的训练数据及对应的目标值来求解线性回归的参数 θ⃗ ={ θ1,θ2,θ3,,θn}T θ → = { θ 1 , θ 2 , θ 3 , … , θ n } T 。具体的,我们通过定义损失函数 Jx⃗ i(θ⃗ ) J x → i ( θ → ) 来实现对线性回归参数的求解,损失函数定义如下:

Jx⃗ i(θ⃗ )=12(x⃗ Tiθyi)2(1) (1) J x → i ( θ → ) = 1 2 ( x → i T θ − y i ) 2

记住,在机器学习里面,向量的默认是列向量形式,所以上述的 T T 表示转置,因为我们写的时候写成了横向量的形式。同样在做向量乘积运算时,也应该对左边的向量加上转置,这样向量乘积才会得到一个值。

那么要最小化这个损失函数,我们可以采用随机梯度下降(Stochastic Gradient Descent)或者批梯度下降(Batch Gradient Descent),那么对参数向量 θ 中的每一维参数求偏导,再根据学习率来进行参数地更新,具体如下:

Jx⃗ i(θ⃗ )θj=2×12×(x⃗ Tiθyi)×xij=(x⃗ Tiθyi)×xij(2) (2) ∂ J x → i ( θ → ) ∂ θ j = 2 × 1 2 × ( x → i T θ − y i ) × x i j = ( x → i T θ − y i ) × x i j

那么,对于参数 θj θ j 的更新,批梯度下降算法如下所示:
Repeat until convergence{
          θj=θjη1mmi=1((x⃗ Tiθyi)×xij)                     θ j = θ j − η 1 m ∑ i = 1 m ( ( x → i T θ − y i ) × x i j ) (for every θj θ j
}
其中, η η 表示学习率。而对于随机梯度下降,算法如下所示:
for i = 1 to m{
                   for j = 1 to n{
            θj=θjη((x⃗ Tiθyi)×xij)                         θ j = θ j − η ( ( x → i T θ − y i ) × x i j )
                   }
}
关于上述两种梯度下降法的区别这里就不详细说明了,这不是本小节讨论的重点,大家可以查阅相关的博客或者书籍。(机器学习可是系统工程啊,要懂得方方面面,菜鸟到专家可得一步一个脚印呢)

上述是基于梯度来求解回归系数的,下面给出基于矩阵求解回归系数的办法,这里不需要多次迭代求解,对于训练数据量少时较为实用。首先,给出矩阵形式的损失函数:

J(θ⃗ )=12(Xθ⃗ y⃗ )T(Xθ⃗ y⃗ )=12(θ⃗ TXTXθ⃗ θ⃗ TXTy⃗ y⃗ TXθ⃗ +y⃗ Ty⃗ )=12tr(θ⃗ TXTXθ⃗ θ⃗ TXT
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值