美文网首页
线性回归

线性回归

作者: 人生茫茫好似荒野 | 来源:发表于2020-07-02 17:09 被阅读0次

    线性回归是机器学习中最基础最简单的回归算法了,现在关于线性回归的原理做一个总结。

    关于线性的概念,其实在高中就有了解了,两个变量之间存在一次方函数关系(y = a x + b)即为线性,其图像在平面上是一条直线。

    而线性回归就是对给定的数据,找到一条均方误差最小的直线或者说模型函数。这就是线性回归的本质。

    线性回归的模型函数

    线性回归问题,给定的数据一般如下形式:
    \left[ \begin{matrix} x^{(0)}_1,x^{(0)}_2,...x^{(0)}_n,y_0 \\ x^{(1)}_1,x^{(1)}_2,...x^{(1)}_n,y_1 \\ x^{(2)}_1,x^{(2)}_2,...x^{(2)}_n,y_2 \\ \vdots \\ x^{(m)}_1,x^{(m)}_2,...x^{(m)}_n,y_m \end{matrix} \right]

    其中有m个样本,每个样本对应n维特征和一个输出结果。现在,我们的问题是对于一个新的数据(x_1^{(x)}, x_2^{(x)}, ..., x_n^{(x)}),它对应的结果y_x是多少呢?如果使用线性回归来解决这个问题,那么对应的模型应该如下:

    h_\theta(x_1,x_2,...,x_n)=\theta_0 + \theta_1x_1 +...+ \theta_nx_n

    我们增加一个x_0=1的特征,可以简化成:

    h_\theta(x_0,x_1,...,x_n)=\sum\limits_{i=0}^{n}\theta_ix_i

    其中\theta_i(i=0,1,2,...n)是模型参数,x_i(i=0,1,2,...n)是每个样本的n个特征值。

    用矩阵形式表示上式就是:

    h_\theta(X)=X\theta

    其中X为mxn维的矩阵,\theta为nx1的向量,得到的h_\theta(X)为mx1的向量。m代表样本的个数,n代表样本的特征数。

    正规方程(最小二乘法)求损失函数参数

    线性回归一般采用均方误差作为损失函数,损失函数代数法可以表示为:

    J(\theta_0,\theta_1,...\theta_n) = \sum\limits_{i=1}^m(h_\theta(x_0^{(i)},x_1^{(i)},...x_n^{(i)})-y_i)^2

    用矩阵的方式可以表示为:
    \begin{align} J(\theta) &= ||X\theta-Y||^2_2 \\ &= (X\theta-Y)^T(X\theta-Y) \\ \end{align}
    上式中有两个2,上面的2表示平方,下面的2表示二范数。继续化简得:
    \begin{align} J(\theta) &= (X^T\theta^T-Y^T)(X\theta-Y) \\ &= X^T\theta^TX\theta-X^T\theta^TY-Y^TX\theta+Y^TY \\ &= X^T\theta^TX\theta-(\theta^TY)^T(X^T)^T-Y^TX\theta+Y^TY \\ &= X^T\theta^TX\theta-2Y^TX\theta+Y^TY \end{align}
    要求使损失函数最小时的参数\theta,对\theta进行求导,令导数为0:

    f'(\theta)=2X^TX\theta-2X^TY=0

    化简,求出\theta

    X^TX\theta = X^TY

    (X^TX)^{-1}X^TX\theta=(X^TX)^{-1}X^TY

    \theta=(X^TX)^{-1}X^TY

    梯度下降法求损失函数参数

    梯度下降法的思想:

    (1)对\theta赋值,这个值可以使随机的

    (2)改变\theta的值,使得J(\theta)按梯度下降的方向进行减小

    (3)当J(\theta)下降到无法继续下降时,即J(\theta)\theta的导数为0时,此时\theta即为最佳参数

    采用梯度下降法,\theta的更新规则是:

    \theta = \theta - \alpha X^T(X\theta-Y)

    其中\alpha表示学习率,步长,由人工设置,经过若干次迭代,即可得到\theta的结果。

    线性回归的正则化(Lasso回归和岭回归)

    普通的线性回归容易过拟合,为了防止过拟合,我们在建立线性模型的时候经常需要加入正则化项(正则项的作用是限制系数\theta),于是出现了Lasso回归和岭回归。

    Lasso回归是线性回归的基础上加上L1正则化,它的损失函数是:

    J(\theta)= (X\theta-Y)^T(X\theta-Y)+\alpha ||\theta||_1

    Lasso适用于稀松矩阵(大部分系数为0)

    岭回归是线性回归的基础上加上L2正则化,它的损失函数是:

    J(\theta)= (X\theta-Y)^T(X\theta-Y)+\alpha ||\theta||_2^2

    岭回归适用于数据中存在共线性的情况(非满秩矩阵-奇异矩阵)

    相关文章

      网友评论

          本文标题:线性回归

          本文链接:https://www.haomeiwen.com/subject/ixirqktx.html