线性回归模型
我们可以使用成本函数(cost function)来衡量预测函数(hypothesis function)的准确性。
找寻一个成本函数最小的线性回归方程
平方误差函数:Squared error function
梯度下降算法:Gradient Descent
公式
for(j:0->1)
α为学习速度,可理解为下降过程中的步长
随着逐步逼近最低点,偏导会变小,进而导致步长变小,避免了一部分因步长过大而越过极值点的情况
而因为成本函数均为凸函数(?),所以只存在一个全局最优解(没有局部最优)
将偏导展开之后:(每一步同时更新θ0和θ1)
多元线性回归
变量定义:
以矩阵乘法的形式表示预测函数(注意转置):
注意把n+1维的矩阵想象成为一个单一变量(复合函数?)
多维梯度下降算法:
实际应用技巧
特征缩放与归一
如果在线性回归中,多个特征值范围相差很大,则会让误差函数的图形(等高线图)变为类似椭圆的形状,使用梯度下降算法时,会经过更多次的迭代才能逼近最优值。
特征缩放:即将每个变量的变化范围控制得尽量相似,一般是朝 − 1 < x < 1 -1<x<1 −1<x<1逼近
特征归一:则是使变量的最大值与最小值之和(变化中心)向0逼近
常用形式:
学习速率(α)的选择
若α过小,则下降速度过慢
若α过大,则可能越过最优值
常用做法:以一定的倍率选择α,画出J(α)–α曲线,快速获取最优α值
多项式回归
不一定要用直线的形式去拟合,可以采用多项式函数作为假设函数(此时特征的缩放与归一尤为重要)
另也可以将多个特征值糅合成为一个特征值进行考虑
正规方程法:Normal Equation
可以利用矩阵和公式一步求出 θ θ θ的最优值
公式
关于X矩阵的构建,需要先增加一列 θ 0 θ0 θ0,然后每一行代表一组完整的 θ θ θ变量,一共m行
最终形成一个m行n+1列的矩阵
而y是一个m维列向量
公式实际上是对y乘了X的逆矩阵,前面一整块是为了构造一个可逆的方阵出来
和梯度下降法的辨析
梯度下降法的应用更为广泛,在这类问题中数据范围不大的情况下正规方程法为更优解法
数据范围以 1 e 5 1e5 1e5为界限
对于矩阵不可逆问题(很少)
一般会是两种情况造成:
- 有几个维度的特征值构成了线性相关性
- 数据集太小而特征值太多(可以使用正则化的方法)(联系线性代数矩阵的秩理解)
在编程求解过程中可以使用求伪逆函数来避免这种情况