1. 原理
1.1 回归方程
多元线性回归是一个样本有多个特征的线性回归问题,对于一个有n个特征的样本i而言,它的回归方程为:
统称为模型的参数,其中 被称为截距(intercept),~ 被称为回归系数,~ 是样本 上的不同特征,如果有m个样本,则回归结果为:
其中 是包含了m个全部样本回归结果的列向量,通常使用粗体的小写字母来表示列向量,粗体的大写字母表示矩阵/行列式,我们可使用矩阵表示上面的方程,其中 可被看作一个(n+1,1)的列矩阵,是一个结构为(m,n+1)的特征矩阵,
线性回归,就是构造一个预测函数来映射输入的特征矩阵X和标签值 的线性关系,这个预测函数的本质是我们构建的模型,而构造预测函数的核心是找出模型参数向量 。
1.2 损失函数
在逻辑回归和SVM中,我们定义了损失函数,通过最小化损失函数或损失函数的某种变化来求解的参数向量,将求解参数向量转化为一个最优化问题,在多元线性回归中,定义如下损失函数:
其中 是样本 对应的真实标签,也就是 是样本 在一组参数 下的预测标签。
L2范式本质是欧式距离,即两个向量上的每个点对应相减后的平方和再开平方,这个损失函数是代表向量 的L2范式的平方结果,因为只实现了向量上每个点对应相减后的平方和,并没有开方,所以多元线性回归的损失函数是L2范式的平方结果,也即欧式距离的平方结果。
,这个损失函数在计算真实标签和预测值之间的距离,衡量模型的预测结果和真实标签的差异,希望它们之间的差异越小越好,求解目标可以转化成:
右下角的2表示向量的L2范式,对它平方,即损失函数的意义,称这个式子为SSE(sum of squared error 误差平方和)或者RSS(residual sum of squares 残差平方和)。一般约定为后者RSS。
1.3 求参数
使用最小二乘法求解多元线性回归的参数,现在问题转为求解让RSS最小化的参数向量 ,这种通过最小化真实值和预测值之间的RSS来求解参数的方法叫最小二乘法。
求解极值的第一步往往是求解一阶导数并让一阶导数等于0,现在在RSS上对参数向量 求导:
$\frac{\partial RSS}{\partial w} $
$
让这个求导后的一阶导数等于0,
即 ,左乘一个 有:
若这个 存在, 逆矩阵存在的充要条件是特征矩阵不存在多重共线性。此时的 是参数的最优解,求出这个参数向量,就解出了 ,也就计算出预测值 。
多重共线性问题
这是什么,怎么处理,岭回归和Lasso是怎么处理的。
必须满足矩阵存在,而当特征矩阵存在精确相关或者高度相关,即多重共线性关系时,矩阵不满秩,矩阵对应的行列式值为0,不存在。就无法使用最小二乘法求解,针对此,岭回归在损失函数上添加了一项L2范式,lasso增加了L1范式,比如岭回归,它让矩阵满秩,因此存在。就可以愉快使用最小二乘法求解参数向量,再来复习下,求解的目的,因为,求解出,就得到,即得出预测值。
岭回归再多元线性回归的损失函数上加上了正则项:
使用最小二乘法求解参数向量,对损失函数求导:
将有 的项合并,其中 为常数,为实现矩阵相加,让乘以结构为的单位矩阵:
只要存在,就可以求解出参数向量。
现在论证Lasso为啥没办法解决多重共线性问题,这要从lasso的损失函数说起,
使用系数 的L1范式乘以正则化系数 ,当使用最小二乘法求解Lasso中的参数 ,对损失函数求导:
前半部分我们上面才推导过,后半部分对 求导和岭回归不同,假设所有的系数为正:
将含有的项合并,其中为常数,为了实现矩阵的相加,让乘以结构为的单位矩阵:
要让 存在,再岭回归中,通过正则化系数 能够向矩阵 加上一个单位矩阵(),以此防止 的行列式为0,而L1范式所带的正则项 在求导后不带有 这个项,没办法和合并同类项。(岭回归: Lasso:),Lasso的L1范式无法对造成任何影响,即Lasso无法解决特征之间“精确相关”问题,当使用最小二乘法求解多元线性回归时,如果线性回归无解会这报除0错误,只能换岭回归,Lasso不能解决问题。
岭回归可以解决特征间的精确相关关系导致的最小二乘法无法使用的问题,而Lasso不行。
线性模型与非线性模型,加入的噪声太大,除以3是为了让数据能看出是sin函数的样子,reshape(-1,1),升维。
使用分箱处理非线性问题:
使用多项式回归解决非线性问题:
多项式回归模型的解释
激活函数:
概念,使用一个激活函数让结果是0或1,