前言
这一系列文章将介绍各种机器学习算法,部分算法涉及公示推导,我的博客中有另一个板块介绍基于python和R实现各种机器学习算法,详情见置顶的目录,这篇文章将介绍线性回归。
算法介绍
线性回归(Linear Regression),说白了就是高中时候学的一元拟合,相对简单的一种表达如下:
其中, 为偏置, 为权重,可转换为如下形式:
简单地,以一元回归为例,下面的例子截取自吴恩达老师的机器学习公开课,如图所示:
房价随着房屋面积的变化数据,由此建立预测模型,对房价进行预测,这个例子很简单,初中时候我们就学过,最后得到的大致如下:
损失函数
通过上述介绍,我们可以知道,通过给出变量与标签间的对应关系,可以得到相应的数学映射,这种映射可能是简单的,也可能很复杂,那么,对于同样的数据集,我们如何来选择好的函数映射,如何来评判这种映射的好坏程度呢?这就要引入损失函数(loss function),也叫代价函数(cost function)用来评价变量与标签间的映射的好坏,这种损失函数的变化趋势与模型的拟合程度相同,即拟合的越准确,损失函数越小。
在线性回归中,给出如下的损失函数:
上式中, 表示第i个数据的预测值, 表示第i个数据的实际值,这种记录预测值与实际值差的平方的损失函数叫做平方损失函数,可以理解,当预测的值与实际值相差越小,最终损失函数的值也就越小,得到的预测结果就越准确。
下面考虑上述损失函数的优化,即求损失函数的最小值。在上述损失函数中,由于函数本身比较简单,是一个二次函数,区间内极小值就应该是函数的最小值,但是在实际的计算中,损失函数可能相当复杂,我们没办法求出具体最小值,这就需要我们利用梯度下降的方法求得。
梯度下降应用广泛,是一个逐步最小化损失函数的过程。
参考文献
李航《统计学习方法》
周志华《机器学习》
Andrew Ng机器学习公开课