본문 바로가기
데이터 분석

Feature_engineering

by JoinInNoetic 2023. 12. 12.

◆ 데이터 준비

 

◆ 사이킷런 변환기

- 특성의 제곱, 특성끼리의 곱 등을 통해 특성 생성

from sklearn.preprocessing import PolynomialFeatures

poly = PolynomialFeatures(include_bias=False)    # include_bias=False : 절편제거 / True일시 절편도 같이 출력

train_poly = poly.fit_transform(훈련셋)

 

● poly 계산식

poly.get_feature_names_out()

 

● 테스트셋에 적용

poly.transform(테스트셋)

 

◆ 다중회귀 모델

 

● 특성을 5제곱까지 추가한 후 점수

poly = PolynomialFeatures(degree=5, include_bias=False)

 

◆ 기울기 규제

- 선형회귀의 기울기를 규제할 떄 많이 사용 => 릿지, 라쏘

- 릿지 : 기울기에 제곱

- 라쏘 : 기울기에 절댓값

- 이차원 그래프로 예를 들면 특성이 많아 점 하나하나 모두 따라가는 기울기를 완화시켜 과대적합을 방지

 

● 스케일링

 

▶ 릿지

- 선형회귀 모델에 규제를 적용한 모델 중 가장 성능이 뛰어나고, 효과적인 모델은 Ridge(릿지)와 Lasso(라쏘) 이다.

- 라쏘는 기울기를 아예 0으로 만들어 모든 특성을 고려하지 못할 수 있음

- 특성이 많고 어떤 특성을 제거해야할지 모르겠을때 사용

- 스케일링 후 사용

from sklearn.linear_model import Ridge

ridge=Ridge()

ridge.fit()

ridge.score()

 

● 규제의 정도 조절

ridge = Ridge(alpha= )    # alpha : 규제의 정도

# 최적 alpha값 = test셋이 가장 높고 train셋과 test셋의 차이가 적은 alpha

 

▶ 라쏘

from sklearn.linear_model import Lasso

lasso = Lasso()

lasso.fit()

lasso.score()

 

● 계수값 확인

- 기울기가 0인 특성 개수

- 모든 특성 - 기울기가 0인 특성개수 => 이용하는 특성 개수

np.sum(lasso.coef_ == 0))

'데이터 분석' 카테고리의 다른 글

Stochastic Gradient Descent(SGD, 확률적 경사 하강법)  (0) 2023.12.12
Logistic_regression  (0) 2023.12.12
LinearRegression  (0) 2023.11.17
Regressor(KNeighborsRegressor)  (0) 2023.11.16
KNeiborsClassifier  (0) 2023.11.16