线性回归

线性回归是利用回归分析来确定各变量之间关系的算法,属于线性模型。当变量之间的关系满足如下表达式:$$w_1x_1+w_2x_2+ldots+w_mx_m+w_0=0tag{1}$$即表明变量$vec{x}$满足线性关系。在建立这种关系后只要确定$vec{w}$,线性模型便得以确定。给定数据集$D={(vec{x_1},y_1),(vec{x_2},y_2),ldots,(vec{x_m},y_m)}$,其中$vec{x_i}={x_i^1;x_i^2;ldots;x_i^n}$。$vec{x_i}$是样本特征,$y_i$是样本标记。线性回归即是找到$vec{x}$与$y$存在的线性关系,从而对新的特征$vec{x_{new}}$,来对其标记$y_{new}$进行预测。线性回归所假设的模型为:$$h(vec{x})=vec{w}^Tvec{x}+w_0tag{2}$$即输入样本特征$vec{x}$,通过线性模型$h(vec{x})$来对其标记$y$进行预测。考虑最简单的一元线性回归:$$h(x_i)=wx_i+w_0tag{3}$$使用平方误差来衡量模型预测值与真实值之间的差距。式(3)中,模型对于数据集中$x_i$的预测值为$h(x_i)$,样本$x_i$的真实值为$y$,则$h(x_i)-y$表达了预测值与真实值之间的距离。使用最小二乘法来对式(3)进行参数估计,对其平方误差进行最小化来求解$w$与$w_0$,记损失函数为$J$:$$begin{align}​J(w)&=sum_{i=1}^m(h(x_i)-y_i)^2\&=sum_{i=1}^m(w{x_i}+w_0-y_i)^2tag{4}end{align}$$$J(w)$分别对$w_0$和$w$求偏导,得:$$begin{align}frac{partial{J(w)}}{partial{w_0}}&=2(mw_0-sum_{i=1}^m(y_i-wx_i))tag{5}\frac{partial{J(w)}}{partial{w}}&=2({wsum_{i=1}^mx_i^2-sum_{i=1}^m(y_i-w_0)x_i})tag{6}end{align}$$令式(5)为零,得:$$begin{align}&2(mw_0-sum_{i=1}^m(y_i-wx_i))=0\Rightarrow&mw_0=sum_{i=1}^m(y_i-wx_i))\Rightarrow&w_0=frac{1}{m}sum_{i=1}^m(y_i-wx_i)tag{7}end{align}$$令式(6)为零,得:$$begin{align}&2({wsum_{i=1}^mx_i^2-sum_{i=1}^m(w_0-y_i)})=0\Rightarrow&wsum_{i=1}^mx_i^2=sum_{i=1}^m(w_0-y_i))\Rightarrow&wsum_{i=1}^mx_i^2=sum_{i=1}^mx_iy_i-sum_{i=1}^mw_0x_i\Rightarrow&wsum_{i=1}^mx_i^2=sum_{i=1}^mx_iy_i-sum_{i=1}^m(frac{1}{m}sum_{i=1}^m(y_i-wx_i))x_i\Rightarrow&wsum_{i=1}^mx_i^2=sum_{i=1}^mx_iy_i-sum_{i=1}^mfrac{1}{m}sum_{i=1}^my_i+sum_{i=1}^mx_iwfrac{1}{m}sum_{i=1}^mx_i\Rightarrow&wsum_{i=1}^mx_i^2-wfrac{1}{m}(sum_{i=1}^m)^2=sum_{i=1}^mx_iy_i-frac{1}{m}sum_{i=1}^my_i\Rightarrow&w(sum_{i=1}^mx_i^2-frac{1}{m}(sum_{i=1}^mx_i)^2)=sum_{i=1}^mx_iy_i-sum_{i=1}^mbar{x}y_i\Rightarrow&w=frac{sum_{i=1}^my_i(x_i-bar{x})}{sum_{i=1}^mx_i^2-frac{1}{m}(sum_{i=1}^mx_i)^2}tag{8}end{align}$$式(7)为$w_0$的最优解,式(8)为$w$的最优解。将$w_0$与$w$带入式(3)假设$h$中即可得到拟合数据集的线性回归模型。可以设该模型的损失函数为:$$J(w)=frac{1}{2}sum_{i=1}^m(h(vec{x_i})-y_i)^2$$使损失函数最小化便可使线性模型最大程度拟合数据。使用梯度下降法来进行参数$vec{w}$的求解,具体的,参数$vec{w}$的更新公式为:$w_j:=w_j-alphafrac{partial{J(vec{w})}}{partial{w_j}}$上式中,$alpha$为学习率。$w_j$的更新需要确定$frac{partial{J(vec{w})}}{partial{w_j}}$,对$J(vec{w})$求$w_j$的偏导:$$frac{partial{J(vec{w})}}{partial{w_j}}$$$=$

Continue Reading
Close Menu