我的机器学习之路 第三关

三、多变量线性回归

1.定义:用很多特征来拟合数据,更贴近实际应用的线性回归算法,包含很多特征变量x1,x2,x3等等。
      其中:m表示样本空间;
                   n表示特征数;
                   x^(i)表示第i组数据;
                   x^(i)j表示第i个训练样本中第j个特征值;
2.多变量假设函数
 h(x)=Θ0+Θ1*x1+Θ2*x2+Θ3*x3+   +Θn*xn
   (为了引入向量,令h(x)常数项乘以x0,且x0=1)
 通过将x0到xn表示为列向量X,将Θ0到Θn表示为列向量Θ。可得到h(x)=Θ^T*X。
3.多元梯度下降法
   代价函数J从两个参数变为多个参数,并用J(Θ)表示。梯度下降法和单变量线性回归那里一样,每一个参数都要更新,而且是所有参数同步更新,直到所有参数都不再变化。此时所得到的那组参数就是最优解。
补充:优化梯度下降法——特征放缩
目的:将特征的取值范围限定在较小的范围内(比如[-1,1]之间)
实现方法:①将每个特征值除以该特征值最大的那个值;
         ②均值归一法:xi={xi-x(i的平均)}/x(最大值)。
注意:这里的放缩不需要精确,只是为了缩小范围,不影响参数的最优选取。
4.学习率α
      通过 迭代次数k~J(Θ)图 判断是否取到最优解
      学习率α对J(Θ)迭代次数起到决定性作用,通常选取较小的α,使J(Θ)不断减小。(例如尝试α=0.001或者0.01或者1)
      注意:学习率太小会导致J(Θ)变化一上一下
5.特征和多项式回归
 (1)当有两个特征表示的属性相似时,可以将其合并成一个新的特征,以此来更好的拟合非线性的训练集。
 (2)多项式回归是指:只含一个特征,但为非线性拟合时,可以将假设函数假设为一次多元函数。
6.正规方程
   引入:对代价函数J(Θ)关于每一个参数求偏导,并将其值置为0,这样就可以直接得到每一个参数,此时的参数为最优解。
   上面的做法虽然迭代少,但是对每一个参数求偏导,计算量太大,所以想到由向量来解题:
   规定训练集特征为一个m*(n+1)的矩阵X,实际的结果看为m*1的列向量Y,参数向量为Θ
   Θ=(X^T*X)^-1*X^T*Y    (该运算可在octave上直接完成)

   相比于梯度下降算法  优点在于不用迭代,不用去纠结α;缺点是当特征数n变大后,计算量太大。
   
   补充:正规方程中由于一些原因(比如特征数太多导致m<n)导致X乘以X的转置可能没有逆。此时可以①选择删除某些特征;②强行用octave的pinv()函数; ③正则化法。

猜你喜欢

转载自blog.csdn.net/qq_42453280/article/details/83154941