1、多维特征(Multiple Features)
2、多变量梯度下降(Gradient Descent for Multiple Variables)
3、梯度下降法实践 1-特征缩放(Gradient Descent in Practice I - Feature Scaling)
4、梯度下降法实践 2-学习率(Gradient Descent in Practice II - Learning Rate)
5、特征和多项式回归(Features and Polynomial Regression)
6、正规方程(Normal Equation)
7、正规方程及不可逆性(Normal Equation Noninvertibility)
8、向量化(Vectorization)
无论是用 Octave,还是别的语言,比如MATLAB 或者你正在用 Python、NumPy 或 Java C C++,所有这些语言都具有各种线性代数库,这些库文件都是内置的。例如:与其写一个矩阵相乘的算法,不如直接在Octave里输入A*B就可以直接得到结果;如果使用了合适的向量化方法代码会简单很多、有效很多。
1、举个简单的例子
线性回归假设函数:
将θ和x向量化:
非量化与向量化代码实现:
C++ 的例子:
注意:MATLAB的下标从 1 开始,
2、更为复杂的例子
线性回归算法梯度下降的更新规则:
做法如下:
把?看做一个向量,然后用?-?*? 来更新?。
把?看作一个? + 1 维向量,? 是一个实数,?在这里是一个向量,?:= ? - ??。
当使用向量化地实现线性回归,通常运行速度就会比自己写代码更新?0、?1、?2的 for 循环快的多。