机器学习算法详解2:线性回归

机器学习算法详解2:线性回归

前言

​ 本系列主要对机器学习上算法的原理进行解读,给大家分享一下我的观点和总结。

本篇前言

​ 本篇对线性回归的算法原理进行解读。

目录结构

1. 引子

​ 我们有这样的数据:(瞎编的)

薪资/万元每年 所住房子价格/万元
10 100
20 150
30 300
50 500
100 1000

​ 画出图如下:

在这里插入图片描述

​ 那么,问题是:如果一个人的工资是60万每年,那么他所住的房价大概在多少?这个问题很好解决,我们从图中可以看出数据符合线性分布,我们可以画一条直线拟合这些数据点,然后代入新数据60,就可以得出对应的结果,如下图所示:

在这里插入图片描述

如何求出这条直线就是线性回归要解决的问题

2. 原理

​ 线性回归分为二元线性回归和多元线性回归,同时也是一个数学解释性非常强的算法,也因此通常作为第一个学习的机器学习算法

​ 公式推导过程如下:(需要一点点矩阵微分的知识+矩阵可逆判定知识

在这里插入图片描述

3. 特点

​ 线性回归的主要特点是:

  • 抗冗余
y = w1 * x1 + w2 * x2 + b
假设x1与x2特征相同,那么可以变化为:y = (w1+w2)x1 + b = wx + b
  • 抗噪声
y = w1 * x1 + w2 * Δ + b
假设Δ为噪声,那么学习完成后w2=0,结果为y = w1*x1 + b

4. 问题解答

4.1 问题1

问题:为什么损失函数不用MAE

​ 假设有以下的数据值:

y-yi MAE MAE间差值 MSE MSE间差值
5 5 25
4 4 1(5-4) 16 9
3 3 1(4-3) 9 7
2 2 1 4 5
1 1 1 1 3

​ 不难从上表看出,MAE并没有倾向性,MSE具有倾向性。可以这么解释,对于机器学习模型来说,学习数据,肯定是先学习到那些容易学习到的性质,当学习到一定程度,如果再继续学已经学习过的知识收益肯定变小了,而对于MAE而言,他感受不到收益变小了,因为每次学习的知识都差1,但是对于MSE而言,就可以明显感觉到收益降低,因此它会主动去学习新知识以提高收益。

4.2 问题2

问题:对于线性回归而言,是不是拟合函数y=w0*x+w1*x2+w2*x3…越多越好

​ 答:是的,可以这么解释:

y1 = w0 * x + w1 * x^2
y2 = w0 * x

对于y1而言,只要w1=0就退化到了y2,自然y1的性能至少都要比y2好
4.3 问题3

问题:这里线性回归不是求解出来了解析解吗?为什么sklearn库实现那些算法仍然是通过梯度优化算法呢

​ 其实,如果让你我来实现线性回归,肯定是用解析解来实现的。但是对于写库的人来说,肯定需要考虑到通用性,他只需要写一个通用的梯度算法就可以实现绝大部分算法的优化。

​ 因此,对于有解析解的算法,你可以自己从底层来实现它,也可以选择使用梯度下降算法来实现它

5. 广义线性回归

​ 如下图所示:

在这里插入图片描述

​ 可以明显看出这个拟合曲线应该是:y=w1x^2 + w2x + w0,我们可以令x^2=A,x=B,那么曲线变为y=w1A+w2B+w0,此时变为了直线方程,将该直线称之为广义线性回归

​ 由这个思路,可以推导出逻辑回归这个算法的出现。

6. 岭回归与lasso回归

​ 在上一篇中讲解了正则化的知识,而对于线性回归引入正则化公式,就得到了岭回归和lasso回归,损失函数分别如下:(图来自此

在这里插入图片描述

​ 两者的区别可以我这篇博客:《深入机器学习1:详解正则表达式》。另外,需要注意的是岭回归还可以解决多元线性回归中矩阵不可逆的现象(同样在这篇文章中进行了解释)。

7. 总结

​ 本篇介绍了线性回归的应用、公式推导、特点以及其推广。线性回归是很简单的算法,但是在实际任务中应用也比较多。

​ 下一篇,介绍逻辑回归。

猜你喜欢

转载自blog.csdn.net/weixin_46676835/article/details/132774492