08_ML(Machine_Learning)

30_머신러닝 프로젝트 프로세스(머신러닝 모델링 프로세스)

chuu_travel 2025. 4. 15. 11:40
728x90

머신러닝 모델링 프로세스

  • 일반적인 흐름일 뿐 실제 수행할 업무 내용에 따라 세부 내용은 조금씩 달라질 수 있음
  1. 프로젝트 이해
    • 문제 이해
      • 해결해야 하는 문제에 대한 이해
      • 분석 배경과 목적에 대한 이해
      • 어떤 데이터를 활용해서 어떤 업무를 수행해야 하는지 확인
        • 회귀, 분류, 데이터 접근 방법, 그 외 데이터와 관련된 다양한 사항을 확인
    • 프로젝트 목표 설정
      • 문제 이해의 내용을 바탕으로 프로젝트 목적과 산출물의 형태를 고려
      • 분석 방법, 모델, 평가 방법 설정
      • 평가지표 파악
    • 체크리스트
      • 프로젝트 목표 설정
      • 분석 유형(회귀 / 분류(이진분류/다중분류) / 기타) 파악
      • 평가지표 설정
  2. 데이터 획득 / 수집
    • lv1 : 제공받는 데이터
      • 연구용 데이터, 경진대회 데이터, 공공데이터, 사내 기업 데이터, 구매 데이터
      • 정규화된 데이터일 가능성이 높음
    • lv2 : OPEN API 활용
      • 데이터를 요청을 통해 제공
      • 전체 데이터는 아니지만 정제된 데이터
    • lv3 : 정적 크롤링
      • 접근이 용이
    • lv4 : 동적 크롤링
      • 검색 등 동적 제어가 필요한 페이지
    • 자동화, 스케줄러
      • windows : 작업 스케줄러
      • linux : cron
      • aws, azure: 클라우드 스케줄러
      • apache airflow
    • 데이터가 없으면 1단계(프로젝트 이해)부터 다시
  3. 데이터 준비
    • 데이터의 품질 향상이 목표
      • 데이터 정제, 통합, 변환
      • 모델에 적합한 형태로 데이터를 변환
    • 실제 데이터는 다양한 노이즈가 섞여 있고 형태도 일정하지 않음
      • 이상값을 솎아주거나 형태를 일치시켜야 함
  4. 탐색적 데이터 분석
    • 의의
      • 데이터를 면밀히 분석
      • 머신러닝은 데이터를 다루는 기술이므로 데이터를 잘 알아야 다음 단계에서 가장 효과적인 모델을 최적화할 수 있음
      • 데이터를 이해하는 데에 목적이 있음
        • 통찰의 발견
      • 통계적 분석, 시각적 분석
    • 프로세스
      • 데이터 구조 탐색
        • 데이터의 구조를 훑어보거나 몇 가지 통계를 구함
      • 데이터 시각화
        • 그래프를 활용해 데이터 전반을 깊이 있게 살펴봄
        • 어떤 피처가 중요한지, 피처를 어떻게 조합해서 새로운 피처를 만들지, 어떤 점을 주의해야할지 등의 통찰을 얻음
    • 체크리스트
      • 데이터 구조 탐색
        • 데이터 용도 파악
        • 데이터 양 확인
        • 피처의 이해
          • 이름
          • 의미
          • 데이터 타입
          • 결측값 개수
          • 고윳값 개수 등
        • 훈련 데이터와 테스트 데이터의 차이
        • 종속변수 확인
      • 데이터 시각화
        • 효과적인 시각화를 위한 전처리
        • 수치형 데이터 시각화
        • 범주형 데이터 시각화
        • 데이터 관계 시각화
      • 피처 파악
        • 추가할 피처
        • 제거할 피처
        • 피처별 인코딩 전략
      • 이상치 파악
        • 피처별 이상치 처리 방법
    • 시각화 종류
      • 수치형 데이터 시각화
        • 히스토그램, 커널밀도추정, 러그플롯
          • 히스토그램
            • histplot
            • 수치형 데이터의 구간별 빈도수를 나타냄
      • 범주형 데이터 시각화
        • 막대 그래프, 포인트 플롯, 박스플롯, 바이올린플롯, 카운트플롯, 파이 그래프
          • 막대 그래프
            • barplot
            • 범주형 데이터 값에 따라 수치형 데이터 값의 변화를 파악
          • 포인트 플롯
            • pointplot
            • 막대 그래프와 동일한 정보를 제공
            • 그래프를 점과 선으로 표현
            • 한 화면에 여러 그래프를 그릴 때 유리
          • 박스플롯
            • boxplot
            • 5가지 요약 수치를 제공
              • 1사분위수(Q1)
              • 2사분위수(Q2, 중앙값)
              • 3사분위수(Q3)
              • 사분위 범위 수(IQR) : Q3 - Q1
              • 최댓값 : Q3 + (1.5 * IQR)
              • 최솟값: Q1 - (1.5 * IQR)
              • 이상치: 최댓값보다 큰 값과 최솟값보다 작은 값
            • 각 범주별로 5가지 요약 수치를 쉽게 파악하고 싶다면 박스플롯이 유리
          • 바이올린플롯
            • violinplot
            • 박스플롯과 커널밀도추정 함수 그래프를 합친 그래프
            • 수치형 데이터의 전체적인 분포 양상을 알고 싶다면 바이올린플롯이 유리
          • 카운트플롯
            • countplot
            • 범주형 데이터의 개수를 확인하는 그래프
            • 범주형 피처나 범주형 타깃값의 분포가 어떤지 파악하는 용도
          • 파이그래프
            • pie
            • 범주형 데이터별 비율을 파악
      • 데이터 관계 시각화
        • 여러 데이터 사이의 관계를 파악하기 위한 시각화
        • 히트맵, 산점도
          • 히트맵
            • heatmap
            • 데이터 간 관계를 색상으로 표현
            • 비교해야 할 데이터가 많을 때 주로 사용
          • 산점도
            • scatter
            • 두 데이터의 관계를 점으로 표현
            • 회귀선을 그리면 전반적인 상관관계 파악이 더 쉬움
  5. 베이스라인 모델
    • 프로세스
      • 모델 훈련 및 성능 검증
        • 간단한 모델을 생성, 훈련하여 성능을 확인
        • 기본적인 머신러닝 뼈대를 만들어두는 것
        • 필요에 따라 간단한 피처 엔지니어링을 수행하기도 함
        • 성능에 신경 쓰지 않고 우선 간단하게 만들어 훈련을 마침
        • 훈련시 훈련 데이터를 활용
      • 결과 예측
        • 훈련된 모델을 활용해 결과를 예측
        • 예측 시에는 테스트 데이터를 활용
        • 베이스라인 모델의 성능을 확인하는 이유는 다음단계에서 성능 개선 후 비교하기 위함
    • 체크리스트
      • 준비
        • 데이터 준비(훈련/테스트)
        • (필요시)기본적인 피처 엔지니어링
        • 평가지표
      • 모델 훈련
        • 모델 생성
        • 훈련
      • 성능 검증
        • 예측(검증 데이터 사용)
        • 평가
      • 예측
        • 최종 예측(테스트 데이터 사용)
        • 평가
  6. 성능 개선
    • 프로세스
      • 피처 엔지니어링(특성 공학)
        • 모델 성능 개선의 첫 단계
        • 이상치 제거, 결측값 처리, 데이터 인코딩, 피처 스케일링, 파생 변수 생성, 변수 선택 등을 수행
        • 모든 피처가 종속변수 예측에 필요하지는 않음
        • 불필요한 피처는 삭제하고 필요한 피처는 남겨두거나 변환해야 함
        • 종속변수 예측에 도움되는 새로운 피처를 만들기도 함
        • 주어진 피처를 결합하거나 변형
        • 피처 엔지니어링은 모델 성능 향상에 큰 영향을 주는 작업
        • 일반적으로 탐색적 데이터 분석 뒤에 수행하지만 그 전에 하거나 전후에 모두 하기도 함
      • 하이퍼파라미터 튜닝
        • 모델의 최적 하이퍼파라미터를 찾는 작업
        • 모델마다 다양한 하이퍼파라미터와 다양한 값의 범위를 가짐
        • 모델 성능을 가장 좋게 만드는 하이퍼파라미터 값을 탐색
        • 모든 경우의 수를 따지는 것은 현실적으로 불가능하기 때문에 가능한 범위 내에서 최선의 값을 찾아야 함
        • 그리드서치, 랜덤서치, 베이지안 최적화 등을 수행
      • 성능 검증
        • 훈련된 모델의 일반화 성능을 평가
        • 주로 훈련 데이터와 검증 데이터를 나눈 다음 훈련 데이터로 훈련하고 검증 데이터로 성능을 평가
        • 성능을 평가해 훈련이 제대로 됐는지 파악
        • 성능이 좋지 않다면 이전 단계부터 다시 수행(문제 이해, 탐색적 데이터 분석, 피처 엔지니어링 등)
        • 교차 검증 기법을 이용하기도 함
          • 교차 검증 : 훈련 데이터를 여러 그룹으로 나누어 일부는 훈련에 활용하고 일부는 검증 시 사용해서 모델 성능을 측정
      • 결과 예측
        • 성능이 개선된 모델을 활용해 최종 성능 평가
    • 체크 리스트
      • 피처 엔지니어링
        • 이상치 제거
        • 스케일링
        • 결측값 처리
        • 데이터 인코딩
        • 타입 변경
        • 파생 변수 생성
        • 필요 없는 변수 제거
      • 하이퍼파라미터 튜닝
        • 하이퍼파라미터 종류와 의미 파악
        • 선별
          • 최적화할 하이퍼파라미터
          • 값을 고정할 하이퍼파라미터
        • 값 범위 설정
        • 최적화 기법
        • 모델 생성 및 훈련(최적화)
      • 성능 검증
        • 성능 평가(검증 데이터 사용)
        • 일반화 성능 평가(테스트 데이터 사용)
728x90