Files
ailearning/docs/da/056.md
2020-10-19 21:08:55 +08:00

161 KiB
Raw Blame History

曲线拟合

导入基础包:

In [1]:

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

多项式拟合

导入线多项式拟合工具:

In [2]:

from numpy import polyfit, poly1d

产生数据:

In [3]:

x = np.linspace(-5, 5, 100)
y = 4 * x + 1.5
noise_y = y + np.random.randn(y.shape[-1]) * 2.5

画出数据:

In [4]:

%matplotlib inline

p = plt.plot(x, noise_y, 'rx')
p = plt.plot(x, y, 'b:')

![](data:image/png;base64,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 /wEcY+GYZJlNlgAAAABJRU5ErkJggg== )

进行线性拟合,polyfit 是多项式拟合函数,线性拟合即一阶多项式:

In [5]:

coeff = polyfit(x, noise_y, 1)
print coeff

[ 3.93921315  1.59379469]

一阶多项式 y = a_1 x + a_0 拟合,返回两个系数 $[a_1, a_0]$。

画出拟合曲线:

In [6]:

p = plt.plot(x, noise_y, 'rx')
p = plt.plot(x, coeff[0] * x + coeff[1], 'k-')
p = plt.plot(x, y, 'b--')

![](data:image/png;base64,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 rkJggg== )

还可以用 poly1d 生成一个以传入的 coeff 为参数的多项式函数:

In [7]:

f = poly1d(coeff)
p = plt.plot(x, noise_y, 'rx')
p = plt.plot(x, f(x))

![](data:image/png;base64,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 )In [8]:

f

Out[8]:

poly1d([ 3.93921315,  1.59379469])

显示 f

In [9]:

print f


3.939 x + 1.594

还可以对它进行数学操作生成新的多项式:

In [10]:

print f + 2 * f ** 2

       2
31.03 x + 29.05 x + 6.674

多项式拟合正弦函数

正弦函数:

In [11]:

x = np.linspace(-np.pi,np.pi,100)
y = np.sin(x)

用一阶到九阶多项式拟合,类似泰勒展开:

In [12]:

y1 = poly1d(polyfit(x,y,1))
y3 = poly1d(polyfit(x,y,3))
y5 = poly1d(polyfit(x,y,5))
y7 = poly1d(polyfit(x,y,7))
y9 = poly1d(polyfit(x,y,9))

In [13]:

x = np.linspace(-3 * np.pi,3 * np.pi,100)

p = plt.plot(x, np.sin(x), 'k')
p = plt.plot(x, y1(x))
p = plt.plot(x, y3(x))
p = plt.plot(x, y5(x))
p = plt.plot(x, y7(x))
p = plt.plot(x, y9(x))

a = plt.axis([-3 * np.pi, 3 * np.pi, -1.25, 1.25])

![](data:image/png;base64,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 /344fVo+rLR8uVzzXeE2jedjb12ZwXtPC6Z+hdsa94yMDA4dOoTJZBrrrdjMvn37FDPunuy5AzTF 1qCrd80fkvP55S/lWlYbNtg2vqytjPnFqfT5WZi/XJ3Tlu7M+emQy6fFUx8jceCTI/ILPj5yzvvn n8vF713QdNpeWUbJe2+84LbGPTg4mKSkJI4ePTrWW7EJs9lMfn4+S5YsUWQ+VTR3F3ruxtldhDRF y8fTXci2bfDpp3JOu63sPL2TtNqLqYubeHo7XCjL+On1lKX0cWBr+VeDUlJkicZF2Jsto+RT83jB bY07eFZQ9dixY8TGxhKuUN7vQKvCskx/v9z8ODRUuTlHYOaGScTU+tN5otQl6wF0dMD3vgcvvWTf /+bO8p2ENUyhP7FTvc25MUOzZQbpnGam+8jYPTXbky0zMDBAQUHBhG+IfT6acVcIpT0HU4vCskxT k1zn1kXV8hZPn0tT5ABZr2a5ZD2An/5UPjVvb/r1zvKdhDdEE7MsRJ2NuTlDi4cNErHYQGRFwJjs xzJgwdRqwifaNuN+5MgRkpOTCQmZmL8/a7i1cV+yZInHBFUVN+5KyzIulGQApoZPpTqhgaqDrmmW vWmT3Dfij3+077qK9goCG81E1/mx9vur1dmcmxMbFEttV+05hwZXrp9BXLM/3S3dLt/PQMMA3pHe SHrbgqOaJDM8bm3c58+fT1FRET09PWO9lVFR8gNmNpoRFoHOX8FfjwuDqQDBvsGcji1GNKpzPH0o ra1wxx1yyzyDwb5rd5XvYl3VFTTE9BEV6xrJyt0I8gnCS+dFe1/72dcuio/k9GTY//ZBl+/H0UwZ jXNxa+Pu5+fH3Llz3b55R1dXF6WlpcyfP1+R+QYzZRRN63LRAaahVMwqI6w+Uu5rpyI//jF87Wuw 2gHHe+fpncRUzaIldmIGUwc5Px3ST6+nNLWfI5+7vvS2FkxVBrc27gDLly9n7969Y72NEcnLyyMt LQ0fH2UaKntaez1rhGVIhLR5U/qfbNXW+Ogj2LNHbp3nCDvLdxLUmIiU4hr5yF2JM5ybDglgnA3i mOtNRH9NPz7xtt1L7e3tVFRUMG/ePJV35Xm4vXFftmwZe/a4T/nY4VDacxhoHfCoxtjWmBmTSmVy F3veUSedtakJ7roLXn0VAgPtv76yvZKOnlYia8OYsWFitNWzxnAZM8mXxpBYGezyAn7GEiP+U/1t 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 )

黑色为原始的图形,可以看到,随着多项式拟合的阶数的增加,曲线与拟合数据的吻合程度在逐渐增大。

最小二乘拟合

导入相关的模块:

In [14]:

from scipy.linalg import lstsq
from scipy.stats import linregress

In [15]:

x = np.linspace(0,5,100)
y = 0.5 * x + np.random.randn(x.shape[-1]) * 0.35

plt.plot(x,y,'x')

Out[15]:

[<matplotlib.lines.Line2D at 0xbc98518>]

![](data:image/png;base64,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 AAAASUVORK5CYII= )

一般来书,当我们使用一个 N-1 阶的多项式拟合这 M 个点时,有这样的关系存在:

XC = Y

\left[ \begin{matrix} x_0^{N-1} & \dots & x_0 & 1 \\\ x_1^{N-1} & \dots & x_1 & 1 \\\ \dots & \dots & \dots & \dots \\\ x_M^{N-1} & \dots & x_M & 1 \end{matrix}\right] \left[ \begin{matrix} C_{N-1} \\\ \dots \\\ C_1 \\\ C_0 \end{matrix} \right] = \left[ \begin{matrix} y_0 \\\ y_1 \\\ \dots \\\ y_M \end{matrix} \right]

Scipy.linalg.lstsq 最小二乘解

要得到 C ,可以使用 scipy.linalg.lstsq 求最小二乘解。

这里,我们使用 1 阶多项式即 N = 2,先将 x 扩展成 X

In [16]:

X = np.hstack((x[:,np.newaxis], np.ones((x.shape[-1],1))))
X[1:5]

Out[16]:

array([[ 0.05050505,  1\.        ],
       [ 0.1010101 ,  1\.        ],
       [ 0.15151515,  1\.        ],
       [ 0.2020202 ,  1\.        ]])

求解:

In [17]:

C, resid, rank, s = lstsq(X, y)
C, resid, rank, s

Out[17]:

(array([ 0.50432002,  0.0415695 ]),
 12.182942535066523,
 2,
 array([ 30.23732043,   4.82146667]))

画图:

In [18]:

p = plt.plot(x, y, 'rx')
p = plt.plot(x, C[0] * x + C[1], 'k--')
print "sum squared residual = {:.3f}".format(resid)
print "rank of the X matrix = {}".format(rank)
print "singular values of X = {}".format(s)

sum squared residual = 12.183
rank of the X matrix = 2
singular values of X = [ 30.23732043   4.82146667]

![](data:image/png;base64,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 TkSuQmCC )

Scipy.stats.linregress 线性回归

对于上面的问题,还可以使用线性回归进行求解:

In [19]:

slope, intercept, r_value, p_value, stderr = linregress(x, y)
slope, intercept

Out[19]:

(0.50432001884393252, 0.041569499438028901)

In [20]:

p = plt.plot(x, y, 'rx')
p = plt.plot(x, slope * x + intercept, 'k--')
print "R-value = {:.3f}".format(r_value)
print "p-value (probability there is no correlation) = {:.3e}".format(p_value)
print "Root mean squared error of the fit = {:.3f}".format(np.sqrt(stderr))

R-value = 0.903
p-value (probability there is no correlation) = 8.225e-38
Root mean squared error of the fit = 0.156

![](data:image/png;base64,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 )

可以看到,两者求解的结果是一致的,但是出发的角度是不同的。

更高级的拟合

In [21]:

from scipy.optimize import leastsq

先定义这个非线性函数:y = a e^{-b sin( f x + \phi)}

In [22]:

def function(x, a , b, f, phi):
    """a function of x with four parameters"""
    result = a * np.exp(-b * np.sin(f * x + phi))
    return result

画出原始曲线:

In [23]:

x = np.linspace(0, 2 * np.pi, 50)
actual_parameters = [3, 2, 1.25, np.pi / 4]
y = function(x, *actual_parameters)
p = plt.plot(x,y)

![](data:image/png;base64,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 )

加入噪声:

In [24]:

from scipy.stats import norm
y_noisy = y + 0.8 * norm.rvs(size=len(x))
p = plt.plot(x, y, 'k-')
p = plt.plot(x, y_noisy, 'rx')

![](data:image/png;base64,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 AABJRU5ErkJggg== )

Scipy.optimize.leastsq

定义误差函数,将要优化的参数放在前面:

In [25]:

def f_err(p, y, x):
    return y - function(x, *p)

将这个函数作为参数传入 leastsq 函数,第二个参数为初始值:

In [26]:

c, ret_val = leastsq(f_err, [1, 1, 1, 1], args=(y_noisy, x))
c, ret_val

Out[26]:

(array([ 3.03199715,  1.97689384,  1.30083191,  0.6393337 ]), 1)

ret_val 是 1~4 时,表示成功找到最小二乘解:

In [27]:

p = plt.plot(x, y_noisy, 'rx')
p = plt.plot(x, function(x, *c), 'k--')

![](data:image/png;base64,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 A5MAAAAASUVORK5CYII= )

Scipy.optimize.curve_fit

更高级的做法:

In [28]:

from scipy.optimize import curve_fit

不需要定义误差函数,直接传入 function 作为参数:

In [29]:

p_est, err_est = curve_fit(function, x, y_noisy)

In [30]:

print p_est
p = plt.plot(x, y_noisy, "rx")
p = plt.plot(x, function(x, *p_est), "k--")

[ 3.03199711  1.97689385  1.3008319   0.63933373]

![](data:image/png;base64,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 A5MAAAAASUVORK5CYII= )

这里第一个返回的是函数的参数,第二个返回值为各个参数的协方差矩阵:

In [31]:

print err_est

[[ 0.08483704 -0.02782318  0.00967093 -0.03029038]
 [-0.02782318  0.00933216 -0.00305158  0.00955794]
 [ 0.00967093 -0.00305158  0.0014972  -0.00468919]
 [-0.03029038  0.00955794 -0.00468919  0.01484297]]

协方差矩阵的对角线为各个参数的方差:

In [32]:

print "normalized relative errors for each parameter"
print "   a\t b\t f\tphi"
print np.sqrt(err_est.diagonal()) / p_est

normalized relative errors for each parameter
   a	  b	 f	phi
[ 0.09606473  0.0488661   0.02974528  0.19056043]