Polynomial Features
- 다항식의 계수간 상호작용을 통해 새로운 feature를 생성한다
- 불필요한 피쳐를 제거하는 것도 중요하고, 중요한 피쳐들을 뽑아서 직접 상호작용을 일으켜 영향을 확인하고 모델을 향상시키는 것도 중요한 기법이다
- (Eg) [a, b] 2개의 feature가 존재한다고 가정하고, degree=2로 설정하면, polynomial features 는 [1, a, b, a^2, ab, b^2] 가 된다
- degree (default=2)가 높을수록 더 많은 피쳐를 생성한다
Step
- 파이프라인 이용해보자
from sklearn.preprocessing import PolynomialFeatures
# 파이프라인 이용해보자
poly_pipeline = make_pipeline(
PolynomialFeatures(degree=2, include_bias=False),
StandardScaler(),
ElasticNet(alpha=0.1, l1_ratio=0.2)
)
# 예측
poly_pred = poly_pipeline.fit(x_train, y_train).predict(x_test)
# 평가 함수는 자체적으로 만듦
mse_eval('Poly ElasticNet', poly_pred, y_test)
$\quad\rightarrow$ 다른 모델보다 poly를 썼을 때 (이 데이터셋 한정) 더 좋은 성능을 보임을 확인하였다