吴恩达-机器学习笔记(第二周)

2019-03-10  本文已影响0人  楠子小先生

四、多变量线性回归(Linear Regression with Multiple Variables)

4.1 多维特征

对房价模型增加更多的特征,构成一个含多个变量的模型,模型中的特征为(x_1,x_2,...,x_n)。

image.png

增添更多特征后的新注释:


image.png

对hypothesis h_θ(x)= θ_0+θ_1x_1+θ_2x_2+ ... +θ_nx_n, 引入x_0=1,得到 h_θ(x)= θ_0x_0+θ_1x_1+θ_2x_2+ ... +θ_nx_n,可简化为:h_θ(x) =θ^TX
此时parameters和任何一个samples都是是一个n+1维的向量,特征矩阵X的维度是 m*(n+1)

4.2 多变量梯度下降

多变量线性回归,代价函数:J(θ_0,θ_1...θ_1 )={1\over2m} \sum_{i=1}^m(h_θ (x^{(i)})-y^{(i)} )^2

其中:h_θ(x) =θ^TX = θ_0 + θ_1x_1 + θ_2x_2+ ... + θ_nx_n,
多变量线性回归的批量梯度下降算法为:

image.png
求导数后:
image.png
代码示例:

计算代价函数J(θ_0,θ_1...θ_1 )={1\over2m} \sum_{i=1}^m(h_θ (x^{(i)})-y^{(i)} )^2
其中:h_θ(x) =θ^TX = θ_0 + θ_1x_1 + θ_2x_2+ ... + θ_nx_n
Python 代码:

def computeCost(X, y, theta):
    inner = np.power(((X * theta.T) - y), 2)
    return np.sum(inner) / (2 * len(X))
4.3 梯度下降法实践1-特征缩放

多维特征问题,要保证特征尺度相近,使梯度下降算法更快收敛。
将所有特征的尺度都尽量缩放到-1到1之间。

image.png
最简单的方法是令: image.png
学习率a过小,收敛所需的迭代次数非常高;
学习率a过大,可能会越过局部最小值导致无法收敛。
Attention:当达到局部最小值时,也有可能由于a过大,跨过这块区域而到达全局最小值。
通常可以考虑:α=0.01,0.03,0.1,0.3,1,3,10
4.5 特征和多项式回归

线性回归并不适用于所有数据,有时我们需要曲线来适应我们的数据(二次方、三次方模型)

image.png
另外,我们可以令: image.png
求解参数: image.png

注:对于不可逆矩阵( 特征之间不独立e.g同时包含英尺为单位的尺寸和米为单位的尺寸两个特征,or特征数量 > 训练集数量),正规方程方法不可用。

梯度下降与正规方程的比较:
image.png

若特征数目n不大(小于一万),线性模型(而非逻辑回归等模型),通常可以用Normal Equation替代梯度下降法更快的计算参数θ。

代码表示

在 Octave 中,正规方程写作:

pinv(X'*X)*X'*y

在python中,正规方程写作:

import numpy as np
def normalEqn(X, y):
   theta = np.linalg.inv(X.T@X)@X.T@y #X.T@X等价于X.T.dot(X)
   return theta
4.7 正规方程及不可逆性(选修)

待学...

五、Octave教程(Octave Tutorial)

5.1 基本操作
5.2 移动数据
5.3 计算数据
5.4 绘图数据
5.5 控制语句:for,while,if语句
5.6 向量化 88
5.7 工作和提交的编程练习
上一篇下一篇

猜你喜欢

热点阅读