吴恩达 机器学习笔记四(lecture 4)(多特征值,梯度下降与Normal equation)
线性回归处理多个特征值
(Linear Regression with multiple variables)
1、多特征值线性回归的假设函数形式
在之前的房价预测例子中,我们看到只有房屋面积一个特征值,现在增加特征值,比如,房屋使用时间,房间的数量,房屋楼层数等等n个features。就表示第i个样本的特征向量,表示第j个特征在第i个样本中的值。
假设函数就变成了 ,这里假设第一个特征值x0为1.所以可以写成参数向量的转置乘以样本特征向量。
2、梯度下降
(1)Gradient descent for multiple variables
(2)特征规模(Feature Scaling)
如果特征规模差别很大的画,得到的损失函数的图像不光滑,导致不利于函数的收敛,可以采用均值归一化的方法对其进行缩放
(3)学习率(Learning rate)
一般看到不再变小就证明已经收敛,
当学习率太小,会让收敛速度很慢,学习率太大会让有可能不是每一个迭代都会变小,还有可能不会收敛。对于学习率一般这么选择:0.001~0.003~0.01~0.03~0.1~0.3这样三倍选择。
(4)特征和多项式回归(Features and polynomial regression)
对于房价预测的例子,如果有两个特征分别表示房屋地基的长和宽,那么我们可以用一个特征值s表示长和宽的乘积来设置假设函数
关于房价预测,如果是一个三次多项式能比较好的拟合数据的话,可以把特征值转换成、、这样又变成了的线性回归形式。但是要注意归一化处理,因为特征值之间规模差别太大。
当然还有一些特征值的选择可能能更好拟合数据
3、标准方程法(Normal equation)
依然是房价预测的例子,构造如下的矩阵:X,参数向量即为所求。也不需要考虑特征规模的问题。
公式证明:(这里要注意只有方阵才有逆矩阵,所以不能直接乘以X的逆,X转置乘以X为方阵)
假设函数: y=X⋅θ
首先在等式两边同时左乘一个 XT,得到: XTy=XTX⋅θ
已知: A×A−1=E
再在等式两边同时左乘一个 (XTX)−1,得到: (XTX)−1XTy=(XTX)−1(XTX)⋅θ
求得: θ=(XTX)−1XTy
最后编程求出θ
Octave: pinv(X’*X)*X’*y
如果矩阵 (XTX) 不可逆,原因:
1.存在冗余特征。
比如有两个特征
|
x1 | x2 |
---|---|---|
meaning | size in feet2 | size in m2 |
因为 1m=3.28feet,所以 x1=(3.28)2⋅x2。我们知道线性代数中出现这种线性相关的情况,其行列式值为0,所以不可逆,我们只需确保不会出现冗余特征即可。
2.特征数量 n 过多,而训练样本数 m 过少。
解决方法为删除一部分特征,或者增加样本数量。
4、梯度下降和Normal equation的比较