• 深度学习DeepLearning多元线性回归 学习笔记


    多维特征

    变量与术语

    列属性xj属性数n x ⃗ \vec{x} x (i)行向量某个值 x ⃗ j i \vec{x}_j^i x ji上行下列
    均值μ标准化标准差σsigma(σ)

    公式

    w ⃗ \vec{w} w = [w1 w2 w3 …]
    x ⃗ \vec{x} x = [x1 x2 x3 …]

    f w ⃗ , b ( x ⃗ ) = w ⃗ ∗ x ⃗ + b = w 1 x 1 + w 2 x 2 + … + w n x n + b f_{\vec{w},b} (\vec{x}) = \vec{w} * \vec{x} + b = w_1x_1 + w_2x_2 + … + w _nx_n + b fw ,b(x )=w x +b=w1x1+w2x2++wnxn+b

    多元线性回归

    import numpy
    f = np.dot(w, x) + b
    

    注:n很大的时候很快(并行处理)

    正规方程法

    1. 大于1000效率低
    2. 不能推广到其他算法,如逻辑回归,神经网络或其他算法。
    3. 没有迭代

    w n = w n − α 1 m ∑ i = 1 m f w ⃗ , b ( x ⃗ ( i ) − y ( i ) ) x n ( i ) w_n = w_n - α\dfrac{1}{m} \sum\limits_{i=1}^mf_{\vec{w},b}(\vec{x}^{(i)}-y^{(i)})x_n^{(i)} wn=wnαm1i=1mfw ,b(x (i)y(i))xn(i)

    b = b − α 1 m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) − y ( i ) ) b = b - α{\dfrac{1}{m}}\sum\limits_{i=1}^m(f_{\vec{w},b}(\vec{x}^{(i)}-y^{(i)}) b=bαm1i=1m(fw ,b(x (i)y(i))

    较大范围的自变量对应权重趋于更小,较小范围的自变量对应权重趋于更大。

    Mean normalization

    除以范围的最大值以求得权重与自变量的[0, 1]

    横坐标: x 1 = x 1 − μ 1 2000 − 300 x_1 = \dfrac{x_1-μ_1}{2000-300} x1=2000300x1μ1 纵坐标: x 2 = x 2 − μ 2 5 − 0 x_2 = \dfrac{x_2 - μ_2}{5-0} x2=50x2μ2

    − 0.18 ≤ x 1 ≤ 0.82 -0.18\le x_1\le0.82 0.18x10.82 − 0.46 ≤ x 2 ≤ 0.54 -0.46\le x_2\le0.54 0.46x20.54

    Z-score normalization

    300 ≤ x 1 ≤ 2000 300\le x_1\le2000 300x12000 0 ≤ x 2 ≤ 5 0\le x_2\le5 0x25

    x 1 = x 1 − μ 1 σ 1 x1 = \dfrac{x_1-μ_1}{σ_1} x1=σ1x1μ1 − 0.67 ≤ x 1 ≤ 3.1 -0.67\le x_1\le3.1 0.67x13.1

    通过缩放尽量让所有特征的取值在差不多范围,这样它们的变化对预测值的影响都是接近的 接近(-3,3)

    如果成本函数J变大,那么说明步长(学习率)不合适,或代码有误

    在这里插入图片描述

    注:迭代次数因机器而异

    除了通过绘制曲线判断迭代到什么地步之外还可以采用自动收敛测试
    让 ε 等于 1 0 − 3 10^{-3} 103,J的减小幅度小于这个很小的数则视作收敛。

    设置合适的学习率

    1. 测试时可以设置一个很小的值, 看J是否减小
    2. 迭代时学习率不宜过大不宜过小
    3. 测试时每次 * 3,选择尽可能大的学习率,或是比合理值略小的

    Feature engineering

    通过变换或组合建立特征工程,给予更多选择

    f w ⃗ , b ( x ⃗ ) = w 1 x 1 + w 2 x 2 + w 3 x 3 + b f_{\vec{w},b}(\vec{x}) = w_1x_1+w_2x_2+w_3x_3+b fw ,b(x )=w1x1+w2x2+w3x3+b

    注:多项式回归可以用于线性和非线性拟合

  • 相关阅读:
    关于JVM参数-XXSurvivorRatio的理解
    【微软技术栈】C#.NET 中的管道操作
    设计模式 结构型模式 - 享元模式(七)
    Flink系列之Flink中Broadcast和Counter整理和实战
    嵌入式linux系统中UART子系统基本实现
    Codeforces Round 958 (Div. 2)[部分题解ABC]
    javaEE基于springboot的小区社区文化活动报名系统jsp生活服务网站
    使用Xshell连接Ubuntu
    自研一个简易版本的OkHTTP
    机器学习-sklearn-高斯混合模型-学习笔记
  • 原文地址:https://blog.csdn.net/m0_64089565/article/details/140364496