多变量即多个特征量。
xⱼ 表示第j个特征值
x ⁽ⁱ⁾ 表示第i个训练样本的输入特征值,x ⁽²⁾ 表示第2个训练样本的特征向量,2表示索引而不是平方
x ⱼ ⁽ⁱ⁾ 表示第i个训练样本中第j个特征量的值
假设函数
梯度下降函数:
特征缩放
如果变量之间的取值范围相差过大,图形会呈现椭圆状,,且在梯度下降过程中,梯度值来回波动且过程较长;相反,如果你能确保这些特征都处在一个相近的范围,确保不同特征的取值在相近的范围内,这样梯度下降法就能更快地收敛。
执行特征缩放的目的一般是将特征的取值约束到接近[-1,1]的范围,x0一般来说已经等于1了,而其他特征需要除以不同的数将其范围控制在[-1,1]左右。
均值归一化
如果你有一个特征 xᵢ 你就用xᵢ-μᵢ来替换,通过这样做 让你的特征值具有为0的平均值。(除了x0)
(x1 - μ1)/S1来替换原来的特征x1。其中定义μ1的意思是在训练集中x1的平均值,S1:特征值的范围(最大值-最小值,或者也可以把S1设为变量的标准差)
注意:特征值缩放,并不需要太在意精度,它只是为了让梯度下降更快,减少迭代次数。
学习效率
判断梯度下降是否正常工作:利用迭代-代数函数值图。
x轴梯度下降的每步迭代后,y轴代数函数的值随迭代次数增加,当迭代次数增加但代数函数的值不怎么变化时,说明函数已经接近收敛。
相反,代价函数值随迭代次数增加的,说明梯度函数出现问题了,需要通过调整α的值,使梯度函数正常工作。
说明,梯度下降幅度太大,说明学习率α太大,应该使用较小的学习率α。
当学习率α太小时,只会影响迭代次数,降低收敛速度,不会影响代价函数。可以逐步增加α的值,从而得到合适的α值。
正规方程
参考:https://blog.csdn.net/hahajinbu/article/details/49904665
之前学习的梯度下降法,是用迭代的方式来求代价函数的最优解。而正规方程利用解析的方式求解,可以一次性求得最优解。
正规方程:
这样通过正规方程就可以很容易地求出参数 θ(一定要注意,这里的参数 θ 是一个向量)。
定义一个矩阵,作为设计矩阵,表示样本输入,xθ,这个矩阵的每一行都是一组特征值。
对比梯度下降函数和正规方程:
所以正规方程适合特征变量的数量较小的情况,如果特征变量数量较多还是选择梯度下降算法求最优解。
呜呜呜呜呜 这章前面学得有多开心后面学正规方程就有多懵逼 呜呜呜呜呜
正规方程在矩阵不可逆情况下的解
以下情况可能会出现矩阵不可逆的情况:
1. 有两个相似的特征
这个两个特征可以用一个线性关系进行表示。
例如,米和英尺,这两个都是用来描述长度的单位,且他们之间可以进行相互转化,如果特征值同时出现他们两个,就会出现矩阵不可逆的情况。
解决:选取任意一个作为特征
2. 特征值的数量特别多,但是训练集的数量特别少
比如10个样本集,却要求出100个特征。
解决:减少特征或者使用正规法。