线性回归的模型假设
前言
线性回归可以分成4块:
- 线性回归模型的构建和解释:线性回归简介,回归中的损失函数,损失函数的概率解释;
- 过拟合问题及其解决方法和解释:过拟合,Scikit-Learn中带正则的线性回归模型,正则的概率解释;
- 优化方法:线性回归模型解析求解,线性回归模型梯度下降法求解,线性回归模型坐标轴下降求解;
- 模型评估:回归模型性能评价指标,交叉验证与模型评估解析求解。
这个顺序是从线性回归的原理角度来讲述的,很系统完整,本身没有问题,但是如果只是单纯想要把这个东西用起来的话,里面的解释部分可以暂时不去了解,优化方法部分可以先大概看看解析求解即可。
解释是想说明线性回归的一些做法是有理论依据的,是靠谱的,不是空中楼阁,对实际应用来说帮助不大。
对于优化方法,sklearn的API都已经封装好了,所以也不用自己操心。
从应用角度来说,最重要的是学习案例代码,不过Boston房价案例有些步骤大家可能觉得意义不太明确(比如,为什么要看房价与输入特征的散点图和箱体图,为什么要看两两特征之间的相关性),这些都与模型的假设有着千丝万缕的联系。
卿老师虽然没有专门讲模型假设,但都有所提及,只是分散在了不同的地方,所以这里给系统总结一下。
模型假设
在实际应用中,了解模型的前提假设很重要,在数据预处理阶段,要使数据尽量满足假设的要求。
对于多元线性回归模型
y = w 0 + w 1 x 1 + w 2 x 2 + ⋯ + w m x m + ε = w T x + ε y = w_0 + w_1 x_1 + w_2 x_2 + \cdots + w_m x_m + \varepsilon = \mathbf{w}^T \mathbf{x} + \varepsilon y=w0+w1x1+w2x2+⋯+wmxm+ε=wTx+ε
其中, w = [ w 0 , w 1 , ⋯ , w m ] T \mathbf{w} = [w_0, w_1, \cdots , w_m]^T w=[w0,w1,⋯,wm]T, x = [ 1 , x 1 , ⋯ , x m ] T \mathbf{x} = [1, x_1, \cdots , x_m]^T x=[1,x1,⋯,xm]T, ε \varepsilon ε是误差。
它的假设有5个:
假设1
输出响应 y y y的均值能够由输入特征 x i , i = 1 , 2 , ⋯ , m x_i,i=1,2,\cdots,m xi,i=1,2,⋯,m组成的线性函数准确建模出来。
其实就是 E ( y ) = w 0 + w 1 x 1 + w 2 x 2 + ⋯ + w m x m E(y) = w_0 + w_1 x_1 + w_2 x_2 + \cdots + w_m x_m E(y)=w0+w1x1+w2x2+⋯+wmxm,从直观上理解就是输出 y y y和输入特征 x i , i = 1 , 2 , ⋯ , m x_i, i=1,2,\cdots,m xi,i=1,2,⋯,m有线性关系。
-
具体怎么判断输出 y y y和输入特征 x i , i = 1 , 2 , ⋯ , m x_i, i=1,2,\cdots,m xi,i=1,2,⋯,m的线性关系呢?
-
对于连续型特征:看散点图和计算相关系数。
MEDV和RM的散点图(来自Boston房价数据):
看起来MEDV和RM确实有较强的线性关系。相关系数可以反映两个变量的线性相关程度,相关系数在-1~1之间,相关系数绝对值越大,两个变量越线性相关,更量化的说法是:
- 若 ∣ ρ ∣ ≥ 0.8 |\rho| \ge 0.8 ∣ρ∣≥0.8,两个变量高度线性相关;
- 若 0.5 ≤ ∣ ρ ∣ ≤ 0.8 0.5 \le |\rho| \le 0.8 0.5≤∣ρ∣≤0.8,两个变量中度线性相关;
- 若 0.3 ≤ ∣ ρ ∣ ≤ 0.5 0.3 \le |\rho| \le 0.5 0.3≤∣ρ∣≤0.5,两个变量低度线性相关;
- 若 ∣ ρ ∣ ≤ 0.3 |\rho| \le 0.3 ∣ρ∣≤0.3,两个变量几乎不线性相关;
下面计算MEDV和RM的相关系数,代码如下:
df["RM"].corr(df["MEDV"]) # df是卿老师Boston房价代码的数据集
结果
0.6953599470715389
两个变量属于中度线性相关,这个的结果也验证了散点图的直观感觉。
刚开始跑线性模型时,就算特征的线性相关系数小于0.3,先不要着急剔除,等模型训练后,看这个特征的系数是不是比其他特征的系数小,如果是,取它的 x 2 x^2 x2、 ln x \ln{x} lnx和 x \sqrt{x} x作为输入特征(原因看后面的输出y和输入特征x不是线性关系怎么办?),再训练看系数是不是还很小,如果是就可以剔除了。
-
对于类别型特征:看箱体图。
MEDV和CHAS的箱体图(来自卿老师的Boston房价代码):
箱体图是用来看输入特征和输出之间有没有关系的,具体怎么看?判断有关系的一个简单方法:看不同特征取值时,输出分布的中位数有没有在其它特征取值时输出分布的上四分位数之上或下四分位数之下。
如MEDV和CHAS的箱体图,CHAS=0时的MEDV中位数比CHAS=1时的MEDV下四分位数要小,所以不同CHAS取值对MEDV是有影响的。需要探讨MEDV和CHAS是线性关系吗?
不需要,为什么?
因为这个0和1代表的是无和有,没有大小的等级关系,不能从数值上去理解。
而且,一般会用独热编码把CHAS=0和CHAS=1分别单独作为一个特征,所以判断MEDV和CHAS是否线性关系也没有意义。
-
-
输出 y y y和输入特征