Allen's 데이터 맛집

데이터 품질 전처리 가이드 본문

Data Analysis/통계&분석

데이터 품질 전처리 가이드

Allen93 2024. 6. 25. 11:08
데이터 품질 전처리에 대해 알아보겠습니다. 데이터를 분석하기 전에 필수적으로 거쳐야 하는 단계인 데이터 전처리에 대해 자세히 살펴보겠습니다.

 

데이터-전처리



데이터 품질 전처리 목적


실제 공정에서 발생하는 데이터는 의미 없는 값이나 누락 및 오타가 발생하여 품질이 좋지 않을 수 있습니다. 품질이 낮은 데이터를 분석에 이용하면 좋은 결과를 얻기 힘들죠. 따라서 데이터 품질 전처리는 데이터 분석에 있어서 필수적인 단계입니다.

 


데이터 품질지수 세부 설명


1. 완전성 품질지수
완전성 품질지수는 결측 데이터의 개수를 확인하여 데이터의 완전성을 평가합니다.

- 계산 방법: 완전성 품질지수 = 1 - (결측 데이터의 개수 / 전체 데이터의 개수) * 100
- 결측 데이터가 30% 이상인 경우, 해당 열(column)을 삭제하는 것이 좋습니다.
- 결측 데이터를 확인하는 방법: isnull() 함수를 사용하여 각 열의 결측 데이터 개수를 구하고, sum() 함수를 이용해 합산합니다.

 


2. 유일성 품질지수
유일성 품질지수는 데이터에서 유일한 값을 갖는 열(column)의 개수를 확인합니다.

- 계산 방법: 유일성 품질지수 = (유일한 데이터의 개수 / 전체 데이터의 개수) * 100
- 시계열 데이터 등에서 유일한 값을 갖는 열을 찾아 groupby()와 size() 함수를 이용해 개수를 확인합니다.

 


3. 유효성 품질지수
유효성 품질지수는 데이터가 유효한 범위 내에 있는지 확인합니다.

- 계산 방법: 유효성 품질지수 = (유효성을 만족한 데이터의 개수 / 전체 데이터의 개수) * 100
- max(), min() 함수를 이용해 유효 범위를 확인하고, info() 함수를 이용해 데이터 타입을 검증합니다.

 


4. 일관성 품질지수
일관성 품질지수는 데이터 테이블 간 종속관계와 데이터 형식을 확인합니다.

- 계산 방법: 일관성 품질지수 = (일관성을 만족한 데이터의 개수 / 전체 데이터의 개수) * 100
- info() 함수를 이용해 데이터 타입을 확인하고, 수집된 날짜 등을 검증합니다.

 


5. 정확성 품질지수
정확성 품질지수는 데이터의 평균값을 통해 정확성을 평가합니다.

- 계산 방법: 정확성 품질지수 = 1 - (정확성에 위배되는 데이터의 개수 / 전체 데이터의 개수) * 100
- mean() 함수를 이용해 평균을 구하고, 수집된 데이터와의 차이를 확인합니다.


6. 무결성 품질지수
무결성 품질지수는 유일성, 유효성, 일관성 지수를 종합적으로 평가합니다.

- 계산 방법: 무결성 품질지수 = {1 - (유일성, 유효성, 일관성 중 100%가 아닌 지수 / 3)} * 100

 


데이터 전처리 과정


1. 데이터 수집: 데이터를 다양한 출처에서 수집합니다. CSV 파일, 데이터베이스, 웹 스크래핑 등을 통해 데이터를 얻을 수 있습니다.


2. 데이터 정리: 수집된 데이터를 표준 형식으로 정리합니다. 열과 행을 정리하고, 데이터 타입을 맞추는 과정이 필요합니다.


3. 결측치 처리: 결측 데이터를 처리합니다. 결측치를 삭제하거나 평균값으로 대체하는 방법이 있습니다.


4. 데이터 변환: 데이터를 분석에 적합한 형태로 변환합니다. 예를 들어, 범주형 데이터를 더미 변수로 변환할 수 있습니다.


5. 데이터 통합: 여러 출처에서 수집된 데이터를 하나로 통합합니다. 이 과정에서 중복 데이터를 제거하고, 일관성을 유지합니다.

 


데이터 품질 전처리의 중요성


- 정확한 분석: 품질이 높은 데이터를 사용하면 정확한 분석 결과를 얻을 수 있습니다.
- 효율적인 분석: 전처리를 통해 데이터의 양과 질을 조절하면 분석 과정이 효율적으로 진행됩니다.
- 신뢰성 확보: 데이터의 신뢰성이 높아지면 분석 결과를 신뢰할 수 있습니다.

 

 


예시: 데이터 전처리 코드


아래는 Python의 Pandas를 이용한 데이터 전처리 예시 코드입니다.

import pandas as pd

# 데이터 불러오기
data = pd.read_csv('data.csv')

# 결측치 확인
missing_values = data.isnull().sum()
print("결측치 개수:\n", missing_values)

# 결측치 처리 (평균값으로 대체)
data = data.fillna(data.mean())

# 데이터 타입 확인
print(data.info())

# 데이터 정리
data = data.drop_duplicates()

# 데이터 변환 (범주형 데이터 더미 변수로 변환)
data = pd.get_dummies(data)

print("전처리된 데이터:\n", data.head())