百科问答小站 logo
百科问答小站 font logo



如何解释「线性回归」的含义? 第1页

  

user avatar   matongxue 网友的相关建议: 
      

这篇文章是我们机器学习《监督式学习》课程的一篇试读,感兴趣的同学可以查看我们的微信公众号:马同学图解数学,进一步了解课程。

回归大致可以理解为根据数据集 ,拟合出近似的曲线,所以回归也常称为拟合(Fit),像下列右图一样拟合出来是直线的就称为线性回归:

下面就来解释其中的一些细节。

1 线性回归

首先,为什么拟合曲线会被称为回归呢?

1.1 均值回归

“回归”这个词源于弗朗西斯·高尔顿爵士(英文:Sir Francis Galton,1822年2月16日-1911年1月17日):

他发现高个子父亲的儿子身高会矮一些,而矮个子父亲的儿子身高会高一些(否则高个子家族会越来越高,而矮个子家族会越来越矮),也就是说人类的身高都会回到平均值附近,他将这种现象称为均值回归。

1.2 线性回归

高尔顿的研究过程用现在的数学语言来表述就是,首先对一些父子的身高进行了抽样,得到数据集 ;然后根据数据集拟合出一条直线;最后通过该直线就可以对某父亲 的儿子的身高进行预测了:

高尔顿拟合的直线方程为(单位为米):

将方程和 联立,可得:

也就是说这两条直线会交于点 (1.77, 1.77),这说明身高低于1.77米的父亲,他的儿子身高会高一些;而高于1.77米的父亲,他的儿子身高会矮一些。:

所以这条拟合出来的直线,其实就表示了均值回归现象,因此拟合直线的过程被称为 线性回归(Linear Regression)。

2 经验误差函数

下面开始解释高尔顿是如何根据数据集来拟合直线的。先来介绍下线性回归的经验误差是什么。

2.1 假设空间

首先肯定是用直线来进行拟合:

所以假设空间为:

和感知机的假设空间差不多,只是少了 函数。

2.2 数据集

在历史上,高尔顿总共采集了近千个父子身高的数据来拟合。本课为了方便讲解,我们从中抽取了六个(原始数据的单位是“英寸”,这里全部转为了“米”)作为数据集 :

2.3 经验误差

随便找一条假设空间中的直线 ,对于某父亲身高 ,该直线给出的 和真实的儿子身高 是存在距离的,这个距离也称为点与直线的误差,高尔顿用两者差的平方来表示 :

将数据集 中所有点与该直线的误差加起来,再进行算术平均就是该直线在数据集 上的经验误差:

其中 表示该数据集的大小。

3 最小二乘法

有了经验误差函数之后,就可以利用上一单元介绍的经验误差最小原则来设计算法,从而在假设空间 中挑选离 最近的 作为 :

具体到线性回归中,其经验误差函数为:

根据经验误差最小原则,只需要求出使得该经验误差函数取得最小值的 和 :

实际上就得到了离 最近的 ,本节就来介绍如何求解 和 。

3.1 凸函数

首先,将手上的数据集 :

代入线性回归的经验误差函数后可得:

可见 是关于 和 的函数,并且是 凸函数(Convex Function)。凸函数意味着画出来看上去像山谷:

3.2 凸函数的最小值

就如山谷肯定有最低点一样,凸函数肯定有最小值,这说明最小值是一定存在的。并且凸函数更重要的性质是,使得经验误差函数 取得最小值的 和 ,可以通过求解下面方程组得到:

因为线性回归的经验误差函数 是平方之和,所以本节介绍的求解该经验误差函数的最小值的方法被称为 最小平方法 ,国内各种教材中也常称为 最小二乘法 。

4 代码实现

根据上面的数学原理,可以借助 Python 来求出 和 :

       from sympy import symbols, diff, solve import numpy as np  # 数据集 D X = np.array([1.51, 1.64, 1.6, 1.73, 1.82, 1.87]) y = np.array([1.63, 1.7, 1.71, 1.72, 1.76, 1.86])  # 构造经验误差函数 w, b = symbols('w b', real=True) RDh = 0 for (xi, yi) in zip(X, y):  RDh += (yi - (xi*w + b))**2 RDh *= 1/len(X)  # 对 w 和 b 求偏导 eRDhw = diff(RDh, w) eRDhb = diff(RDh, b)  # 求解方程组 ans = solve((eRDhw, eRDhb), (w, b)) print('使得经验误差函数 RD(h) 取最小值的参数为:{}'.format(ans))     

上面代码运行后,可以解出 以及 ,得到的结果和高尔顿几乎一样:

至此我们就完成了一个简单的线性回归。至于为什么最小二乘法是正确的,可以看我们之后的课程,或者看如何理解最小二乘法




  

相关话题

  我们高中数学为什么不重视算法?高中学的数列,三角函数,求导,圆锥曲线相关问题的解法和算法有什么关系? 
  有没有简单的方法[这里指高中(非竞赛)水平,初等计算复杂程度不计]证明这个不等式(详细见下图)? 
  这个数列问你证明收敛呀? 
  如何看待Google Play要求八月份起新应用须打包为AAB格式?对鸿蒙的发展有哪些影响? 
  n! 是否是一个完全平方数? 
  微软董事会调查盖茨与一女性员工关系,为什么盖茨突然出现这么多负面新闻?对其个人形象和公司会有哪些影响? 
  两个数的差取整等于两个数先取整再做差吗? 
  随着 5G 的普遍应用,通信类专业是否前景光明? 
  Lagrange 如何用连分数理论推导出一次同余方程的通解? 
  联想ThinkPad系列里面最推荐哪款? 

前一个讨论
2000左右,有什么值得推荐的头戴式耳机?
下一个讨论
对于市场上盛行盗版的 AirPods,苹果为什么没有追究其法律责任?





© 2024-11-24 - tinynew.org. All Rights Reserved.
© 2024-11-24 - tinynew.org. 保留所有权利