머신러닝 파이프라인
데이터 생성/수집
- 데이터 저장/관리
- 전처리(통계분석, 시각화, FE, Feature Extraction)
- 기계학습(+하이퍼 파라미터 튜닝)
- 오차분석(테스트, 검증데이터, 잔차분석)
- 배포
머신러닝의 목적
주어진 데이터의 패턴을 파악하여 새로운 데이터에 적용
- 지도학습
- 비지도학습
- 강화학습
모델링에 필요한 것
데이터에 대한 사전 지식이 필요함.
도메인
- 물리적 의미 : 지배 방적식 등
- 수치적 특성 : 주기성, 상/하한성 등
통계
- 데이터 특성 : 분포, 인자간 상관성
FE에서 다짜고짜 x2, x3 log(x)등을 해서 잘 맞는다고 하더라도 해석하기 어려움.
지배방적식의 항을 만든다는 생각으로 접근해야 한다.(ex 만유인력 공식 등, 즉 도메인이 중요하다는 얘기로 들림. AutoML의 한계?)
데이터 전처리에 필요한 것
Outlier 전처리가 필요하다.
이상치 감지 방법
논리적 의미 : 이 데이터가 있으면 안되는 데이터인지 판단
통계적 고립 : 통계적인 방법으로 이상치 판단
일반적인 순서는 통계적으로 판단 후 논리적으로 체크
학습 데이터
분류는 KFOLD로 교차검증
시계열은 대과거로 학습 후 과거 데이터로 검증
테스트 데이터를 분할할 때 Train, Test Set이 비슷한 분포를 보이게 분할해야 함.
Train에서 배운 것이 Test에는 없을 경우 모델링하기 어려움. Interpolation
데이터 불균형도 조심해야 함.
데이터가 한쪽에 다수 몰려있으면 그쪽에 과다학습하기 때문에 조심해야 함.
스케일링
Feature당 단위, 범위가 다르기 때문에 스케일링을 해야 함.
데이터 유출(Data Leakage)
데이터의 Feature가 사실 target이 일부 반영된 데이터인 경우(target의 사후 데이터인 경우 등)
데이터를 표준화할 때 전체 데이터를 표준화하고 테스트 셋을 나누면 전체 데이터의 평균, 표준편차를 사용하기 때문에 나누는 의미가 사리질 수 있음.