六游的博客小站
线性回归算法
发布于: 2019-03-04 更新于: 2019-03-31 阅读次数: 

LinearRegression的思想

线性回归是用来解决回归类问题的最简单最基础的算法,虽然简单,但是它也是之后逻辑回归,多项式回归等复杂算法的基础。我相信大部分人在高中都已经接触过简单的一元线性回归,那就先让我们从简单的一元线性回归开始,来感受一下线性回归算法的主要思想。首先我们拿出一组数据,这些数据只具有一个特征,然后假设这些特征值与结果之间具有某种线性关系,我们试图找出一条直线,来最大拟合这组数据,从而达到预测的目的。

1

假设现在我们已经找到了这条直线,就是图中的那一条直线,那么要使这条直线最大拟合训练数据,我们就需要使真实数据的值与直线预测的值之间的差距达到最小,我们可以定义如下损失函数(loss function)

$$\sum^{m}_{i = 1}{|\hat{y}^{(i)}-y^{(i)}|}$$

我们的目的即使找到这个损失函数最小时所对应的a,b,但是显然,含有绝对值的式子是不可导的,所以我们想到了一个很简单的方法—用平方

$$\sum^{m}{i = 1}{(y^{(i)}-\hat{y}^{(i)})^{2}} = \sum^{m}{i = 1}{(y^{(i)}-ax^{(i)}-b)^{2}}$$

对以上的式子分别对a、b求导即可得出最小二乘法公式,求导过程我们不再一一赘述。

2

到这里我们已经得到了式子中的所有未知数,现在我们就可以直接把事物的特征值代入预测结果了。

简单一元回归的向量化计算

我们再对最小二乘法中的a的计算公式加以观察可以发现,式子的分子分母都是可以看作两个向量的点乘结果,于是我们可以用向量化的方法优化计算过程,减少算法拟合所需要的时间。

3

评价线性回归的指标

  • 均方根误差RMSE(均方根误差MSE的开根)

4

  • 平均绝对误差MAE
    5
  • R Squared这个指标是在线性回归中用的最广泛的指标。R Squared具有一下特点:
    1.R^2 <= 1
    2.R^2越大越好,当预测模型不犯任何错误的时候R^ = 1
    3.当我们的模型等于基准模型的时候,R^2=0
    6

多元线性回归与正规方程解

以上我们了解了简单一元线性回归的思路与实现。那么我们很容易能类比得出多元线性回归的预测表达式的形式

$$\hat{y}^{(i)} = \theta_{0}+\theta_{1}X_{1}^{(i)}+\theta_{2}X_{2}^{(i)}+…+\theta_{n}X_{n}^{(i)}$$

式子中的θ0代表截距,X是物体的特征值向量,为了统一,我们虚拟出来一个X0,使它与截距相乘,这样上面的式子就可以表示成一个θ系数向量与一个X特征值向量的星乘(*)θ代表参数向量,Xb代表物体的特征值向量

$$\hat{y}^{(i)} = \theta_{0}X_{0}^{(i)}+\theta_{1}X_{1}^{(i)}+\theta_{2}X_{2}^{(i)}+…+\theta_{n}X_{n}^{(i)}$$

$$\hat{y}^{(i)} = X_b*\theta$$

7

求解上面的损失函数总体思想和最小二乘法类似,但是步骤比较繁琐,且需要较高阶的线性代数的知识,所以这里就不一一证明,我们直接得出最后的答案,也就是正规方程解

8

部分底层代码实现

在这里我只给出简单一元线性回归的算法手写实现,多元的原理一致,直接把公式代入即可

9

更多关于线性回归的思考

--- 本文结束 The End ---