美文网首页
吴恩达-机器学习笔记(第二周)

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

作者: 楠子小先生 | 来源:发表于2019-03-10 22:06 被阅读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 工作和提交的编程练习

    相关文章

      网友评论

          本文标题:吴恩达-机器学习笔记(第二周)

          本文链接:https://www.haomeiwen.com/subject/otdeuqtx.html