Upstage AI Lab 2기
2024년 3월 19일 (화) Day_067
- 오늘의 todo
- [ o ] 데이터 전처리 수업 내용 정리
- [ o ] 파생변수 실습 (1) - 남은 10분
- [ o ] 파생변수 실습 (2)
- [ o ] 파생변수 선택 (이론)
- [ ] 파생변수 선택 (실습)
CH02. 파생 변수 생성
도메인에 기반하여 생성!
(변수 생성으로 끝나는 것이 아니라 로직이 중요)
변환 | 함수변환 |
스케일링 | |
구간화 | |
기타변수 | |
변수간 관계 활용 | 상호작용 변수 |
통계 기반 변수 |
성능적 관점
해석적 관점
메모리 관점
- 변환
- 함수변환
- 스케일링
- 구간화
- 기타변수 : 분할(split) / 시간변수(시간요소 분리 추출 or time delta)
pd.to_datetime()
dt.year / dt.month / dt.day
- 변수간 관계 활용
- 상호작용 변수 - 변수 결합 : 변수 도출의 객관성이 중요
.apply(lambda x : 1 if x > 0 else 0) - 통계 기반 변수 : 평균, 중앙값, 최대, 최소 등. 상대적인 위치 표현도 가능. but 다중공선성 주의
df["loan_date_diff"] = (df["loan_end"] - df["loan_start"]).dt.days
- 상호작용 변수 - 변수 결합 : 변수 도출의 객관성이 중요
CH03. 변수 선택
변수 선택의 의미 : 기존 변수와 생성한 파생 변수 중 일부만 선택하겠다.
변수 선택의 목적 :
- 과적합/차원의 저주 방지 → 성능 ↑
- 학습/추론 속도 ↑
- 메모리 ↓ (배포)
- 데이터 수집 비용 ↓
중요도의 정의 및 평가 방법·기준에 따른 변수 선택 방법론
장점 | 단점 | ||
filter method | 변수들간 통계적 관계 (상관관계, 분산 등) |
||
wrapper method | ML 모델의 성능 | ||
embedded method | 모델이 변수의 중요도 설정 (Feature Importance - 트리기반) |
1. filter method : 통계적 관계(상관관계, 분산 등)를 기반으로 변수의 중요도를 결정
주의 : 학습의 결과가 변수 선택에 영향을 미치지 않음
상관관계가 높은 것 제거 - 상관관계가 높은 변수1과 변수2가 있다면 변수1로 변수2를 유추 가능
분산이 낮은 것 제거 - 변동성이 낮음 - 설명력이 낮음
다른 방법들보다 상대적으로 빠르게 계산 가능
1-1 상관계수 기반 선택 - 두 연속형 변수간 비교
두 연속형 변수간 correlation이 높은 변수들 중 선택해서 제거
1-2 카이제곱 테스트 기반의 변수 선택 - 두 범주형 변수간 비교
target 변수와 독립변수간 관계가 있는지 p-value를 확인해 유의수준이 낮은 변수 제거
과정 1. Y-X에 대해 카이제곱통계량 계산
과정 2. 카이제곱 통계량 -> p-value 계산
2. wrapper method - 모델 성능 기준
★ 모델학습의 결과가 변수 선택에 영향
최적의 변수 조합를 찾는 방식 - but 여러번 반복작업이 필요하기 때문에 속도가 느림
2-1. Forward Selection (Sequential Feature Selection) - 꽤 좋은 성능을 보장하긴 함.
2-2. Backward Elimination (Recursive Feature Elemination)
3. embedded method
훈련과정에서 모델이 자체적으로 변수 중요도 평가
- 트리모델의 feature importance 기반
- 규제(regularization) - l1, l2 등
=> 모델의 특성 잘 반영, 변수의 중요도와 모델의 복잡성을 동시에 고려 가능
3-1. Feature Importance 기반
node split의 기준은 gini 계수 또는 entropy
대략적인 설명 : node split의 기준으로 변수가 몇 번 사용되는지....?
상대적으로 Feature Importance가 낮은지 높은지
트리의 순도가 높은(불순도가 낮은) 분할을 만드는 feature -> 중요도가 높음
gini 계수 :
엔트로피 :
(수식 그려서 넣기)
gini계수와 entropy를 낮추는게 중요하고 계수를 낮추는 변수가 트리의 분할 기준이 된다.
Permutation Importance
Target Permutation
Adversarial Validation
'Upstage AI Lab 2기' 카테고리의 다른 글
협업을 위한 깃 복습 (0) | 2024.03.21 |
---|---|
Upstage AI Lab 2기 [Day067] ML Advanced - CH02. 파생 변수 만들기 실습(1) (0) | 2024.03.19 |
Upstage AI Lab 2기 [Day066] ML Advanced - CH01. 데이터 전처리 (0) | 2024.03.18 |
Upstage AI Lab 2기 [Day062] (0) | 2024.03.12 |
Upstage AI Lab 2기 [Day061] (0) | 2024.03.11 |