[24.01.22]
2주차 8차시 - 피처 엔지니어링
1. 피처 엔지니어링
- 원본 데이터로부터 도메인 지식 등을 바탕으로 문제를 해결하는데 도움이 되는 Feature 를 생성 / 변환하고 이를 머신러닝 모델에 적합한 형식으로 변환하는 작업
- 딥러닝이 아닌 머신러닝에서 모델의 성능을 높이는 가장 핵심적인 단계
- 양질의 데이터라면 성능의 80 - 90% 는 피처 엔지니어링에 의해 결정됨
나머지는 하이퍼 파라미터 튜닝 등 - 딥러닝 : end-to-end learning, 딥러닝 모델의 구조를 통해 데이터의 feature 를 모델이 알아서 찾아냄
- 머신러닝 : 사람이 직접 데이터에 대해 이해해서 feature 를 만들어 줘야함
1) Pandas Group By Aggregation 을 이용한 Feature Engineering
- 구매데이터를 바탕으로 고객의 구매액이 300 이상 여부 예측?
-> 원본 데이터에서 주어진 Feature 에 고객 ID 기반으로 Aggregation 함수 적용
-> 새로운 Feature 생성
agg_func = ['mean','max','min','sum','count','std','skew']
- std: 표준편차(standard deviation), 클수록 데이터와 떨어진 정도가 큼
- skew: 데이터의 비대칭도, 데이터가 어느쪽으로 쏠려있는지 나타냄
positive - 왼쪽, negative - 오른쪽
- total-sum Feature
- 과거 고객 구매액의 총 합
- 예측을 위해 가장 중요한 feature
- 머신러닝 모델은 데이터에서 타겟을 구분할 수 있는 패턴을 인식하는 것
-> 어떤 피처가 타겟 레이블별로 분포가 다르면 모델에서 패턴을 쉽게 인식
-> 분포 차이가 명확할수록 좋은 피처
- quantity-sum Feature
- 과거 고객이 구매한 상품 개수의 합
- 합이 클수록 타겟 레이블이 1이 될 확률이 높음
- 레이블이 1이면 구매액이 높을 확률이 높음
2) Cross Validation 을 이용한 Out of Fold 예측
- training 시 cross validation 을 적용해서 out of fold validation 성능 측정 및 테스트 데이터 예측을 통해 성능 향상
- Out of Fold 예측
- Fold 마다 훈련한 모델로 테스트 데이터 예측
-> Fold 수 만큼 예측 결과
-> average ensemble 해서 최종 테스트 예측값으로 사용하는 방법 - 캐글에서 대부분 사용하는 예측 기법
3) LightGBM Early Stopping 적용
- Early Stopping
- iteration 을 통해 반복학습이 가능한 머신러닝 모델에서 validation 성능 측정을 통해 성능이 가장 좋은 하이퍼 파라미터에서 학습을 조기종료하는 regularization 방법
- ex) boosting 트리모델 트리 갯수, 딥러닝 epoch 수
- LightGBM Early Stopping
- n_estimators : 트리 개수 하이퍼 파라미터
- validation 데이터가 있으면 n_estimators 는 충분히 크게 설정,
early_stopping_rounds 를 적절한 값으로 설정 - 트리를 추가할 때마다 validation 성능 측정
-> 성능이 early_stopping_rounds 값 이상 연속으로 성능이 좋아지지 않으면
-> 트리 추가 stop, 가장 성능이 좋은 트리 개수를 최종 트리 개수로 사용
'STUDY > 부스트코스 - AI 엔지니어 기초 다지기' 카테고리의 다른 글
[AI 엔지니어 기초 다지기] 8일차 (0) | 2024.01.24 |
---|---|
[AI 엔지니어 기초 다지기] 7일차 (0) | 2024.01.23 |
[AI 엔지니어 기초 다지기] 5일차 (0) | 2024.01.19 |
[AI 엔지니어 기초 다지기] 4일차 (0) | 2024.01.18 |
[AI 엔지니어 기초 다지기] 3일차 (0) | 2024.01.17 |