那么如何了解线性回归的原理和算法呢?

简介: 线性回归可以说是机器学习中最基本的问题类型了,这里就对线性回归的原理和算法做一个小结。

线性回归可以说是机器学习中最基本的问题类型了,这里就对线性回归的原理和算法做一个小结。

一、线性回归的模型函数和损失函数

线性回归遇到的问题一般是这样的。我们有m个样本,每个样本对应于n维特征和一个结果输出,如下:

image.png

我们的问题是,对于一个新的

image.png

他所对应的yx是多少呢? 如果这个问题里面的y是连续的,则是一个回归问题,否则是一个分类问题。

对于n维特征的样本数据,如果我们决定使用线性回归,那么对应的模型是这样的:

image.png

其中 为模型参数, 为每个样本的n个特征值。 这个表示可以简化,我们增加一个特征 ,这样
image.png

进一步用矩阵形式表达更加简洁如下:

image.png

其中, 假设函数 为 的向量, θ为 的向量, 里面有n个代数法的模型参数。 X为 维的矩阵,m代表样本的个数,n代表样本的特征数。

得到了模型,我们需要求出需要的损失函数,一般线性回归我们用均方误差作为损失函数。损失函数的代数法表示如下:

image.png

进一步用矩阵形式表达损失函数:

image.png

由于矩阵法表达比较的简洁,后面我们将统一采用矩阵方式表达模型函数和损失函数。

二、线性回归的算法

对于线性回归的损失函数

image.png

我们常用的有两种方法来求损失函数最小化时候的θ参数:

一种是梯度下降法,一种是最小二乘法。

由于已经在其它篇中单独介绍了梯度下降法和最小二乘法,可以点蓝字到对应的文章链接去阅读。

如果采用梯度下降法,则θ的迭代公式是这样的:
image.png

通过若干次迭代后,我们可以得到最终的θ的结果

如果采用最小二乘法,则θ的结果公式如下:

image.png

当然线性回归,还有其他的常用算法,比如牛顿法和拟牛顿法,这里不详细描述。

三、线性回归的推广:多项式回归

回到我们开始的线性模型,

image.png

如果这里不仅仅是x的一次方,比如增加二次方,那么模型就变成了多项式回归。

这里写一个只有两个特征的p次方多项式回归的模型:

image.png

我们令,这样我们就得到了下式:

image.png

可以发现,我们又重新回到了线性回归,这是一个五元线性回归,可以用线性回归的方法来完成算法。

对于每个二元样本特征,我们得到一个五元样本特征,通过这个改进的五元样本特征,我们重新把不是线性回归的函数变回线性回归。

image.png

四、线性回归的推广:广义线性回归

在上一节的线性回归的推广中,我们对样本特征端做了推广,这里我们对于特征y做推广。比如我们的输出Y不满足和X的线性关系,但是lnY
和X满足线性关系,模型函数如下:

image.png

这样对与每个样本的输入y,我们用去lny
对应, 从而仍然可以用线性回归的算法去处理这个问题。我们把lny
一般化,假设这个函数是单调可微函数,则一般化的广义线性回归形式是:

image.png

这个函数我们通常称为联系函数。

五、线性回归的正则化

为了防止模型的过拟合,我们在建立线性模型的时候经常需要加入正则化项。一般有L1正则化和L2正则化。

线性回归的L1正则化通常称为Lasso回归,它和一般线性回归的区别是在损失函数上增加了一个L1正则化的项,L1正则化的项有一个常数系数α来调节损失函数的均方差项和正则化项的权重,具体Lasso回归的损失函数表达式如下:

image.png

其中,n为样本个数,α为常数系数,需要进行调优。为L1范数。

Lasso回归可以使得一些特征的系数变小,甚至还是一些绝对值较小的系数直接变为0。增强模型的泛化能力。

Lasso回归的求解办法一般有坐标轴下降法(coordinate descent)和最小角回归法(Least Angle Regression)。

线性回归的L2正则化通常称为Ridge回归,它和一般线性回归的区别是在损失函数上增加了一个L2正则化的项,和Lasso回归的区别是Ridge回归的正则化项是L2范数,而Lasso回归的正则化项是L1范数。具体Ridge回归的损失函数表达式如下:

image.png

其中α为常数系数,需要进行调优。为L2范数。

Ridge回归在不抛弃任何一个特征的情况下,缩小了回归系数,使得模型相对而言比较的稳定,但和Lasso回归比,这会使得模型的特征留的特别多,模型解释性差。

Ridge回归的求解比较简单,一般用最小二乘法。这里给出用最小二乘法的矩阵推导形式,和普通线性回归类似。

令的导数为0,得到下式:

image.png

整理即可得到最后的θ的结果:

image.png

其中E为单位矩阵。

除了上面这两种常见的线性回归正则化,还有一些其他的线性回归正则化算法,区别主要就在于正则化项的不同,和损失函数的优化方式不同,这里就不累述了。

目录
相关文章
|
25天前
|
机器学习/深度学习 存储 算法
神经网络分类算法原理详解
神经网络分类算法原理详解
47 0
|
25天前
|
机器学习/深度学习 存储 算法
sklearn应用线性回归算法
sklearn应用线性回归算法
24 0
|
25天前
|
机器学习/深度学习 数据采集 算法
线性回归算法是什么
线性回归算法是什么
26 0
|
1月前
|
算法
经典控制算法——PID算法原理分析及优化
这篇文章介绍了PID控制算法,这是一种广泛应用的控制策略,具有简单、鲁棒性强的特点。PID通过比例、积分和微分三个部分调整控制量,以减少系统误差。文章提到了在大学智能汽车竞赛中的应用,并详细解释了PID的基本原理和数学表达式。接着,讨论了数字PID的实现,包括位置式、增量式和步进式,以及它们各自的优缺点。最后,文章介绍了PID的优化方法,如积分饱和处理和微分项优化,以及串级PID在电机控制中的应用。整个内容旨在帮助读者理解PID控制的原理和实际运用。
87 1
|
13天前
|
机器学习/深度学习 自然语言处理 算法
|
1天前
|
数据可视化 算法
【视频】Copula算法原理和R语言股市收益率相依性可视化分析-1
【视频】Copula算法原理和R语言股市收益率相依性可视化分析
12 0
|
6天前
|
机器学习/深度学习 算法 C++
R语言贝叶斯MCMC:GLM逻辑回归、Rstan线性回归、Metropolis Hastings与Gibbs采样算法实例
R语言贝叶斯MCMC:GLM逻辑回归、Rstan线性回归、Metropolis Hastings与Gibbs采样算法实例
30 0
|
20天前
|
存储 算法 编译器
【数据结构】栈算法(算法原理+源码)
【数据结构】栈算法(算法原理+源码)
【数据结构】栈算法(算法原理+源码)
|
25天前
|
缓存 算法 关系型数据库
深度思考:雪花算法snowflake分布式id生成原理详解
雪花算法snowflake是一种优秀的分布式ID生成方案,其优点突出:它能生成全局唯一且递增的ID,确保了数据的一致性和准确性;同时,该算法灵活性强,可自定义各部分bit位,满足不同业务场景的需求;此外,雪花算法生成ID的速度快,效率高,能有效应对高并发场景,是分布式系统中不可或缺的组件。
深度思考:雪花算法snowflake分布式id生成原理详解
|
1月前
|
算法
PID算法原理分析及优化
这篇文章介绍了PID控制方法,一种广泛应用于机电、冶金等行业的经典控制算法。PID通过比例、积分、微分三个部分调整控制量,以适应系统偏差。文章讨论了比例调节对系统响应的直接影响,积分调节如何消除稳态误差,以及微分调节如何减少超调。还提到了数字PID的实现,包括位置式、增量式和步进式,并探讨了积分饱和和微分项的优化策略。最后,文章简述了串级PID在电机控制中的应用,并强调了PID控制的灵活性和实用性。
39 1

热门文章

最新文章