1.1.1. Ordinary Least Squares
注:
本文所指线性回归,若非特别强调,均指最基础的线性回归模型
一、简介
线性模型的数学体现是:
y
^
=
ω
0
+
ω
1
x
1
+
ω
2
x
2
+
.
.
.
+
ω
n
x
n
\hat{y}=\omega_0+\omega_1x_1+\omega_2x_2+...+\omega_nx_n
y^=ω0+ω1x1+ω2x2+...+ωnxn
首先要明确,我们的最终目的是要达到:对于给定的自变量vector x, 我们能根据已知的coef_
vector
ω
\omega
ω预测出最接近真实情况的
y
^
\hat{y}
y^.
所以,在模型训练阶段,我们的需求是找到最合适的coef_
使得预测值
y
^
\hat{y}
y^与它的真实值y尽可能的接近。
二、应用
- 用
fit()
拟合函数 - 用
coef_
输出参数 - 用
predict()
预测
三、多重共线性
1.文档
先看官方文档
下面这是翻译
2.解释
最后我们来解释一下这个所谓的多重共线性是个什么东西。
百度百科是这样解释的:
这个东西表达了什么?
- 它提到了一种让模型变得估计失真或难以估计准确的情况
- 这种情况是:变量之间存在精确相关性或高度相关关系
这种情况怎么理解?
就是当特征A与特征B高度相关,或者特征C可以由D和E线性表示时,我们稍稍调整A或D的值(例如存在某个离群点或者异常值),B和C也会相应的波动。这种波动在相似特征较多时会被放大,但是这种很大波动很可能只是一个异常值引起的,所以多重共线性最终会导致模型估计失真或难以估计准确
3.如何解决
- 画热力图(协方差矩阵)选择特征进行训练(在特征数目较少的情况下)
- PCA降维(1.降维后特征失去原本的语意;2.测试集和真实预测时也要降维)
- 可以尝试Ridge regression(岭回归)来解决问题
四、线性回归的系数(非负)
这里介绍了一种情况,那就是当实际问题中参数均非负时,我们可以采用非负的最小二乘。当然,文档提供的事例证明了在系统限定系数下,NNLS要比OLS更好
五、时间复杂度
根据矩阵论中的奇异值分解,可以计算出,普通最小二乘的时间复杂度是O( n s a m p l e s n f e a t u r e s 2 n_{samples}n_{features}^2 nsamplesnfeatures2)