什么是线性回归
相对于其他算法来说线性回归的原理相对简单,而且它的表现形式与我们数学中的线性方程较为相似,更加利于大家所理解。所以线性回归一般会作为机器学习爱好者学习机器学习时要学的第一个算法。
线性回归直白的理解就是寻找几个自变量()与因变量()之间的线性关系,之所以称之为“线性”是因为自变量都是一次幂的形式没有出现二次或更高形式的自变量。
比如下面的例子:上图所示是身高与体重的关系(体重很可能与身高有关系,自变量有一个:身高,因变量是体重),很明显身高与体重可能存在图中直线所示的关系。像这种关系便可以应线性回归进行分析。
再例如:一个人的可贷款金额可能与 他的住房面积和工资等因素有关系(房屋面积与工资这两个因素共同决定了贷款金额,自变量有两个房屋面积、工资,可贷款金额是因变量),通过图中的数据寻找工资、住房面积与可贷款金额之间的关系便可认为是一个线性回归问题。
线性回归有一个特别需要注意的特点就是它研究的是连续的自变量与连续的因变量之间的关系,这个要与逻辑回归相区别。就像上两个例子中所示的住房面积和工资都是可以连续连续变化的,可能取到任何现实中合理的值,而相对应的贷款金额也会连续的变化;身高、体重同样也是连续的。逻辑回归中的是非连续的,其只有两个取值的可能。这也是一个问题选择逻辑回归还是线性回归进行分析的重要的条件。
线性回归模型
回归分析可以相对简单的理解成如下的形式:
其中为自变量(因子)对于因变量的权重。在线性代数中,其也可写成如下的形式:
有了上述的模型,我们的目的是找到或求出权重的值,以便找到与之间的映射(函数)关系。从图1中我们可以看出,一般情况下自变量与因变量不太可能满足一个严格的线性关系。比较理想的情况是数据点都比较均匀的分布在直线的两侧,也就是误差比较小。我们的目标便是找到一组使模型与实际的误差最小。
线性回归得出的结果与实际的结果应该满足如下的关系:
上式中是实际值,是模型的输出值也就是预测值,是二者之间的误差。
在理想情况下,或者说我们想让误差最好最好满足独立同分布的,也就是说每一条数据的误差相互之间没有影响而且他们都满足相同的分布。通常情况下,误差应该满足高斯分布(正态分布)如图3,即误差大的数据很少,误差都集中在某一个值的附近。那么理想情况下我们希望误差都集中在0的附近,而且数据点在模型产生的线两侧均匀的分布。那么就是希望误差满足均值为0,标准差为1的标准正态分布。
则误差
即:
上式可以理解为一个关于“
则极大似然函数为:
转化为对数似然函数:
其中
上式中的
矩阵化简求解
可以用矩阵的方式表达如下:
对上式取的偏导:
在我之前的文章《机器学习——常见的矩阵求导公式》中对矩阵的导数进行了总结,根据文章中的公式7(可看作列向量,那么是一个常数)可得:
则上式可得:
因为所以上式可得:
令解得:
上面利用矩阵运算解得最佳的,接下来将用梯度下降方法求解最佳,并对结果进行分析。