假設你有這些數據點:
np.random.seed(0)
x = np.random.randn(10)
y = 5*x + np.random.randn(10)
在代碼中,p
給你擬合函數的係數:
p, residuals, rank, singular_values, rcond = np.polyfit(x, y, deg=1, full=True)
p
Out: array([ 5.04994402, 0.36378617])
你可以計算出使用這些係數如下擬合點:
y_hat = p[0]*x + p[1] # add higher degree terms if needed
同樣可以用np.polyval
:
y_hat = np.polyval(p, x)
y
和y_hat
之間的差異會給你殘差:
res = y - y_hat
res
Out:
array([-0.30784646, 1.07050188, 0.34836945, -0.35403036, -0.01319629,
0.01869734, 1.08284167, -0.56138505, -0.04556331, -1.23838885])
如果你想檢查:
(res**2).sum() == residuals # sum of squared errors
Out: array([ True], dtype=bool)
計算函數在給定的點,並減去你的點的價值。 –