◆ 데이터 준비
◆ 사이킷런 변환기
- 특성의 제곱, 특성끼리의 곱 등을 통해 특성 생성
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 |