第二周 多元线性回归
多元线性回归
- 多元线性回归假设:hθ(x)=θ0+θ1x1+θ2x2+…+θnxn
- 定义x0=1
- x=[x0\x1\x2vdots\xn]
- θ=[θ0theta1theta2vdotsthetan]
- hθ(x)=θTx
- 代价函数J(θ)=12m∑mi=1(hθ(xi)−yi)2
- 梯度下降:θj:=θj−α\part\partθjJ(θ)
- 特征缩放(feature scaling)
- 将不同的特征的取值调整到−1≤xi≤1内,可以使梯度下降更快收敛;
- 一般情况下,将一个特征值的范围调整到[-3,+3]之间,比较合适。
- 归一化(Mean normalization)
- xi=xi−μiximax−ximin
- 调整学习速率α
- α过小,收敛速率很慢
- α过大,代价函数可能无法收敛。
正规方程
-
用正规方程直接求解线性回归参数θ的最优值。
- 梯度下降法使用迭代方式计算代价函数的全局最小值。
-
假设J(θ)=aθ2+bθ+c
- \part\partθiJ(θ)=0
- θ=(XTX)−1XTy为能使代价函数最小化的θ值
-
假设样本包含m个样本(x(1),y(1)),(x(2),y(2)),…,(x(m),y(m)),每个样本包含n个特征:x(i)=[x(i)0 x(i)1 ⋮ x(i)n]∈Rn+1
-
设计矩阵(design matrix)X=[x(1)T x(2)T ⋮ x(m)T],为一个m×(n+1)矩阵
-
如果x(i)=[1 x(i)1],则X=[1x(1)1 1x(2)1 ⋮⋮ 1x(m)1]
-
Octave代码计算(XTX)−1XTy为:
pinv(X'*X)*X'*y
-
-
采用正规方程法可以不对特征进行归一化。
参数求解方法 | 优点 | 缺点 |
---|---|---|
梯度下降法 | 特征数量n非常庞大时也适用 | 需要选择α,迭代次数很多 |
正规方程法 | 不需要选择α,无需迭代 | 需要计算(XTX)−1,当特征数量n很大(n≫10000)时计算缓慢 |
- 正规方程的不可逆性
- 如果XTX是不可逆矩阵,查看是否存在冗余特征,将其删除。
- 可能特征数量太多,删除部分。