본문 바로가기
프로그래머스/데이터분석 데브코스

프로그래머스 데이터분석 데브코스 8-1

by 포잉띠 2024. 4. 1.

5주차 프로젝트를 진행하며 분석에 대한 지식이 많이 부족하다는것을 다시한번 알게되었다.

어떻게 해결해야 할까 싶었는데 마침 8주차 강의가 분석에 관한 지식들인 것 같아서 즐겁다.

그래서인지 평소보다 정리가 정성스럽게 되었다.

 

데이터 분석을 해야 하는 이유.

  • 데이터를 정리, 변환, 조작, 검사 하여 인사이트를 추출하는 작업.
  • 의사결정 판단 기준이 주관적인 직감 에서 객관적인 데이터로.
  • 주어진 데이터로 문제를 해결할 수 있을지 없을지 가늠 하는것 또한 데이터 분석이다.
  • 분석보다는 어떻게 해결할지에 대한 고민이 중요

 

데이터 분석 프로세스

  1. 문제 정의
    1. 풀고자 하는 문제가 명확하지 않으면 데이터 분석은 무용지물
    2. 큰 문제를 작은 단위의 문제로
    3. 궁극적으로 해결하고자 하는 문제가 무엇인가.
    4. 해당 문제를 일으키는 원인이 무엇인가.
    5. 상황을 판단하는 지표나 기준이 무엇인가.
    6. 문제 정의에 따라서 풀어가는 방향이 완전히 바뀔 수 있다.
  2. 데이터 수집
    • 검증해보고자 하는 가설을 해결해 줄 데이터를 수집
      1. 가설 검증에 필요한 데이터가 존재하는가 
        1. 부적절하거나 존재하지 않을 가능성
      2. 어떤 종류의 데이터가 필요한가
        1. 데이터는 산재되어있고 엄청나게 많이 존재한다.
        2. 데이터로부터 얻고자 하는 정보가 무엇인지 명확하게 정의해야 필요한 데이터만 모을수 있다.
      3. 얻고자 하는 데이터의 지표가 명확한가
        1. 적절해 보이는 데이터라도 지표가 부적절하면 가설 검증 및 결론 도출 시 오류 발생 가능
  3. 데이터 전처리
    1. 데이터 추출, 필터링, 그룹핑, 조인 등 ( SQL, DB )
      1. 데이터 분석을 위한 기본적인 테이블을 만드는 단계
      2. 테이블과 Column의 명칭, 처리/집계 기준, 조인시 데이터 증식 방지
    2. 이상치 제거, 분포 변환, 표준화, 카테고리화, 차원 축소 등
      1. 수집한 데이터를 분석에 용이한 형태로 만드는 과정
  4. 데이터 분석
    1. 탐색적 데이터 분석
      1. 그룹별 평균, 합 등 기술적 통계치 확인
      2. 분포 확인
      3. 변수 간 관계 및 영향력 파악
      4. 데이터 시각화
    2. 모델링
      1. Classification ( 분류 모델 )
      2. Regression ( 회귀 모델 )
      3. 클러스터링 ( 비지도 학습 모델 )
  5. 리포팅 / 피드백
    1. 내용의 초점은 DA가 아닌 상대방
      1. 상대가 이해할 수 있는 언어 사용
      2. 목적을 수시로 상기하고 재확인
    2. 적절한 시각화 방법 활용
      1. 항목 간 비교시 원 그래프는 지양하고 막대 그래프 위주. X, Y 축 단위 주의
      2. 시계열은 라인이나 실선으로 표현
      3. 분포는 히스토그램이나 박스플롯
      4. 변수 간 관계는 산점도

 

정규화와 데이터 스케일링

데이터에서 하나의 instance는 그것이 가진 여러 속성값(Feature)들을 이용해서 표현 가능

Feature 들 간의 크기 및 단위가 들쭉날쭉 하거나 값의 범위가 크게 다른 경우, 이상치 문제가 심각한 경우에 데이터 분석, 머신러닝, 딥러닝 적용이 어려워 지는 경우가 있다.

특히 ML/DL 모델에 Feature 값을 input으로 사용하는 경우 이상치가 있다면 모델이 데이터를 이상하게 해석할 우려가 있다.

이 때 정규화와 스케일링을 통해 Feature 들이 가지는 값의 범위를 일정하게 맞춰주는 방법이 필요

  1. 정규화 / Nomalization
    1. Min-Max 
    2. 모든 Feature 값이 0, 1 사이에 위치하도록 스케일링
    3. Feature 들 간의 variance 패턴은 그대로 유지한 채로 스케일링
    4. 이상치가 존재할 경우 적합하지 않은 방법
  2. Z-Score Nomalization / Standardization ( 표준화 )
    1. Feature 값들이 평균 0 , 표준편차 1 값을 가지는 정규분포를 따르도록 스케일링
    2. 이상치 문제에 Robust한 스케일링 방법
    3. Min-Max 처럼 Feature 값이 가지는 최소 최대 범위가 정해지지 않는 단점이 있음.
    4. 대부분 ML 기법들을 사용하는 경우 Input에 Standardization 을 적용해야 하는 경우가 많음
    5. 특히 Gradient descent(DL)을 활용한 학습과정을 안정시켜 주고 빠른 수렴을 가능케 함
    6. Z-Score가 ±1.5, ±2를 벗어나는 경우 해당 데이터를 이상치로 간주할 수 있음.
  3. Log 스케일링
    1. Feature 값들이 Exponential한 분포(Positive Skewed)를 가지는 경우 Feature 값들에 Log연산을 취하여 스케일링 가능
    2. Squre Root 연산을 취하거나, 반대의 분포를 가지는 경우 Power/Exponential 연산을 통해 스케일링 해 볼수 있다.
    3. 다양한 스케일링을 통해 데이터가 좀 더 정규분포에 가까워지도록 스케일링 하여 이상치 문제에도 좀 더 적극적으로 대응 가능