一、什么是线性回归
回归算法是一种有监督算法。
回归算法可以看作是用来建立“解释”变量(自变量X)和因变量(Y)之间的关系。从机器学习的角度讲,就是构建一个算法模型来做属性(X)与标签(Y)之间的映射关系,在算法的学习过程中,试图寻找一个函数使得参数的拟合性最好。
回归算法中算法的最终结果是一个连续的数据值,输入值(属性值)是一个d维度的属性/数值向量。
线性回归认为数据中的特征属性X和目标属性Y之间满足线性关系。而她所构建的模型也试图寻找到一条直线或一个平面使所有样本(训练数据)都能比较均匀地分布在其两侧,也就是使数据距离该直线或平面最小。
图1是一个二维的线性回归,即只有一个特征属性值和一个目标属性值,图2是一个三维的线性回归,即有两个特征属性值和一个目标属性值。
二、算法原理
不管是一维还是多维的线性回归其公式的形式都是:
线性回归损失函数:
是独立同分布的,根据中心极限定律,即样本的预测值和真实值的误差服从(近似服从)均值为0方差为某定值的高斯分布。
求其似然函数
根据损失函数的误差公式
将其带入似然函数得:
我们所要求的是在给定样本X时找到一组解向量,使得真实值和预测值之间的误差最小。
使用最小二乘法求解值。
连乘的方式求解比较困难,所以通过对数转换,进而求导(因为将似然函数对数化之后不改变原函数的单调性,所以对数化后求得最优解就是原函数的最优解)。
接下来求导
另又因为作为一个定值常量不影响求导,所以可以忽略,之后得到:
此处交换和是为了以后求导方便,且不影响最终结果
令得
进而
该即为参数得到解析解。
因为最小二乘法要求矩阵必须可逆,所以为防止不可逆,可增加额外数据影响,使得矩阵最终可逆。
三、总结
线性回归理解比较简单,但是以最小二乘法求解的最优解,对于计算机而言是比较困难的,因而会有其他的方式,比如梯度下降法来求解。