什么是线性模型? The target value is expected to be a linear combination of the features.
特征不仅要线性组合,还必须是目标值等于线性组合的特征!机器学习中绝大部分特征都是线性组合,但目标值不一定等于线性组合的特征。
在任何时候,当看到线性二字指的就是加减乘除运算,非线性指的是n次方(n>1)、开方、取对数等。
sklearn中,coef_=,intercept_=
一、普通最小二乘回归(Ordinary Least Squares)
线性回归 = 最小二乘回归 = 普通最小二乘回归
什么是线性回归?
线性回归就是找到一组使得观测目标值和预测目标值之间的残差平方和最小!即
注意:
矩阵大写,向量小写。是(n_samples,p_features)的矩阵;是(p_features,1)的列向量;是(n_samples,1)的列向量。
当说系数(coefficient )指的是不包括;的引入给所有样本增加了值为1的列,即。
线性回归的假设前提:线性回归的系数估计需要各特征之间是互相独立的。
多重共线性(Multicollinearity)是指线性回归模型中的自变量之间由于存在高度相关关系而使模型的权重参数估计失真或难以估计准确的一种特性,多重是指一个自变量可能与多个其他自变量之间存在相关关系。如一件商品的销售数量可能与当地的人均收入和当地人口数这两个其他因素存在相关关系。在研究社会、经济问题时,因为问题本身的复杂性,设计的因素很多。在建立回归模型时,往往由于研究者认识水平的局限性,很难在众多因素中找到一组互不相关,又对因变量 y 产生主要影响的变量,不可避免地出现所选自变量出现多重相关关系的情形。
多重共线性对线性回归模型的影响?
1、会造成回归系数,截距系数的估计非常不稳定(即高方差),即整个模型是不稳定。
这种不稳定的具体表现是:很可能回归系数原来正,但因为共线性而变为负。这对于一些自变量的可解释性来讲可能是致命的,因为得到错误系数无法解释正常发生的现象。举个简单的例子说明下:比如我有一个二元线性回归模型,自变量是x1和x2,如果我们画图大家可以很自然的想象出一个三维(三轴)坐标系。假如x1和x2之间没有多重共线性,那么这个模型就是一个确定了的超平面。但假如x1和x2有很强的多重共线性,那么这个模型就近似是一个直线向量,而以这个直线所拟合出来的平面是无数个的(穿过一条直线的平面是不固定的)。这也就造成了回归系数的不确定性,以及模型无法稳定。
2、增加模型解释难度;
如果特征之间存在多重共线性(multicollinearity),会使矩阵变得近似奇异,近似奇异意味着的行列式近似为0;进而对观测目标值的随机误差高度敏感,从而产生高方差的。
如何诊断多重共线性?
最简单直接的就是计算各自变量之间的相关系数,并进行显著性检验。
如果出现以下情况,可能存在多重共线性:
(1)模型中各对自变量之间显著性相关。皮尔逊相关系数
(2)当模型线性关系(F检验)显著时,几乎所有回归系数的t检验不显著。
(3)回归系数的正负号与预期的相反。
(4)方差膨胀因子(VIF)检测,一般认为VIF大于10,则存在严重的多重共线性。
如何解决多重共线性?
1、提前筛选变量---删除共线变量:利用相关检验来或变量聚类的方法。
在风控的评分卡模型中,一般的思想是去掉多重共线性变量,理由是增加模型稳定性,但是相对模型的预测能力来说真的是去掉了就一定好吗,如果是完全共线性的当然是需要删除的,但现实中其实特征变量之间并不是完全共线性的,所以删除有可能会导致预测的信息源减少而导致预测能力下降,其实删除只是一种处理方法,当比如 A、B两个特征共线性,那么到底选择删除哪一个也有一些方法,比如通过启发式逐个把特征加入模型看模型效果。
2、降维:有监督降维(LDA)和无监督降维(PCA)、偏最小二乘回归(PLS)
3、加正则项:Lasso回归(可以实现变量筛选),Ridge回归。
4、子集选择:包括逐步回归和最优子集法。因为该方法是贪婪算法,理论上大部分情况有效,实际中需要结合第一种方法。
二、Lasso回归
得到的是(n_sample,1)的列向量,
怎么求一个向量的L1范数?所有元素绝对值之和!
怎么求一个向量的L2范数?求每个元素的平方和再开根号!
1、产生稀疏解,即更偏向为0,有效减少特征数,所以有筛选特征的功能;
2、Lasso and its variants are fundamental to the field of compressed sensing
三、多任务Lasso回归
shape=(num_sample,num_features)
shape=(num_features,num_tasks)
shape=(num_sample,num_tasks)
Fro表示the Frobenius norm,简称F-范数,是一种矩阵范数。矩阵A的F-范数为矩阵A各元素平方和再开根号:,其中,i表示行索引,j表示列索引;就是求矩阵A每行元素平方和,各行结果之和再开根号。
,其中,i表示行索引,j表示列索引;就是求矩阵A每行元素平方和再开根号,各行结果之和。
什么是多任务,这里的任务是啥?
任务就是回归任务,多任务就是多次回归。一次回归得到的是(num_features,1)的列向量,多次回归任务得到的是(num_features,num_tasks)的矩阵。num_tasks怎么确定?应用场景?有待学习!
四、Ridge回归
1、更容易产生不为0,但接近与0的;
2、more robust to collinearity;