파이썬 머신러닝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-')
반응형