zoukankan      html  css  js  c++  java
  • 最小二乘法在线性拟合中的使用

    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、数据平滑

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

  • 相关阅读:
    Two strings CodeForces
    Dasha and Photos CodeForces
    Largest Beautiful Number CodeForces
    Timetable CodeForces
    Financiers Game CodeForces
    AC日记——整理药名 openjudge 1.7 15
    AC日记——大小写字母互换 openjudge 1.7 14
    AC日记——将字符串中的小写字母换成大写字母 openjudge 1.7 13
    AC日记——加密的病历单 openjudge 1.7 12
    AC日记——潜伏着 openjudge 1.7 11
  • 原文地址:https://www.cnblogs.com/jason--/p/11484767.html
Copyright © 2011-2022 走看看