------【机器学习第1天:线性回归(代码篇)】------
1. 前言
在上篇文章(线性回归-代码篇)中我们实现了用线性归回模型预测鸢尾花的花瓣宽度,上一篇更侧重代码的实现。在这篇文章中,我们会把重心放到理论知识上面。
2. 什么是回归
回归的目的是为了预测,比如上一篇文章中通过花瓣长度预测花瓣宽度
回归之所以能预测是因为它通过大量的花瓣长度与宽度数据,“弄懂了”花瓣长度与宽度之间的线性关系,在这个基础之上就可以通过花瓣长度预测花瓣宽度了。
3. 什么是线性
线性就是关系可以用线性方程来表示,通过一个或多个变量来表示另外一个变量。
通俗的说符合“越…,越…”这种说法的可能就是线性关系,比如
- “房子”越大,“租金”就越高
- “汉堡”买的越多,花的“钱”就越多
- 杯子里的“水”越多,“重量”就越大
但是也并非所有“越…,越…”都是线性的,比如“弹簧的弹力与位移的关系”,
4. 什么是线性回归
通过两个或多个变量之间的线性关系来预测结果。
通过鸢尾花的花瓣长度与宽度的线性关系来预测花瓣宽度,通过杯子里水的体积就可以知道(预测)水的重量
5. 百度百科+维基百科
百度百科:
线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y = w’x+e,e为误差服从均值为0的正态分布。
回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
维基百科:
在统计学中,线性回归是一种线性方法,用于建模标量响应(或因变量)与一个或多个解释变量(或独立变量)之间的关系。一个解释变量的情况称为简单线性回归。对于多个解释变量,该过程称为多元线性回归。该术语不同于多元线性回归,其中预测了多个相关因变量,而不是单个标量变量。
6. 一元线性回归
一个简单的监督学习任务可以表示为,给定N个两两数据对,使用某种机器学习模型对其进行建模,得到一个模型。X
为特征(feature),Y
为真实值(label)。
例如,花瓣长度为特征(X),花瓣宽度为真实值(Y)。可以比较直观的看出花瓣宽度与花瓣宽度存在一个线性关系,针对这个数据集,可以使用一个最简单的机器学习模型——一元线性回归。
一个元一次方程,对的。我们只需要给模型喂数据,然后通过一系列计算得到参数θ
,随即就可以通过X的值推算出Y的值,即通过鸢尾花的花瓣长度推断出花瓣宽度。
那么问题来了,当我们选择不同的θ
值时,会得到不同直线。那么如何选择θ
的值使得我们得到的直线更好的拟合数据呢?
7. 损失函数
为了解决这个问题,机器学习中引入了损失函数(loss function)
这个概念,损失函数又称为代价函数(cost function)
它计算用于模型预测值ŷ
和真实值y
之间的差异程度。损失函数的值越大,模型越差。
在线性回归中,损失函数最常用的计算方法是均方误差(Mean squared error)计算法,具体形式为:
- m:训练样本的个数;
- hθ(x):用参数θ和x预测出来的y值;
- i:第i个样本
接下来就需要通过调整θ
来寻找J
的最小值。
8. 梯度下降
如何调整函数的参数使拟合程度达到最佳(即寻找J的最小值)呢?
人工手动调试θ
是肯定不行的太耗时间,而且结果不一定让我们满意。这时引入了梯度下降
的概念找出J
的最小值。
梯度下降原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,能够下降的最快。
这里仅仅提出梯度下降这个概念,到后面我再展开将,贪多嚼不烂,慢慢来走得更快。
(文中部分图片来源于网络,侵删。)
如有错误欢迎指教,有问题的也可以加入QQ群(1149530473)向我提问,关注微信公众号(明天依旧可好)和我同步学习。