多元线性回归
多元线性回归
1 符号
m
训练样本数量n
特征量的数目- x ( i ) x^{(i)} x(i) 第 i i i个训练样本的特征向量,是一个n维向量
- x j ( i ) {x_j}^{(i)} xj(i) 第 i i i个训练样本中,第 j j j个特征量的值
2 多元梯度下降法
2.1 假设函数
- 在多元变量中,假设函数应该为: h ( x )    =    θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n h\left( x \right) \,\,=\,\,\theta _0+\theta _1x_1+\theta _2x_2+\cdots +\theta _nx_n h(x)=θ0+θ1x1+θ2x2+⋯+θnxn
- 为了方便起见,定义 x 0 = 1 x_0 = 1 x0=1,现在把 x x x和 θ \theta θ看作一个 ( n + 1 ) × 1 (n+1) \times 1 (n+1)×1的向量,即$\left[ \begin{array}{l} x_0\ x_1\ \vdots\ x_n\ \end{array} \right] , , ,\left[ \begin{array}{l} \theta_0\ \theta_1\ \vdots\ \theta_n\ \end{array} \right] $
- 现在假设函数可以写为 h ( x ) = θ T x h\left( x \right) = \theta^T x h(x)=θTx
2.2 代价函数
- 多元变量中,代价函数可以写为:
J ( θ 0 , θ 1 , … , θ n ) = 1 2 m ∑ i = 0 m ( h ( x ( i ) ) − y ( i ) ) J(\theta_0,\theta_1,\dots,\theta_n)=\displaystyle\frac{1}{2m} \displaystyle\sum^{m}_{i=0}\Big({h(x^{(i)}) - y^{(i)}}\Big) J(θ0,θ1,…,θn)=2m1i=0∑m(h(x(i))−y(i))
当 θ \theta θ表示向量时,上式就可以写为:
J ( θ ) = 1 2 m ∑ i = 0 m ( h ( x ( i ) ) − y ( i ) ) J(\theta)=\displaystyle\frac{1}{2m} \displaystyle\sum^{m}_{i=0}\Big({h(x^{(i)}) - y^{(i)}}\Big) J(θ)=2m1i=0∑m(h(x(i))−y(i))
2.3梯度下降
r
e
p
e
a
t
u
n
t
i
l
c
o
n
v
e
r
g
e
n
c
e
{
θ
j
:
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
0
,
θ
1
,
…
,
θ
n
)
(
f
o
r
j
=
0
,
…
,
n
)
}
repeat\ until\ convergence\{ \\ \quad \theta_j := \theta_j - \alpha \frac{\partial}{\partial {\theta_j}} J(\theta_0,\theta_1,\dots,\theta_n) \quad (for\ j = 0, \dots, n) \\ \}
repeat until convergence{θj:=θj−α∂θj∂J(θ0,θ1,…,θn)(for j=0,…,n)}
也可以用
θ
\theta
θ代替
θ
0
,
θ
1
,
…
,
θ
n
\theta_0,\theta_1,\dots,\theta_n
θ0,θ1,…,θn
- θ \theta θ的计算方法,与单变量的类比
3 数据处理技巧
3.1 特征量缩放和均值归一化
- 所有的特征量在一个相近的数量级大学时候,代价函数会较快的收敛,所以可以用原始特征量除以该特征量样本的极差
- 均值归一化是指:所有特征量减去其均值,使改变后的特征量均值为零
- 特征量缩放和均值归一化即进行以下操作:
x i = x i − μ i s i x_i=\displaystyle\frac{x_i - \mu_i}{s_i} xi=sixi−μi
μ i \mu_i μi是第i个特征量的均值, s i s_i si是第i个特征量的极差
3.2 特征量的选择
- 例如在房屋售价预测中,给出的特征量是房屋的宽度f和深度d,我们可以选择特征量为
s
i
z
e
=
f
×
d
size = f \times d
size=f×d
3.3 用多元线性回归处理非线性函数
- 例如在房屋售价预测中,给出的特征量为房屋面积size,我们可以通过另
x
1
=
(
s
i
z
e
)
,
x
2
=
(
s
i
z
e
)
2
,
x
3
=
(
s
i
z
e
)
3
x_1 = (size),\\ x_2=(size)^2,\\x_3=(size)^3
x1=(size),x2=(size)2,x3=(size)3,来构造一个关于size的非线性假设函数:
4 正规方程(normal equation)
- 正规方程可以用解析方法求解 J ( θ ) J(\theta) J(θ),不需要再一步步的迭代,可以一步直接求得结果
- 思想就是求 J ( θ ) J(\theta) J(θ)对 θ \theta θ的导数或者偏导数,另其等于零,然后计算相应的 θ \theta θ的值(再多元线性回归中,不只一个 θ \theta θ值)
- 其中X也被称为design matrix ,其构造方法更一般的表达为:
- 计算最佳
θ
\theta
θ的式子为: $ \theta = (X^T X)^{-1} X^T y $
在Octave中: p i n v ( x ′ ∗ x ) ∗ x ′ ∗ y pinv(x' * x)* x'*y pinv(x′∗x)∗x′∗y,pinv
表示求逆,'
表示转置,*
表示相乘 - 可能存在
X
T
X
X^T X
XTX不可逆的情况,此时在Octave中使用
pinv
仍可以得到正确的结果,但是聪理解层面上来说, X T X X^T X XTX不可逆的原因可能有以下两个- 有多余的特征量,例如有
x 1 = s i z e i n f e e t 2 x_1= size\ in\ feet^2 x1=size in feet2
x 2 = s i z e i n m 2 x_2= size\ in\ m^2 x2=size in m2
因为 1 m = 3.28 f e e t 1m=3.28feet 1m=3.28feet,则 x 2 = ( 3.28 ) 2 x 1 x_2=(3.28)^2 x_1 x2=(3.28)2x1,它们之间存在一种线性关系,导致 X T X X^T X XTX不可逆
解决方案:删除多余的特征量 - 特征量数量过多。虽然每一个特征量都是独立的,与其他特征量不存在线性关系,但是如果
n
>
m
n>m
n>m,例如
n
=
100
,
m
=
10
n=100,\ m = 10
n=100, m=10,这种情况也也有可能会导致
X
T
X
X^T X
XTX不可逆(不是所以
n
>
m
n>m
n>m都会使
X
T
X
X^T X
XTX不可逆)
解决方案:删去一些特征量,或进行正则化(regularization)
- 有多余的特征量,例如有
- 注意:使用正规方程求解不需要特征缩放,两个特征量的数量级可以差别较大
5 梯度下降与正规方程的比较
5.1 梯度下降
- 优点
- 在n(特征量)较大时也有较好的效果
- 适用范围更广
- 缺点
- 需要选则 α \alpha α
- 需要很多迭代次数
5.2 正规方程
- 优点
- 不需要选则 α \alpha α
- 不需要很多迭代次数
- 缺点
- 需要计算 ( X T X ) − 1 (X^T X)^{-1} (XTX)−1(一个 n × n n \times n n×n的矩阵),所以当n特别大时,计算速度很慢
- 有些算法不适用
一般在n小于10,000时,选择正规方程