워크시트

정형 데이터를 다루는 머신러닝 문제해결 패턴

Simon Yoon 2022. 9. 21. 22:36

인공지능 팩토리 세미나 발표 by 신백균

Source:

https://aifactory.space/learning/detail/2064

https://youtu.be/b98H87BIrbo


Agenda

  1. 탐색적 데이터 분석(EDA)의 중요성과 개요
  1. 베이스라인 모델 설계
  1. 모델 성능 개선 방안

  • 시작하기 전에…
    • 머신러닝 문제해결 프로세스
  • 문제 이해
    • 어떤 데이터를 활용해서 예측?
    • 회귀 | 분류?
    • 주어진 데이터는 무엇인가?
    • 어떻게 접근할 것인가?
    • 배경 지식을 활용할 만한 점은 있는가?

  • 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