numpy.polyfit

numpy.polyfit 함수는 주어진 데이터에 대해 최소 제곱을 갖는 다항식 피팅 (least squares polynomial fit)을 반환합니다.



예제1

import numpy as np

x = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0])
y = np.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0])
z = np.polyfit(x, y, 3)

print(z)
[ 0.08703704 -0.81349206  1.69312169 -0.03968254]

주어진 데이터 어레이 x와 y에 대한 다항식 피팅 데이터를 얻어보겠습니다.

np.polyfit() 함수에 피팅할 데이터 x, y를 입력해주고 다항식의 차수를 지정해줍니다.

3차 다항식의 계수를 반환합니다.


p = np.poly1d(z)
y_fit = p(x)    # [p(0.0), p(1.0), p(2.0), p(3.0), p(4.0), p(5.0)]

print(y)
print(y_fit)
[ 0.   0.8  0.9  0.1 -0.8 -1. ]
[-0.03968254  0.92698413  0.78888889  0.06825397 -0.71269841 -1.03174603]

numpy.poly1d 객체를 사용하면 다항식을 편리하게 다룰 수 있습니다.

x 값에 대한 y 값들과 3차 다항식 피팅을 통해 얻은 값들을 출력합니다.



예제2

import matplotlib.pyplot as plt
import numpy as np

x = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0])
y = np.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0])
z = np.polyfit(x, y, 3)
p = np.poly1d(z)
xp = np.linspace(-2, 6, 100)

_ = plt.plot(x, y, '.', xp, p(xp), '-')
plt.ylim(-2, 2)
plt.show()

matplotlib을 이용해서 그래프로 나타내보겠습니다.

pyplot.plot() 함수에 x, y 데이터를 입력하고, 마커와 선의 종류를 지정해주었습니다.

결과는 아래와 같습니다.

../_images/numpy_polyfit_01.png

그림. numpy.polyfit 함수로 데이터 피팅하기.



이전글/다음글

이전글 :
다음글 :