线性回归之梯度下降法 VS 标准方程法
引言:
假设代价函数J(θ)=aθ2+bθ+c (θ∈R)
那么使得代价函数最小,可以通过求解J(θ)的导数,并令其为0,来求的θ的值,即:
通过这种方法就可以不使用梯度下降而求得假设函数的参数θ
一、标准方程法求解假设函数参数θ
对于一个有n个特征要素,m个训练样本数据的问题,使用标准方程法如下:
m个样本数据:(x(1),y(1)),(x(2),y(2)),…,(x(m),y(m))
其中x(i) = [x0(i);x1(i);…;xn(i);] ∈Rn+1;(xi为n+1维列向量),其中x0(i) = 1
令X = [(x(1))T;(x(2))T;…;(x(m))T] (X为m行n+!列矩阵)
则θ = (XTX)-1XTy; (θ为n+1维列向量)
举例
例如预测房价与房子大小以及卧室个数、楼层个数、房龄之间关系的训练样本,如下表
x0 | size(x1) | bed room num(x2) | floors num (x3) | age of home (x4) | ==price(y) == |
---|---|---|---|---|---|
1 | 2104 | 5 | 1 | 45 | 460 |
1 | 1416 | 3 | 2 | 40 | 232 |
1 | 1534 | 3 | 2 | 30 | 315 |
1 | 834 | 2 | 1 | 30 | 178 |
θ = (XTX)-1XTy; (θ为n+1维列向量)
二、梯度下降法 VS 标准方程法
优缺点 | 梯度下降法 | 标准方程法 |
---|---|---|
. | 需要选择学习速率α | 不需要选择学习速率α |
. | 需要多次迭代 | 不需要多次迭代 |
. | 即使n很大,也能很好的工作 | 当n很大,因为需要计算(XTX)-1,会计算的非常慢 |
总结:
当n比较大的时候(通常n>10000),选择梯度下降法
当n不是很大(通常n<10000),选择标准方程法