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

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

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

猜你喜欢

转载自www.cnblogs.com/jason--/p/11484767.html