인공지능 팩토리 세미나 발표 by 신백균
Source:
https://aifactory.space/learning/detail/2064
Agenda
- 탐색적 데이터 분석(EDA)의 중요성과 개요
- 베이스라인 모델 설계
- 모델 성능 개선 방안
- 문제 이해
- 어떤 데이터를 활용해서 예측?
- 회귀 | 분류?
- 주어진 데이터는 무엇인가?
- 어떻게 접근할 것인가?
- 배경 지식을 활용할 만한 점은 있는가?
- EDA ★★★
- 주어진 데이터의 구조를 보고 통계값을 구해봄
- 제공된 파일별 용도 파악
- 데이터의 양(레코드 수, 피처 수, 전체 용량 등) - info(), shape 활용
- 어떤 feature가 중요한지, 어떻게 조합해야 할지에 대해서 인사이트를 얻음
- 이름과 의미, 타입, 결측값과 고유값
- 훈련 데이터와 테스트 데이터의 차이 확인 - 데이터 분포, 각 데이터별 다른 feature 유무
- 레이블(label) 인코딩 → 가까운 숫자끼리 비슷한 데이터로 판단
- 원-핫(one-hot) 인코딩 → 고윳값별로 독립적인 데이터로 판단
- 다양한 그래프로 데이터 전반을 깊이 살펴봄
- 간단하게 feature engineering을 할 수 있을 것 eg. datetime → 월, 일, 시간, 분, 초, 요일별
- 수치형 - 로그변환 or Box-Cox 변환 등 , 범주형
- 아래와 같이 일별 자전거 대여 수량에 차이가 없을 경우 이 feature는 별로 도움이 안되는 것일 수도 있겠다는 의사결정도 가능할 것임 (반대로 오른쪽 그래프는 도움이 될 수 있을것)
- 타깃값 분포도 확인
- 상관관계 그래프
- 주어진 데이터의 구조를 보고 통계값을 구해봄
- 베이스라인 모델 설계
- 아주 간단한 기본 모델 생성 및 훈련 → 성능 확인
- 평가지표는 대부분 사이킷런에서 제공하지만 필요한 경우 직접 작성
- 훈련: 피처(독립변수)와 타깃(종속변수)이 주어졌을 때 최적 가중치(회귀계수)를 찾는 과정
- 예측: 최적 가중치를 아는 상태(훈련된 모델)에서 새로운 독립변수(데이터)가 주어졌을 때 타깃값을 추정하는 과정
- 탐색적 데이터 분석: 예측에 도움이 될 피처를 추리고, 적절한 모델링 방법을 탐색하는 과정
- 피처 엔지니어링: 추려진 피처들을 훈련에 적합하도록, 성능 향상에 도움되도록 가공하는 과정
- 성능 개선
- 피처 엔지니어링 - 성능 개선의 첫 단계, 이상치 및 결측값 처리, 인코딩과 스케일링, 파생 변수 생성, 변수 제거 및 선택
- 기존 피처를 가공해 타깃값 예측에 도움이 될 피처를 새로 만들기
- 쉽게 생각할 수 있는 점부터 도메인 지식을 요하는 부분까지 다양함
- 가장 창의력이 많이 필요한 파트
- 시차(lag) 피처 생성 - 시계열 데이터에 한정
과거 시점에 대한 피처를 생성 → 시계열 문제 성능 향상, 트렌드와 유사성 반영
- 데이터 조합을 생성해 데이터 수 늘려주기
- 하이퍼파라미터 최적화 - 대표적 기법: 그리드서치, 랜덤서치, 베이지안 최적화(효율적)
- 교차검증, OOF 기법, 앙상블, 스태킹
- 성능이 좋지 않다면 탐색적 데이터 분석이나 피처 엔지니어링부터 다시 수행
- 피처 엔지니어링 - 성능 개선의 첫 단계, 이상치 및 결측값 처리, 인코딩과 스케일링, 파생 변수 생성, 변수 제거 및 선택
- 체크리스트
- 저자 깃허브https://github.com/BaekKyunShin/musthave_mldl_problem_solving_strategy
- 저자 깃허브
Uploaded by N2T