机器学习西瓜书之线性回归

发布时间:2024年01月21日

一、一元线性回归

1.1 算法原理

目的:仅仅通过一个变量预测因变量
举个例子:仅仅通过发量判断程序员水平
此时表示函数:

y = ω \omega ωx + b

1.2 线性回归中的估计

1.2.1 最小二乘估计

目的:基于军方误差最小化来进行模型求解的方法:
对于函数 y = ω \omega ωx + b ,我们定义如下公式求解误差:

E ( w , b ) = ∑ i = 1 m ( y i ? f ( x i ) ) 2 = ∑ i = 1 m ( y i ? ( w x i + b ) ) 2 = ∑ i = 1 m ( y i ? w x i ? b ) 2 \begin{aligned} E_{(w,b)}& =\sum_{i=1}^{m}\left(y_i-f(x_i)\right)^2 \\ &=\sum_{i=1}^m\left(y_i-(wx_i+b)\right)^2 \\ &=\sum_{i=1}^m\left(y_i-wx_i-b\right)^2 \end{aligned} E(w,b)??=i=1m?(yi??f(xi?))2=i=1m?(yi??(wxi?+b))2=i=1m?(yi??wxi??b)2?

从几何角度理解就是当前数据点的y坐标值跟用于拟合的函数上同横坐标对应的纵坐标的差值的平方。

1.2.2 极大似然估计

目的:用于估计概率分布的参数值,个人感觉有点像生物学中的抽样调查。
举个例子:要调查学校中的雌性生物雄性生物的比例,并不是将所有生物都捉起来,而是抽取其中的一部分进行统计。
公式如下:

L ( θ ) = ∏ i = 1 n P ( x i ; θ ) L(\theta)=\prod_{i=1}^nP(x_i;\theta) L(θ)=i=1n?P(xi?;θ)

其中 θ \theta θ是未知数,这个概率是关于 θ \theta θ的函数,称L( θ \theta θ)为样本的似然函数。使得函数取到最大值 θ ? \theta^* θ?就是 θ \theta θ的估计值。

1.3 求解 ω \omega ωb

大家都知道机器学习问题主要解决的就是优化问题,由此衍生出来的数学理论目的也是求解优化问题。

先验知识

凸集:集合 D ? R n D\subset\mathbb{R}^n D?Rn,如果对任意的 x , y ∈ D x,\boldsymbol{y}\in D x,yD与任意的 α ∈ [ 0 , 1 ] \alpha\in[0,1] α[0,1], 有 α x + ( 1 ? α ) y ∈ D \alpha\boldsymbol{x}+(1-\alpha)\boldsymbol{y}\in D αx+(1?α)yD
梯度:梯度 (多元函数的一阶导数) : 设n元函数 f ( x ) f(\boldsymbol{x}) f(x)对自变量 x = ( x 1 , x 2 , . . . , x n ) T \boldsymbol{x}=(x_1,x_2,...,x_n)^{\mathrm{T}} x=(x1?,x2?,...,xn?)T的各分量 x i x_i xi?的偏导数 ? f ( x ) ? x i ( i = 1 , . . . , n ) \frac{\partial f(x)}{\partial x_i}(i=1,...,n) ?xi??f(x)?(i=1,...,n)都存在,则称函数 f ( x ) f(\boldsymbol{x}) f(x) x x x处一阶可导,并称向量 ? f ( x ) = [ ? f ( x ) ? x 1 ? f ( x ) ? x 2 ? ? f ( x ) ? x n ] \left.\nabla f(\boldsymbol{x})=\left[\begin{array}{c}\frac{\partial f(\boldsymbol{x})}{\partial x_1}\\\frac{\partial f(\boldsymbol{x})}{\partial x_2}\\\vdots\\\frac{\partial f(\boldsymbol{x})}{\partial x_n}\end{array}\right.\right] ?f(x)= ??x1??f(x)??x2??f(x)???xn??f(x)?? ? 为函数 f ( x ) f(\boldsymbol{x}) f(x) x \boldsymbol{x} x处的一阶导数或梯度。
这里我们一般就使用列矩阵(分母型)

求解

凸充分性定理:若 f ˙ : R n → R \dot{f}:\mathbb{R}^n\to\mathbb{R} f˙?:RnR是凸函数,且 f ( x ) f(\boldsymbol{x}) f(x)一阶连续可微,则 x ? x^* x?是全局解的充分必要条件是 ? f ( x ? ) = 0 \nabla f(x^*)=\mathbf{0} ?f(x?)=0

所以, ? E ( w , b ) = 0 \nabla E_{(w,b)}=\mathbf{0} ?E(w,b)?=0的点即为最小值点,也即 ? E ( w , b ) = [ ? E ( w , b ) ? w ? E ( w , b ) ? b ] = [ 0 0 ] \left.\nabla E_{(w,b)}=\left[\begin{array}{c}\frac{\partial E(w,b)}{\partial w}\\\frac{\partial E(w,b)}{\partial b}\end{array}\right.\right]=\left[\begin{array}{c}0\\0\end{array}\right] ?E(w,b)?=[?w?E(w,b)??b?E(w,b)??]=[00?]

先对 b b b进行求导和化简

? E ( w , b ) ? b = 2 ( m b ? ∑ i = 1 m ( y i ? w x i ) ) = 0 m b ? ∑ i = 1 m ( y i ? w x i ) = 0 b = 1 m ∑ i = 1 m ( y i ? w x i ) b = 1 m ∑ i = 1 m y i ? w ? 1 m ∑ i = 1 m x i = y ˉ ? w x ˉ \begin{gathered} \frac{\partial E_{(w,b)}}{\partial b} =2\left(mb-\sum_{i=1}^m\left(y_i-wx_i\right)\right)=0 \\ mb-\sum_{i=1}^{m}{(y_i-wx_i)}=0 \\ b=\frac{1}{m}\sum_{i=1}^{m}(y_{i}-wx_{i})\\ b=\frac1m\sum_{i=1}^my_i-w\cdot\frac1m\sum_{i=1}^mx_i=\bar{y}-w\bar{x} \end{gathered} ?b?E(w,b)??=2(mb?i=1m?(yi??wxi?))=0mb?i=1m?(yi??wxi?)=0b=m1?i=1m?(yi??wxi?)b=m1?i=1m?yi??w?m1?i=1m?xi?=yˉ??wxˉ?

b = y ˉ ? w x ˉ b=\bar{y}-w\bar{x} b=yˉ??wxˉ代入上式可得:

w ∑ i = 1 m x i 2 = ∑ i = 1 m y i x i ? ∑ i = 1 m ( y ˉ ? w x ˉ ) x i \begin{gathered}w\sum_{i=1}^mx_i^2=\sum_{i=1}^my_ix_i-\sum_{i=1}^m(\bar{y}-w\bar{x})x_i\end{gathered} wi=1m?xi2?=i=1m?yi?xi??i=1m?(yˉ??wxˉ)xi??

进一步推导可以得到:

w = ∑ i = 1 m y i x i ? x ˉ ∑ i = 1 m y i ∑ i = 1 m x i 2 ? 1 m t = ∑ i = 1 m y i ( x i ? x ˉ ) ∑ i = 1 m x i 2 ? 1 m t 1 ∑ i = 1 m x i ) 2 ( ∑ i = 1 m x i ) 2 w=\frac{\sum_{i=1}^my_ix_i-\bar{x}\sum_{i=1}^my_i}{\sum_{i=1}^mx_i^2-\frac1{mt}}=\frac{\sum_{i=1}^my_i(x_i-\bar{x})}{\sum_{i=1}^mx_i^2-\frac1{mt}\frac1{\sum_{i=1}^mx_i)^2}(\sum_{i=1}^mx_i)^2} w=i=1m?xi2??mt1?i=1m?yi?xi??xˉi=1m?yi??=i=1m?xi2??mt1?i=1m?xi?)21?(i=1m?xi?)2i=1m?yi?(xi??xˉ)?

二、多元线性回归

2.1 算法原理

在一元线性回归的基础上加了多值离散特征
举个栗子:在前面的通过发亮判断程序员水平的基础上增加了其他变量,比如增加了颜值(好、差)、代码量项目经历(少、中、多)等。
此时原来的函数变成了:

y = ω 1 \omega_1 ω1?x1 + ω 2 \omega_2 ω2?x2 + ω 3 \omega_3 ω3?x3 + ω 4 \omega_4 ω4?x4 + ω 5 \omega_5 ω5?x5 + ω 6 \omega_6 ω6?x6 + b

2.2 公式推导

对于多元变量,我们为了能够用numpy库进行运算加速,采用向量表达的方式。

f ( x i ) = w T x i + b f(\boldsymbol{x}_i)=\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i+b f(xi?)=wTxi?+b

也就是:

f ( x i ) = w 1 x i 1 + w 2 x i 2 + . . . + w d x i d + w d + 1 ? 1 f\left(\boldsymbol{x}_{i}\right)=w_{1}x_{i1}+w_{2}x_{i2}+...+w_{d}x_{id}+w_{d+1}\cdot1 f(xi?)=w1?xi1?+w2?xi2?+...+wd?xid?+wd+1??1

由最小二乘法可得 E w ^ = ∑ i = 1 m ( y i + f ( x ^ i ) ) 2 = ∑ i = 1 m ( y i ? w ^ T x ^ i ) 2 \begin{aligned}\text{由最小二乘法可得}\\E_{\hat{\boldsymbol{w}}}&=\sum_{i=1}^m{(y_i+f(\hat{\boldsymbol{x}}_i))^2}=\sum_{i=1}^m\left(y_i-\hat{\boldsymbol{w}}^\mathrm{T}\hat{\boldsymbol{x}}_i\right)^2\end{aligned} 由最小二乘法可得Ew^??=i=1m?(yi?+f(x^i?))2=i=1m?(yi??w^Tx^i?)2?

接下来就是求解 ω ^ ? {\hat\omega}^* ω^?使得这个函数取最值。(证明过程略,本人太菜暂时还没懂>_<)

文章来源:https://blog.csdn.net/weixin_73074012/article/details/135721442
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。