擅长:python、mysql、java
<p>也可以使用矩阵求逆。你知道吗</p>
<pre><code>import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-5,5,100)
Y = (np.power(x,2) + np.random.normal(0,1,x.shape)).reshape(-1,1)
X = np.c_[np.ones(x.shape), x, np.power(x,2)]
A = np.linalg.inv(X.transpose().dot(X)).dot(X.transpose().dot(Y))
Yp = X.dot(A)
fig = plt.figure()
ax = fig.add_subplot()
plt.plot(x,Y,'o',alpha=0.5)
plt.plot(x,Yp)
plt.show()
</code></pre>
<p>矩阵形式是</p>
<pre><code>X*A=Y
A=(Xt*X)-1*Xt*Y
</code></pre>
<p>如果需要的话,你可以有一个更好的主意。它并不总是有效的,您可能需要应用某种形式的<a href="https://en.wikipedia.org/wiki/Matrix_regularization" rel="nofollow noreferrer">regularization</a>。你知道吗</p>