3. 데이터 프로파일링
3.1 탐색적 데이터 분석
EDA를 짧게 하는 걸 추천하지 않아요! 데이터를 많이 볼수록 기억에 오래 남는다,
데이터를 문자나, 숫자보다는 그래프를 활용하여 직관적으로 파악
3.1.1 탐색적 데이터 분석 (EDA)
- EDA(Exploratory Data Analysis)라고 함
- 수집한 데이터를 분석하기 전에 그래프나 통계적인 방법을 이용하여 다양한 각도에서 데이터의 특징을 파악하고 자료를 직관적으로 바라보는 분석 방법
- EDA를 통해서 Data Pre-processing(데이터 전처리), Feature engineering(피쳐 엔지니어링) 방향 확보
DDA (Descriptive Data Analysis, 기술적 분석 )
- 기술) 설명하는, 설명적 분석
- 통계 대표값을 계산하여 데이터의 현재 모습을 요약 기술
- 분석도구: 평균, 표준편차, 빈도수, 백분위수, 첨도, 왜도, 신뢰구간 등
EDA (Exploratory Data Analysis, 탐색적 분석)
- 그래프를 활용하여 수집된 데이터의 패턴을 이해 (패턴, 경향)
- 가능성이 큰 변수의 가설을 도출
- 분석도구; 히스토그램, Box-plot, 산점도, 파레토, 정규성, 트렌드 등
CDA (Confirmative Data Analysis, 확증적 분석)
- confirm 한다, 확인한다. - 확정한다
- 검정통계량(p-value)를 이용하여 가설 검정
- 분석도구: T-Test, F-Test, ANOVA, 상관분석, 회귀분석, 카이제곱 검정 등
- 의미와 사용법을 정확히 알고 활용하는 것이 중요하다.
PDA (Predictive Data Analysis, 예측적 분석)
- 의미있는 최적관계식 y=f(x)를 모델링하고 최적 조건을 예측
- 분석도구: 선형회귀모형, 다중선형 모형, SVM, 로지스틱 회귀, 인공신경망 등
3.1.2 EDA 프로세스
- Step 1: 데이터의 속성(변수, feature) 확인
- Step 2: 각 피쳐별 단변량 데이터 분석
- Step 3: 피쳐간 상관관계 분석
- 데이터를 결합하여 여러 데이터를 결합하여, 비교 분석
- 2개, 혹은 세개를 결합하여 분석
- 산점도, 버블플롯 활용
- 3차원 그래프는 잘 활용하지 않는다.
- Step 4: 결측치 처리
- Step 5: 이상치 처리
- Step 6: 피쳐 엔지니어링을 통한 피쳐 선택, 추가, 삭제
3.1.3 변수 분석
단변량 분석
- 변수 하나에 대해 기술통계량(descriptive statistics) 을 확인
- 대표값: 데이터의 평균, 중위수, 최빈수
- 산포: 표준편차, 분산, 범위, 사분위수
- 분포: 왜도, 첨도
- 기타: 신뢰구간, 데이터의 정규성
- Histogram이나 Boxplot을 사용해서 평균, 최빈값, 중간값 등과 함께 각 변수들의 분포를 확인
- < 히스토그램 주의사항 >
- 부드러운 형태로 의미있게 BIN을 잘 설정해야함
- 무엇을 보고싶은지? **SHAPE(데이터의 분포)을 보고 싶은 것
- 한쪽에 몰려 있는 경우 신경을 써서 다뤄야한다.
- 봉이 여러개인 경우) Multi-modal (데이터가 여러개 섞인 것)
- < Box Plot 주의사항 >
- Box Plot; 중위수, 2Q, 3Q
- 무엇을 보고 싶은지?
분포에 따라 중앙값, 중위값 평균 중 무엇이 중요한지가 다르고, 치우쳐진 경우에는 중앙값이 중요함.
- 중앙값, 이상치에 대한 판단이 편리함
- 단변량 보다는 이변량에 더 POWERFUL한 효과
- 범주형 변수의 경우 Boxplot을 사용해서 빈도 수 분포를 체크
이변량 분석
- 변수 2개 간의 관계를 분석
- 상관관계 분석(Correlation Analysis): 두 개 이상의 변수 사이에 존재하는 상호
- 산점도를 먼저 보는 것이 좋음
상관계수는 선형 상관관계만 보여주기 때문에 산점도를 그려서 비선형 상관관계가 강한건지 파악을 해보는 것이 좋다.
- 스피어만, 피어슨, 켄달
- 연관성의 존재 여부와 연관성의 강도를 측정하여 분석
- 변수의 유형에 따라 적절한 시각화 및 분석 방법 적용: 산점도 등
다변량 분석
- 3개 이상 변수를 이용하여
- 범주형 변수가 하나 이상 포함되어 있는 경우 변수를 범주에 따라 분리한 후 위 분석 방법에 따라 분석
- 모두 연속형 변수이면 연속형 변수를 Feature engineering을 통해 범주형 변수로 변환한 후 분석, 혹은 3차원 그래프를 그려 시각적으로 확인
3.2 데이터 프로파일링
3.2.1 데이터 프로파일링
데이터를 전체적으로 살피며 앞으로 어떤걸 처리해야할지 감을 잡는 단계
프로파일링(Profiling)
- 어떤 개인의 심리적, 행동적 특성을 분석함으로써 특정 상황이나 영역에서의 행동을 예상하는 것
- 사회인구학적 특성을 포함한 여러 변수에 의해 특정한 하위 그룹으로 분류하는 것
데이터 프로파일링(profiling)
- EDA(Exploratory Data Analysis, 탐색적 데이터 분석)를 수행하는 것
- 데이터 내 값의 분포, 변수 간의 관계, Null 값과 같은 결측값(missing values) 존재 유무 등을 분석
- 데이터의 속성에 적합하지 않은 값이 있는지 확인
3.2.2 데이터 프로파일링의 단계
1. 메타 데이터 수집 및 분석
- 실제 운영 중인 데이터베이스의 테이블 명, 컬럼 명, 제약조건 등의 정보 분석
- 테이블 정의서, 컬럼 정의서와 같은 데이터 관리 문서의 정보 분석
- 추출된 테이블 및 컬럼에 대한 메타데이터와 데이터 관리 문서를 매핑하여 불일치 사항을 분석
테이블 명 불일치 분석 & 컬럼명 및 자료형 불일치 분석
2. 컬럼 속성 분석
- 컬럼 속성 분석은 대상 컬럼의 비유효한 값을 확인
- 컬럼의 총 건수, 유일값 수, NULL값 수, 공백값 수, 최댓값, 최솟값, 최대 빈도, 최소빈도 등 기초 집계값을 산출하여 값이 유효한 범위 내에 있는지 판단
기초 집계 값을 산출하여 그 값이 유효범위 내에 존재하는지 일차적으로 판단, 유효하지 않은 값을 어떻게 코딩해서 수정할 것인가???를 수립해야함
3. 결측치 분석
- 반드시 입력되어야 하는 데 누락이 발생한 컬럼을 발견하는 절차
- 결측치에는 NULL값, 공백값 또는 숫자 ‘0’ 등이 해당
- NULL 허용 컬럼일지라도 NULL과 공백이 혼재하는 경우와 총건수와 NULL 건수가 같아 미사용으로 추정되는 컬럼을 발견하는 일도 포함
결측치를 null 로 바꾼 뒤에 처리, 결측치, 공백건수 체크, 총 건수가 맞지 않는 경우 확인해야함
4. 허용범위 분석
- 허용범위 분석은 값이 가져야 할 범위 내에 그 값이 있는지를 파악하는 절차
- 허용범위는 해당 속성의 도메인 유형에 따라 정해짐
- 아래 예시에서 MAGAZINE 테이블의 권, 호, 페이지 등의 컬럼은 0 이상의 값을 가져야 하지만 최솟값이 -999 등으로 이루어진 것으로 보아 NULL 대신 무의미한 값을 부여한 데이터일 가능성이 큼
- 해당값이 오류 데이터라면 NULL값을 부여해야 함
5. 허용값 분석
- 허용값 분석은 해당 컬럼의 허용값 목록이나 집합에 포함되지 않는 값을 발견하는 절차
- 코드 매핑 정의서에 기술한 코드 성격의 컬럼이 분석 대상에 해당
- 아래 예시에서 등록되지 않은 코드가 포함되어 있거나 의미는 유사하나 다른 값으로 혼재된 경우를 확인가능
6. 패턴분석
- 해당 컬럼의 문자열 유형을 따르지 않는 오류 유형을 발견하는 절차
- 데이터 집계할 때 문자일 경우 C, 숫자일 경우 9, 공백일 경우 S를 반환하는 함수를 만들어 사용
- 해당 컬럼의 데이터를 패턴화하여 SQL로 조회하면 비정상적인 형태를 보인 값을 오류로 추정할 수 있음
7. 날짜 유형 분석
- 대상 컬럼이 DBMS의 DATE 관련 자료형을 가지면 날짜 패턴 및 유효성 검증은 문제가 없음
- 하지만 문자형 데이터 타입에 날짜 데이터를 입력하면 아래 예시와 같은 사례가 발생할 수 있음
- 이는 패턴 검증을 통하여 쉽게 검증할 수 있음
날짜 데이터 형식 통일하기
8. 유일값 분석
- 유일값 분석은 업무적 의미에서 유일해야 하는 컬럼에 중복이 발생하였는지를 파악하는 절차
- DBMS의 제약조건으로 PK(Primary Key)가 설정된 컬럼이나 UNIQUE가 설정된 컬럼은 문제가 없음
- 아래 예시처럼 CUSTOMER 테이블의 EMAIL 컬럼은 PK 컬럼이 아니지만, 업무적으로 고객의 이메일은 유일해야 하는 경우 최대 빈도를 통하여 중복된 데이터를 확인할 수 있음
반드시 유일값을 가져야만 하는 데이터가 있음
9. 구조 분석
- 데이터 구조 분석은 구조 결함으로 인해 일관되지 못한 데이터를 발견하는 분석 기법
- 아래 예시에 ORDER 테이블에 CUSTOMER 테이블에는 존재하지 않는 데이터가 존재하여 데이터의 일관성이 없는 오류 데이터가 발생
- ERD(Entity-Relationship Diagram) 등 설계 시에는 관계를 설정해두고 실제 데이터베이스에는 제약조건을 적용하지 않고 개발하는 경우 이러한 사례가 빈번하게 발생
데이터 구축시 자주 구조 불일치 문제 발생,