h为假设,theta为模型参数(代表了特征的权重),x为特征的值
梯度下降算法
(1)加速梯度下降:通过让每一个输入值大致在相同的范围可以加速梯度下降,因为theta在x的范围比较小的时候收敛更快,
x的范围不平整时收敛慢且会发生震荡。即对变量进行标准化处理,方法为减均值,除标准差
(2)学习速率:alpha太小,能收敛但速度太慢;alpha太大不能保证每一步都会使代价函数下降,且可能会导致不收敛
(1)把多个特征混合为一个特征,如x1*x2作为一个特征
(2)通过对特征取平方,立方,平方根或其他形式来改变曲线的形状(此时对特征变量进行标准化处理很重要)
梯度下降 | 正规方程 | |
alpha | y | n |
迭代 | y | n |
复杂度 | O(kn^2) | O(n^3) |
当n很大时 | 较快 | 很慢 |
正规方程可能存在不收敛的情况,比如
a.有冗余特征(特征变量之间线性相关) b.特征太多
此时应该删除多余特征