파이썬 머신러닝ML

파이썬 다항회귀(Polynomial Variable Regression)/비선형모델

양기호니 2022. 12. 15. 18:05
728x90
반응형

혼자 공부하려고 정리했어요~

2차 함수, 3차 함수 등의 비선형의 다항회귀는 어떻게 수식을 찾아낼까요?

PolynomialFeatures와 LinearRefression을 활용해서 찾아낼수 있습니다.

from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression

#데이터 생성 
np.random.seed(0)
m = 120
X = np.sort(np.random.uniform(-3, 2, (m,1)), axis=0)
y = 2*X**2 + 3*X + 5 + np.random.randn(m, 1) # 2x^2 + 3x  + 5 + noise
print(X.shape, y.shape, X[:3], y[:3])

plt.plot(X, y, '.');

#degree 차수, include_bias 1로 채운 컬럼 추가 여부 
poly = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly.fit_transform(X)
print(X[0], X_poly[0])

lr = LinearRegression()
lr.fit(X_poly, y)
#2x^2 + 3x + 5
print('weights:', lr.coef_, 'bias:', lr.intercept_)

y_pred = lr.predict(X_poly)
plt.plot(X, y_pred, 'r-')

반응형