【机器学习】线性回归——最小二乘法(理论+图解+公式推导)

简介: 【机器学习】线性回归——最小二乘法(理论+图解+公式推导)

2021人工智能领域新星创作者,带你从入门到精通,该博客每天更新,逐渐完善机器学习各个知识体系的文章,帮助大家更高效学习。


一、概述

在生活实际中经常遇到一些情况,比如根据公司内部一些人的工资待遇去预测一个将从事相同工作人的工资,我们需要根据已有数据来对未来的数据进行推测。

在高中时候我们学过最小二乘法就是求 a ∗ 和 b ∗ a^*和b^*ab 去拟合一条直线,来最大程度的是我们的样本点落在该直线上。

由上图,显然我们希望的是找到一条直线使所以的样本点尽可能靠近该直线,即每个样本点到直线的距离最短,其实这么说还不太对,它不是到直线的距离最短,而是到与该样本点相同x点的y值的距离最短,如果是到直线的距离最短没有几何意义,如果是竖直距离,它可以表示我们预测值和真实值之间的一种离散程度,显然这个差值越小越好。

二、最小二乘估计

根据上面的理解这就引出了我们的损失函数,也就是最小二乘估计:

在给出公式之前,我们先给出一些约定,为了下面叙述方便:

  • x i x_ixi:每个样本为列向量,形状为(n,1)
  • X:样本矩阵,为(m,n)

注意:

X = [ x 1 T x 2 T . . . x m T ] = [ x 11 x 12 ⋯ x 1 n x 21 x 22 ⋯ x 2 n ⋮ ⋮ ⋱ ⋮ x m 1 x m 2 ⋯ x m n ] X=

xT1xT2...xTm[x1Tx2T...xmT]

\\=

x11x21xm1x12x22xm2x1nx2nxmn[x11x12⋯x1nx21x22⋯x2n⋮⋮⋱⋮xm1xm2⋯xmn]

X=x1Tx2T...xmT=x11x21xm1x12x22xm2x1nx2nxmn

  • w:为列向量,形状为(n,1)

我们下面公式推导的时候没有b,只是用了 y = X W y=XWy=XW ,这只是为了方便,其实可以把b放在X中和W向量中一起计算也可以,这样就变成了:

X = [ x 11 x 12 ⋯ x 1 n 1 x 21 x 22 ⋯ x 2 n 1 ⋮ ⋮ ⋱ ⋮ x m 1 x m 2 ⋯ x m n 1 ] X=

x11x21xm1x12x22xm2x1nx2nxmn111[x11x12⋯x1n1x21x22⋯x2n1⋮⋮⋱⋮xm1xm2⋯xmn1]

X=x11x21xm1x12x22xm2x1nx2nxmn111

W = [ w 1 w 2 ⋮ w n w 0 ] W=

w1w2wnw0[w1w2⋮wnw0]

W=w1w2wnw0

如果把两个矩阵这样写,其实是和 X W + b = Y XW+b=YXW+b=Y 是等价的。

L ( w ) = ∑ i = 1 m ∣ ∣ w T x i − y i ∣ ∣ 2 = ∑ i = 1 m ( w T x i − y i ) 2 = [ w T x 1 − y 1 w T x 2 − y 2 . . . w T x m − y m ] [ w T x 1 − y 1 w T x 2 − y 2 . . . w T x m − y m ] = [ W T X T − Y T ] [ X W − Y ] = W T X T X W − Y T X W − W T X T Y + Y T Y = W T X T X W − 2 W T X T Y + Y T Y L(w)=\sum_{i=1}^m||w^Tx_i-y_i||^2\\=\sum_{i=1}^m(w^Tx_i-y_i)^2\\=

[wTx1y1wTx2y2...wTxmym][wTx1−y1wTx2−y2...wTxm−ym]

wTx1y1wTx2y2...wTxmym[wTx1−y1wTx2−y2...wTxm−ym]

\\=[W^TX^T-Y^T][XW-Y]\\=W^TX^TXW-Y^TXW-W^TX^TY+Y^TY\\=W^TX^TXW-2W^TX^TY+Y^TYL(w)=i=1mwTxiyi2=i=1m(wTxiyi)2=[wTx1y1wTx2y2...wTxmym]wTx1y1wTx2y2...wTxmym=[WTXTYT][XWY]=WTXTXWYTXWWTXTY+YTY=WTXTXW2WTXTY+YTY

因为我们采用的是最小二乘估计,所以我们希望我们的损失函数最小,所以我们求取函数导数为0的点,就是我们的最优解,有人可能有疑问,导数为0的点不一定是最值点,这里说明一下,因为我们的损失函数为凸函数,有因为凸函数是可优化的,所以该函数导数为0的点一定是最值点。

你可以想象二次函数 y = x 2 y=x^2y=x2 ,他就是一个凸函数,显然它的导数为0的点一定是我们的最小值点,这里的损失函数为什么是最小值不予证明。

所以我们的最优解就为:

w ∗ = a r g m i n w L ( w ) w^*=argmin_wL(w)w=argminwL(w)

此时就需要对函数进行求导,令其导数为0

∂ L ( w ) ∂ w = 2 X T X W − 2 X T Y = 0 \frac{\partial L(w)}{\partial w}=2X^TXW-2X^TY=0wL(w)=2XTXW2XTY=0

这里可能有人不会进行矩阵求导,我来讲两种方式,第一种就是损失函数不采用矩阵方式进行表达,用求和符号将其变成每个样本的损失然后求和,针对于每个样本对其求导,然后讲每个样本的导数相加,这样就避免了矩阵的求导。

我采用的是第二种方式:

我们讲原矩阵写成微分的形式:

d L ( w ) = t r ( ∂ L ∂ w T d ( w ) ) = d ( W T X T X W − Y T X W − W T X T Y + Y T Y = W T X T X W − 2 W T X T Y + Y T Y ) = d ( W T ) X T X W + W T X T X d ( W ) − 2 d ( W T ) X T Y = X T X W d ( W T ) + W T X T X d ( W ) − 2 X T Y d ( W T ) dL(w)=tr(\frac{\partial L}{\partial w}^Td(w))=d(W^TX^TXW-Y^TXW-W^TX^TY+Y^TY\\=W^TX^TXW-2W^TX^TY+Y^TY)\\=d(W^T)X^TXW+W^TX^TXd(W)-2d(W^T)X^TY\\=X^TXWd(W^T)+W^TX^TXd(W)-2X^TYd(W^T)dL(w)=tr(wLTd(w))=d(WTXTXWYTXWWTXTY+YTY=WTXTXW2WTXTY+YTY)=d(WT)XTXW+WTXTXd(W)2d(WT)XTY=XTXWd(WT)+WTXTXd(W)2XTYd(WT)

所以

∂ L ( w ) ∂ w = 2 X T X W − 2 X T Y = 0 \frac{\partial L(w)}{\partial w}=2X^TXW-2X^TY=0wL(w)=2XTXW2XTY=0

这样我们就求出了最优解w:

w ∗ = ( X T X ) − 1 X T Y w^*=(X^TX)^{-1}X^TYw=(XTX)1XTY

然后我们就可以构造决策函数:

f ( x ) = ( w ∗ ) T x f(x)=(w^*)^Txf(x)=(w)Tx

使用该函数就可以拟合我们的每一个样本点。


目录
相关文章
|
28天前
|
机器学习/深度学习 人工智能 算法
探索机器学习:从线性回归到深度学习
本文将带领读者从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将通过代码示例,展示如何实现这些算法,并解释其背后的数学原理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和知识。让我们一起踏上这段激动人心的旅程吧!
|
2月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的线性回归模型
本文深入探讨了机器学习中广泛使用的线性回归模型,从其基本概念和数学原理出发,逐步引导读者理解模型的构建、训练及评估过程。通过实例分析与代码演示,本文旨在为初学者提供一个清晰的学习路径,帮助他们在实践中更好地应用线性回归模型解决实际问题。
|
2月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
8月前
|
机器学习/深度学习 算法 TensorFlow
机器学习算法简介:从线性回归到深度学习
【5月更文挑战第30天】本文概述了6种基本机器学习算法:线性回归、逻辑回归、决策树、支持向量机、随机森林和深度学习。通过Python示例代码展示了如何使用Scikit-learn、statsmodels、TensorFlow库进行实现。这些算法在不同场景下各有优势,如线性回归处理连续值,逻辑回归用于二分类,决策树适用于规则提取,支持向量机最大化类别间隔,随机森林集成多个决策树提升性能,而深度学习利用神经网络解决复杂模式识别问题。理解并选择合适算法对提升模型效果至关重要。
260 4
|
2月前
|
机器学习/深度学习 数据采集 算法
探索机器学习中的线性回归
【10月更文挑战第25天】本文将深入浅出地介绍线性回归模型,一个在机器学习领域中广泛使用的预测工具。我们将从理论出发,逐步引入代码示例,展示如何利用Python和scikit-learn库实现一个简单的线性回归模型。文章不仅适合初学者理解线性回归的基础概念,同时也为有一定基础的读者提供实践指导。
|
3月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
探索机器学习:从线性回归到深度学习
在这篇文章中,我们将一起踏上一场激动人心的旅程,穿越机器学习的广阔天地。我们将从最基本的线性回归开始,逐步深入到复杂的深度学习模型。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和深入的理解。让我们一起探索这个充满无限可能的世界吧!
|
3月前
|
机器学习/深度学习 API
机器学习入门(七):线性回归原理,损失函数和正规方程
机器学习入门(七):线性回归原理,损失函数和正规方程
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习:从线性回归到深度学习
【9月更文挑战第4天】在这篇文章中,我们将深入探讨机器学习的世界,从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将通过实际的代码示例,揭示这些模型背后的数学原理,以及如何在现实世界的问题中应用它们。无论你是初学者还是有经验的数据科学家,这篇文章都将为你提供新的视角和深入的理解。
|
5月前
|
机器学习/深度学习
【机器学习】准确率、精确率、召回率、误报率、漏报率概念及公式
机器学习评估指标中的准确率、精确率、召回率、误报率和漏报率等概念,并给出了这些指标的计算公式。
958 0
|
5月前
|
机器学习/深度学习 算法
【机器学习】简单解释贝叶斯公式和朴素贝叶斯分类?(面试回答)
简要解释了贝叶斯公式及其在朴素贝叶斯分类算法中的应用,包括算法的基本原理和步骤。
85 1