5주차 프로젝트를 진행하며 분석에 대한 지식이 많이 부족하다는것을 다시한번 알게되었다.
어떻게 해결해야 할까 싶었는데 마침 8주차 강의가 분석에 관한 지식들인 것 같아서 즐겁다.
그래서인지 평소보다 정리가 정성스럽게 되었다.
데이터 분석을 해야 하는 이유.
- 데이터를 정리, 변환, 조작, 검사 하여 인사이트를 추출하는 작업.
- 의사결정 판단 기준이 주관적인 직감 에서 객관적인 데이터로.
- 주어진 데이터로 문제를 해결할 수 있을지 없을지 가늠 하는것 또한 데이터 분석이다.
- 분석보다는 어떻게 해결할지에 대한 고민이 중요
데이터 분석 프로세스
- 문제 정의
- 풀고자 하는 문제가 명확하지 않으면 데이터 분석은 무용지물
- 큰 문제를 작은 단위의 문제로
- 궁극적으로 해결하고자 하는 문제가 무엇인가.
- 해당 문제를 일으키는 원인이 무엇인가.
- 상황을 판단하는 지표나 기준이 무엇인가.
- 문제 정의에 따라서 풀어가는 방향이 완전히 바뀔 수 있다.
- 데이터 수집
- 검증해보고자 하는 가설을 해결해 줄 데이터를 수집
- 가설 검증에 필요한 데이터가 존재하는가
- 부적절하거나 존재하지 않을 가능성
- 어떤 종류의 데이터가 필요한가
- 데이터는 산재되어있고 엄청나게 많이 존재한다.
- 데이터로부터 얻고자 하는 정보가 무엇인지 명확하게 정의해야 필요한 데이터만 모을수 있다.
- 얻고자 하는 데이터의 지표가 명확한가
- 적절해 보이는 데이터라도 지표가 부적절하면 가설 검증 및 결론 도출 시 오류 발생 가능
- 가설 검증에 필요한 데이터가 존재하는가
- 검증해보고자 하는 가설을 해결해 줄 데이터를 수집
- 데이터 전처리
- 데이터 추출, 필터링, 그룹핑, 조인 등 ( SQL, DB )
- 데이터 분석을 위한 기본적인 테이블을 만드는 단계
- 테이블과 Column의 명칭, 처리/집계 기준, 조인시 데이터 증식 방지
- 이상치 제거, 분포 변환, 표준화, 카테고리화, 차원 축소 등
- 수집한 데이터를 분석에 용이한 형태로 만드는 과정
- 데이터 추출, 필터링, 그룹핑, 조인 등 ( SQL, DB )
- 데이터 분석
- 탐색적 데이터 분석
- 그룹별 평균, 합 등 기술적 통계치 확인
- 분포 확인
- 변수 간 관계 및 영향력 파악
- 데이터 시각화
- 모델링
- Classification ( 분류 모델 )
- Regression ( 회귀 모델 )
- 클러스터링 ( 비지도 학습 모델 )
- 탐색적 데이터 분석
- 리포팅 / 피드백
- 내용의 초점은 DA가 아닌 상대방
- 상대가 이해할 수 있는 언어 사용
- 목적을 수시로 상기하고 재확인
- 적절한 시각화 방법 활용
- 항목 간 비교시 원 그래프는 지양하고 막대 그래프 위주. X, Y 축 단위 주의
- 시계열은 라인이나 실선으로 표현
- 분포는 히스토그램이나 박스플롯
- 변수 간 관계는 산점도
- 내용의 초점은 DA가 아닌 상대방
정규화와 데이터 스케일링
데이터에서 하나의 instance는 그것이 가진 여러 속성값(Feature)들을 이용해서 표현 가능
Feature 들 간의 크기 및 단위가 들쭉날쭉 하거나 값의 범위가 크게 다른 경우, 이상치 문제가 심각한 경우에 데이터 분석, 머신러닝, 딥러닝 적용이 어려워 지는 경우가 있다.
특히 ML/DL 모델에 Feature 값을 input으로 사용하는 경우 이상치가 있다면 모델이 데이터를 이상하게 해석할 우려가 있다.
이 때 정규화와 스케일링을 통해 Feature 들이 가지는 값의 범위를 일정하게 맞춰주는 방법이 필요
- 정규화 / Nomalization
- Min-Max
- 모든 Feature 값이 0, 1 사이에 위치하도록 스케일링
- Feature 들 간의 variance 패턴은 그대로 유지한 채로 스케일링
- 이상치가 존재할 경우 적합하지 않은 방법
- Z-Score Nomalization / Standardization ( 표준화 )
- Feature 값들이 평균 0 , 표준편차 1 값을 가지는 정규분포를 따르도록 스케일링
- 이상치 문제에 Robust한 스케일링 방법
- Min-Max 처럼 Feature 값이 가지는 최소 최대 범위가 정해지지 않는 단점이 있음.
- 대부분 ML 기법들을 사용하는 경우 Input에 Standardization 을 적용해야 하는 경우가 많음
- 특히 Gradient descent(DL)을 활용한 학습과정을 안정시켜 주고 빠른 수렴을 가능케 함
- Z-Score가 ±1.5, ±2를 벗어나는 경우 해당 데이터를 이상치로 간주할 수 있음.
- Log 스케일링
- Feature 값들이 Exponential한 분포(Positive Skewed)를 가지는 경우 Feature 값들에 Log연산을 취하여 스케일링 가능
- Squre Root 연산을 취하거나, 반대의 분포를 가지는 경우 Power/Exponential 연산을 통해 스케일링 해 볼수 있다.
- 다양한 스케일링을 통해 데이터가 좀 더 정규분포에 가까워지도록 스케일링 하여 이상치 문제에도 좀 더 적극적으로 대응 가능
'프로그래머스 > 데이터분석 데브코스' 카테고리의 다른 글
프로그래머스 데이터분석 데브코스 8-4 (0) | 2024.04.04 |
---|---|
프로그래머스 데이터분석 데브코스 8-3 (1) | 2024.04.03 |
프로그래머스 데이터분석 데브코스 7-5 (0) | 2024.03.29 |
프로그래머스 데이터분석 데브코스 7-2 (0) | 2024.03.26 |
프로그래머스 데이터분석 데브코스 7-1 (0) | 2024.03.25 |