文章目录
1.多功能
m代表样本数
n代表特征数
x
(
i
)
x^{(i)}
x(i)代表第i个样本特征值
x
j
(
i
)
x_j^{(i)}
xj(i)代表第i个样本特征值的第j个值
多变量假设函数
多元线性回归
用多个变量来预测Y值
2.多元梯度下降法
如何设定假定参数,如何用多元梯度下降法处理多元线性回归?
瞅一眼我们的变量
第一个是多元代价函数,第二个是参数,第三个是代价函数。
梯度下降
不断更新每一个
θ
j
θ_j
θj
单元梯度下降与多元梯度下降
约定,
x
0
(
i
)
x_0^{(i)}
x0(i)就是1
3.多元梯度下降法演练-特征缩放
确保多个特征值在一个相近范围内,梯度下降法就能更快收敛
用
(
x
i
−
u
i
)
/
s
1
(x_i - u_i)/s_1
(xi−ui)/s1代替
x
i
x_i
xi (
u
i
u_i
ui是集中训练特征
x
i
x_i
xi的平均值,
s
1
s_1
s1是特征值的范围,就是最大值减去最小值),使得特征值具有为0的平均值,不需要运用到
x
0
x_0
x0中,因为
x
0
x_0
x0为1。
如图中
x
1
x_1
x1,本来为size,取值为0-2000,我们对它进行处理,-1000再/2000,它的范围就是-0.5 到 0.5,平均值为0
4.多元梯度下降法-学习率
4.1.确保梯度下降法正确工作
如上图,x轴是迭代次数,y轴是代价函数J(θ)。第一个红点的横坐标代表迭代次数100次,纵坐标代表梯度下降算法一百次迭代后,得到的θ算出的J(θ)值。这条曲线代表算法每次迭代后,代价函数J(θ)的值。如果梯度下降算法是正确的,每一步迭代后,代价函数的值都应该下降。
在迭代400步的时候,函数看起来很平坦,可能已经收敛了。
判断梯度下降算法是否收敛(自动收敛测试):
如果代价函数一步迭代后的下降小于一个很小的值(
1
0
−
3
10^{-3}
10−3),那么函数就已收敛。
吴恩达说他倾向于看曲线是否变得平,而不是使用自动收敛测试。
如果你的代价函数随迭代次数上升,很有可能使用了过大的学习率α,跨度太大,导致函数冲过最小值。
如果你的代价函数呈波浪形,也是应该采取更小的学习率
当然如果学习率太小的话会导致收敛很慢
如何选取学习率α,可以隔三倍取一个值,如0.001,0.003,0.01,0.03,0.1,0.3,1,然后分别画出图像,选择使J(θ)快速下降的一个值。
5.特征与多项式回归
(学习一些可供选择的特征,以及如何得到不同的学习算法,以及多项式回归,它使你们能够使用线性回归的方式来拟合非常复杂的函数,甚至是非线性函数)
选择合适的特征、合适的函数,更好地拟合到你的数据上。所以我们应该怎么选择特征?
6.正规方程(区别于迭代方法的直接解法)
正规方程对由于某些线性回归问题,他会给我们更好的方法来求得参数θ的最优值。
我们一直在使用的线性回归方法是梯度下降法,为了最小化代价函数J(θ),我们使用这种迭代算法,经过多次迭代,来收敛到全局最小值。
相反的,正规方程提供了一种求θ的解析解法,所以我们不再需要运行迭代算法,二是可以直接一次性求解θ最优值
J(θ)对每一个θ进行求偏导,然后将导函数置零,求出θ,得到最小化代价函数J的θ值
以上图为例,m是训练样本数,n是特征变量数,其实是n+1,因为还有x0。
这个就是使得代价函数最小的θ:
θ
=
(
X
T
X
)
−
1
X
T
y
\theta = (X^TX)^{-1}X^Ty
θ=(XTX)−1XTy
如何构建矩阵X与y:
在X种,一行代表一个实例
正规方程里不需要进行特征缩放(不用让他的范围变小使得平均值为0)。
什么时候使用梯度下降法,什么时候使用正规方程法?
当特征变量数目不大,我们选择正规方程法,当特征变量数目很大,通常是>10000时,考虑使用梯度下降法。而且正规下降法不适用于一些复杂的算法。
7.正规方程在矩阵不可逆情况下的解决方法
为什么X^T X不可逆
- 多余特征参数,参数之间有线性关系
- 太多的特征参数,具体来说,m<=n的时候,例子太少,不足以找到那么多特征参数