• 最小二乘法在线性拟合中的使用


    1、相关API

      (1)、最值

        np.max() np.min() np.ptp(): 返回一个数组中最大值/最小值/极差

        np.argmax() np.argmin(): 返回一个数组中最大/最小元素的下标

        np.maximum() np.minimum(): 将两个同维数组中对应元素中最大/最小元素构成一个新的数组

      (2)、沿着数组中所指定的轴向,调用处理函数,并将每次调用的返回值重新组织成数组返回。

    def func(data):
        pass
    #func     处理函数
    #axis     轴向 [0,1]
    #array     数组
    np.apply_along_axis(func, axis, array)

      (3)、卷积

    c = numpy.convolve(a, b, 卷积类型)
    
    a = [1, 2, 3, 4, 5]    原数组
    b = [8, 7, 6]          卷积核数组
    
    使用b作为卷积核,对a数组执行卷积运算的过程如下:
               44 65 86         有效卷积 (valid)
            23 44 65 86 59      同维卷积 (same)
          8 23 44 65 86 59 30   完全卷积 (full)
    0  0  1  2  3  4  5  0  0
    6  7  8
       6  7  8
          6  7  8
             6  7  8
                6  7  8
                   6  7  8
                      6  7  8

      (4)、最小二乘法计算符合误差最小的拟合系数(并不是求唯一解,而是求误差最小的解)

    x = np.linalg.lstsq(A, B)[0]
    # A,B为样本值

      (5)、算术平均值与加权平均值,

    算术平均值:
    np.mean(array) 或array.mean()
    加权平均值:
    np.average(closing_prices, weights=volumes)
    注:算术平均值可理解为权重相等的加权平均值。

      (6)、其他

    中位数:median,极差:ptp。

    2、相关矩阵

      

    numpy.corrcoef(a, b)        # 求相关矩阵
    numpy.cov(a, b)    # 求协方差矩阵

    3、多项式拟合相关API

    根据拟合系数与自变量求出拟合值, 由此可得拟合曲线坐标样本数据 [X, Y']
    np.polyval(P, X)->Y'
    
    多项式函数求导,根据拟合系数求出多项式函数导函数的系数
    np.polyder(P)->Q 
    
    已知多项式系数Q 求多项式函数的根(与x轴交点的横坐标)
    xs = np.roots(Q)
    
    两个多项式函数的差函数的系数(可以通过差函数的根求取两个曲线的交点)
    Q = np.polysub(P1, P2)

    4、数据平滑

      数据的平滑处理通常包含有降噪、拟合等操作。降噪的功能意在去除额外的影响因素,拟合的目的意在数学模型化,可以通过更多的数学方法识别曲线特征。

  • 相关阅读:
    备战-Java 并发
    备战-Java 容器
    备战-Java 基础
    算法-链表
    2021-常见问题收集整理-1
    算法-双指针
    HTTP 下载文件的一些记录
    语义化版本 2.0.0
    勒索病毒典型传播途径与预防建议
    看杨院士如何解读——北斗与综合PNT体系
  • 原文地址:https://www.cnblogs.com/jason--/p/11484767.html
Copyright © 2020-2023  润新知