DataWhale吃瓜教程-task02线性模型

第三章——线性模型

1. 问题的引入——一元线性模型

        如果给出一些属性值,来预测一些结果时,(比如通过发际线高度来预测计算机水平)。线性模型希望学得一个属性值的线性组合来进行对结果的预测。

DataWhale吃瓜教程-task02线性模型_第1张图片

        为什么要学习一个线性组合呢?试想这样一个场景,现在有一个人我并不知道他的计算机水平,但是我可以测到他的发际线高度。那么,如果说我们利用模型“学习”到了橙色直线的表达式,也就是学到了“计算机水平”随着“发际线高度”的变化而取值不同的这样一个函数,我是不是就可以通过发际线高度来“推测”他的计算机水平了?

DataWhale吃瓜教程-task02线性模型_第2张图片

        于是,一元线性回归模型的数学表达式为:

f(x_{i})=\omega x_{i}+b

        x_i表示属性值(比如本例中的发际线高度),f(x_i)表示预测得到的结果(本例中的计算机水平),已知的真实值用y_i来表示。

        那么如何确定\omega和b,使得模型预测的结果最接近真实值呢?我们对于未知的样本,是无法得知真实值的,所以就需要通过已知的样本建模,使得得到的模型能对已知样本做最好的预测,也就是说需要求得模型,使得f(x_i)更接近y_i

         问题的关键在于如何衡量f(x)y之间的差别。均方误差是回归任务中最常用的性能度量,所以可以通过使均方误差最小化来求得\omega和b。

(\omega^*,b^*)=argmin\sum_{i=1}^{m}(y_i-\omega x_i-b)^2

 (y_i-\omega x_i-b)^2是预测值与真实值之间的“距离”的平方。\frac{1}{m}\sum_{i=1}^{m}(y_i-\omega x_i-b)^2表示方差。 

与高等数学里极值点的求法类似,分别对w和b求导,并令式子等于0即可求得w和b的最优值。

\frac{\partial E(\omega,b)}{\partial \omega}=2(\omega\sum_{i=1}^{m} x_i^2-\sum_{i=1}^{m}(y_i-b)*x_i)

\frac{\partial E(\omega,b)}{\partial b}=2(mb-\sum_{i=1}^{m}(y_i-\omega x_i))

2. 多元线性回归

如果把例子中的单个属性扩展到多个属性,就得到了多元线性回归。

f(x)=\omega_{_1}x_{_1}+\omega_{_2}x_{_2}+...+\omega_{_d}x_{_d}+b

由线性代数的知识我们知道,向量的内积可以写成:

\begin{pmatrix} \omega _{1} &\omega _{2} &...& \omega _{d} \end{pmatrix} \begin{pmatrix} x _{1}\\ x _{2}\\ ...\\ x _{d}\\ \end{pmatrix}+b=\omega^{T}x+b

那么多元线性回归的函数就是

f(x_i)=\omega^Tx_i+b

我们试图学得上面的表达式,使f(x_i)接近y_i。如果把\omegab吸收进入向量形式,写成\hat{\omega}=(\omega;b)

,再把X写成最后一列为1的形式,标记写成列向量y=(y_1;y_2;...;y_m)

那么求方差最小化的式子变为

\hat{\omega^*}=argmin(y-X\hat{\omega})^T(y-X\hat{\omega})

利用矩阵的求导法则 ,对\hat{\omega}求导得到

\frac{\partial (E\hat{\omega})}{\partial \hat{\omega}}=2X^T(X\hat{\omega}-y)

 令上式为0得到最优解\hat{\omega}

你可能感兴趣的:(机器学习,线性回归)