机器学习之线性回归极大似然估计法

版权声明:原创文章,转载请注明出处! https://blog.csdn.net/L_15156024189/article/details/85001450

leboop文章,禁止转载!

请阅读《机器学习之矩阵微积分及其性质》和《机器学习之线性回归公式推导》。首先我们还是使用如下的数据:

  feature_1 feature_2   feature_n value
1 x_{11} x_{12} ... x_{1n} y_1
2 x_{21} x_{22} ... x_{2n} y_2

     .

     .

     .

           .

           .

           .

           .

           .

           .

 

           .

           .

           .

           .

           .

           .

m x_{m1} x_{m2} ... x_{mn} y_m

 假设现在y和特征(x_1,x_2,...,x_n)之间不再是简单的线性组合,除了线性关系外,还存在一种噪声,数学表述如下: y=c_0+c_1x_1+...+c_nx_n+\varepsilon,其中\varepsilon服从期望为0,方差为\sigma^2的正态分布,即\varepsilon \sim N(0,\sigma^2).

因为c_0+c_1x_1+...+c_nx_n对于\varepsilon来说是常量,如果\varepsilonx_i之间相互独立,那么y也是一个随机变量,且服从正态分布,又因为y的期望Ey和方差Dy

Ey\\ =E(c_0+c_1x_1+...+c_nx_n+\varepsilon)\\ =E(c_0+c_1x_1+...+c_nx_n)+E\varepsilon\\ =c_0+c_1x_1+...+c_nx_n+0\\ =c_0+c_1x_1+...+c_nx_n

Dy\\ =D(c_0+c_1x_1+...+c_nx_n+\varepsilon)\\ =D(c_0+c_1x_1+...+c_nx_n)+D\varepsilon\\ =0+\sigma^2\\ =\sigma^2

所以y服从的是期望为c_0+c_1x_1+...+c_nx_n,方差为\sigma^2的一个正态分布,即y \sim N(c_0+c_1x_1+...+c_nx_n,\sigma^2)

m次获得的数据代入,有y_i \sim N(c_0+c_1x_{i1}+...+c_nx_{in},\sigma^2)。也就是说每一次获得的数据y_i服从正态分布,那么肯定有人会问,那表格中的y_i是什么?应该这样来理解:y_i是一个服从正态分布的随机变量,而表中的y_i只是一次观察值,而该次观测值为y_i的概率

P(y_i)=f(y_i)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{[y_i-(c_0+c_1x_{i1}+...+c_nx_{in})]^2}{2\sigma^2}}

(正态分布密度函数:f(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu )^2}{2\sigma^2}}

按照《机器学习之线性回归公式推导》一文中符号约定:

m个数据矩阵:

\mathbf{X}=\begin{bmatrix} 1 &x_{11} &... &x_{1n} \\ 1&x_{21} &... &x_{2n} \\ \vdots &\vdots & &\vdots \\ 1&x_{m1} &... &x_{mn} \end{bmatrix}

真实值:

\mathbf{y}=\begin{bmatrix} y_1\\ \vdots\\ y_m \end{bmatrix}

预测值:

\mathbf{\hat{y}}=\begin{bmatrix} \hat{y_1}\\ \vdots\\ \hat{y_m} \end{bmatrix}

系数:

\mathbf{c }=\begin{bmatrix} c_0\\ \vdots\\ c_n \end{bmatrix}

考虑到y_i之间是相互独立的,所以m个观测值取值为\mathbf{y}的概率为

P(\mathbf{y})=\prod_{i=1}^{m}P(y_i).

注意到P(\mathbf{y})是关于\mathbf{c}\sigma^2的函数。直觉告诉我们,使P(\mathbf{y})取最大值的\mathbf{c}\sigma^2应该是我们需要的,从概率统计角度来说,满足P(\mathbf{y})取最大值的\mathbf{c}\sigma^2会使我们的观测数据等于y_i的概率最大,获得像表格这样的数据具有更大的可能性。所以优化问题变为:

                                                                                         \max_{\mathbf{c},\sigma^2}P(\mathbf{y})

现在我们就来求解这个优化问题。

P(\mathbf{y})=\prod_{i=1}^{m}P(y_i)=\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{||\mathbf{y}-\hat{\mathbf{y}}||_2^2}{2\sigma^2}}

两边取对数,有

lnP(\mathbf{y})=\sum_{i=1}^{m}ln(\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{||\mathbf{y}-\hat{\mathbf{y}}||_2^2}{2\sigma^2}})\\ =\sum_{i=1}^{m}(ln\frac{1}{\sqrt{2\pi}\sigma}-\frac{||\mathbf{y}-\hat{\mathbf{y}}||_2^2}{2\sigma^2})

所以优化问题\max_\mathbf{c}P(\mathbf{y})等价于\min_\mathbf{c}||\mathbf{y}-\hat{\mathbf{y}}||^2_2,根据《机器学习之线性回归公式推导》,我们得到\mathbf{c}的估计值\mathbf{\hat{c}}

\mathbf{\hat{c}}=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y}

这个结果与我们未引入噪声项是一样的,但是请注意,这里\mathbf{\hat{c}}只是\mathbf{c}的一个估计值。实际上它是一个由随机变量组成的向量。因为

\mathbf{y}=\mathbf{Xc+\varepsilon },限于CSDN无法用黑体表示向量\varepsilon,暂且记住\varepsilon是一个向量,

\mathbf{\hat{c}}=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y}=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T(\mathbf{Xc+\varepsilon })=\mathbf{c}+(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\varepsilon

所以\mathbf{\hat{c}}确实是一个随机变量,因为这里涉及到比较复杂的概率论知识,暂且不详细讨论。

\max_{\sigma^2}P(\mathbf{y})优化只需要lnP(\mathbf{y})\sigma^2求偏导,所以

\frac{\partial lnP(\mathbf{y})}{\partial \sigma^2}=0

可以求得\sigma^2的估计值\hat{\sigma^2}=||\mathbf{X\hat{c}-y}||_2^2

再次提醒:这里\mathbf{c}\sigma^2都是随机变量,其中\mathbf{c}是由随机变量组成的随机向量。

猜你喜欢

转载自blog.csdn.net/L_15156024189/article/details/85001450